Подробнее
» 4 in l <- false Programmer Memes @iammemeloper Without a doubt, the best programming language 11:09 PM -Sep28, 2023 121.6K ¡ews » let l = [1,2,3,4] <- undefined » 0 in l <- true » "0" in l <- true
javascript,языки программирования,программирование,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,javascript,programming languages,programming,geek
Еще на тему
интуитивно начинающий дев очевидно подумает одно, создаст баг, проебется над ним сутки, а потом загуглив будет изливать эмоции.
как бы шутка не на ровном месте появилась. я прогер (не JS) со стажем и то прихуел и полез проверять в консоль
Я тоже не на JS программирую, но прихуеть не прихуел, а сразу предположил, что дело, скорее всего, в ключах, раз такой результат. И полез не проверять в консоль, а гуглить метод in в JS.
красивые конечно слова, но всех джунов ты не проконтролишь. я больше чем убежден что даже читая документацию легко упустить или забыть подобное если до этого не пользовался часто функцией.
когда джун что-то такое накодит, разбираться с проблемой приходится сеньорам и лидам.
подобный баг может легко пройти тесты и появиться только на проде.
а ты потом сиди и гадай где проблема, если локально не воспроизводится.
тут при определенных данных 1 случая из n будет ошибка и в n-1 случаях будет неверное поведение.
локализовать такое сложно
а все потому, что некоторые мега умники считают, что лучше документация это священный грааль. документация без нормального опыта использования это примерно ничего.
я бы на подобную функцию как минимум поставил бы ворнинг на стат анилизе кода.
>а все потому, что некоторые мега умники считают, что лучше документация
Как-то логика покинула чат. То есть, джуны криво кодят, потому что некоторые умники считают, что документацию надо читать? Шо?
Конечно, опыт очень важен, но документашка в большинстве случаев отсекает лишние тупняки и вопросы Не всегда, конечно, но всё же. Не просто же так её пишут.
я говорю о том, что документация не помогает избежать подобного рода багов (даже сеньорам).
и тут на лицо ошибка дизайна языка программирования, которая сильно важнее ошибки условного джуна.
ЗЫ
> интуитивно начинающий дев очевидно подумает ...
прошу прощения, эту фразу можно прочесть двояко
тут подразумелось следущее: начинающий дев интуитивно подумает ...
А в остальном - я привык проверять и перепроверять всё, что делаю. В том числе и те функции, что использую, я обычно либо смотрю хотя бы быструю справку в IDE, либо иду в гугл и ищу документацию. Мне нужно быть уверенным, что то, что я написал, будет работать так, как я задумал. Все методы будут принимать и возвращать то, что задумано, и результат будет очевиден, и так далее.
Как это можно пропустить или забыть?
1. Оператор in проверяет существование ключа. Тут нечего пропускать, некуда ставить ворнингов, негде путаться. Можно, конечно, забыть про существование такого оператора (наверное) - но ты в любом случае, когда забываешь что делает оператор, не выдумываешь его поведение из головы, считая что чем ты сильнее будешь верить - тем лучше оно будет работать. Не выдумываешь ведь?
2. Ключи объектов - это либо строки, либо симболы. Это вообще база, данный факт - он буквально войдет в любой ответ на вопрос "Что такое джава-скрипт?" длиннее 10 минут. Так что с этой стороны тоже никаких вопросов и недопониманий ни у кого возникнуть не должно.
я хз откуда такая наивность. видимо ты программист-гигачад. никогда не расчитываешь на то что код делает то что в нем написано. всегда проверяешь документацию.
когда подрастешь и начнешь писать на разных языках - поймешь о чем я говорю.
Мимоподросший 25 лет опыта в 7 рабочих языках.
хотя по факту. если ты пишешь на 7 языках и за 25 лет опыта помнишь каждую функцию и/или перепроверяешь каждый раз когда не уверен. то респект конечно.
я когда приходится переключаться на JS например, раз в пол года, не лезу и не хочу лезть перечитывать каждый раз документацию.
но как я писал выше, речь не обо мне или тебе, а о команде, в которой разные люди бывают. документацию ты читать любишь а посты как мсегда только то что тебе удобно
>все прогеры все перепроверяют и не делают ошибки
Убедиться, что функция/метод/конфиг делает то, что ты ожидаешь - это не что-то сверхестественное, это база, а не респект. И инструментарий к этому есть. У меня были и те, кто передавали что-то на авось и не проверяли возвращаемые статусы. Я сначала учил, потом увольнял. Ну, некоторые просто не рождены для программирования, ничего страшного.
>25 лет и все еще программист? сочувствую
А чему сочувствовать, мне это нравится, доход примерно х3-4 от того, что локально считается приличным. Вообще эта идея, что вот к N лет надо стать маняменеджером, она родилась в формате безумия, в котором вы работаете на своих галерах. В котором руководству обязательно глубоко шарить в теме, чтобы микроменеджить нанятых идиотов, иначе они вынесут все куда не надо, перепутав хуй с пальцем.
Ты вообще осознаешь, что мы говорим об <key in object>, а не о рокет сайнсе? Это как если бы плотник опасался шурупов по металлу в мастерской, потому что другой мастер может их взять и нахуярить в дерево. Шурупы по металлу консидеред хармфул, неинтуитивная эргономика, бэд плотник экспириенс, нужно срочно приделать фотолинтер к шуруповерту, чтобы присылал варнинги в чат. У нас профессия идиотов, которые не хотят читать, хотят все одной кнопкой. А то, что это их ёбаная работа - хотя бы уметь отличать in от in, не говоря о делании одной кнопки, им в голову не приходит.
ну ок. твой выбор.
Я тоже прогер (не JS) со стажем (но бывает и его трогать приходится) - и не понимаю, от чего там охуевать и что там начинающему деву может быть непонятно. Что ином чекают ключи и что ключи - это строки и все кастуется в них - это буквально на второй день изучения js изучается и тут даже ничего запоминать не нужно.
ЗЫ
я видел когда сеньоры делали ошибки аналогичные этой. причем матерые сеньоры.
хотя я хз. если писать только интернет магазины то, наверное, да - какие уж там ошибки.
нахуй вообще писать читаемый код. давайте обфусцированный код писать. а нему несколько томов документации.
ЛЮБОЙ JS дев, вне зависимости от его низости или высокости, хоть джун, хоть стажер - никогда не обосрется и не допустит эту ошибку.
>я видел когда сеньоры делали ошибки аналогичные этой
Может, они не были js сеньорами? Потому что, повторюсь, тут негде делать ошибок. Имя, конечно, не лучшее у оператора, но в посте он работает логичным образом с вещами, которые являются самыми основами языка.
{"0": 1, "1": 2, "2": 3, "3": 4}. я с лету не помню, может ли ключ быть числом или только строкой, а при вызове по численному ключу (например l[0])срабатывает приведене типа number к string, но это особо и не важно.
так что мем не валиден, особенно когда есть куча встроенных веселостей
Друзья, есть только два типа ЯП: те, которые все ненавидят, и те, на которых никто не пишет.
я даже не могу сказать, что js менее ебанутый, чем php