Comments 31
Вот самые употребимые в js:
…
Шашлычная нотация (kebab-case): my-data
Тут падает желание читать дальше т.к. таких именований в JS быть не может (как и во многих других языках программирования), поскольку это будет расцениваться как: my(минус)data.
Также дальше идет предложение
В js на сегодняшний день snake_case и kebab-case не приняты
Которое противоречит «самые употребимые» из предыдущего
Между прочим, все верно описано. Может быть сумбурно, но верно.
В век до es6 очень часто в js писали имена атрибутов через дефис. data-id
, data-name
.
И кебаб-кейс еще присутствовал в css.
А вот с приходом фреймворков типа React, кебаб-кейс уже перестал быть важным. Никому не нужны data-attributes
. Да и CSS-in-JS стал популярным, заменив background-color
на backgroundColor
.
О времена, о нравы!
Покажите нам примеры легаси кода с кебаб-кейсом, пожалуйста.
Это невалидный синтаксис в js, так что это автоматически не может быть плохим стилем, но в это же время и спецификация того же css, вы обязаны это использовать, и, поэтому, это не опять не может быть плохим тоном.
абзац выглядел вот так:
Существуют разные синтаксические формы наименования, их очень много, некоторые уже не употребляются. Вот самые употребимые в js:
Верблюжья нотация (CamelCase): MyClass
Змеиная нотация (snake_case): my_const
Шашлычная нотация (kebab-case): my-data
При выборе кейса важно учитывать принятый на текущий момент стандарт. В js на сегодняшний день snake_case и kebab-case не приняты, но их можно встретить например на Python или Ruby.
т.е. я описал кейсы, которые можно встретить в JS и далее пояснил, что сейчас принято в Js. Тот же кебаб активно применяется в наименовании DOM-шаблонов из-за нечувствительности html к регистру, но в нейминге функций и переменных его не используют.
kebab-case… можно встретить… на Python
И где тут всё верно?
За такое сразу садисьдва надо.
Я бы не сказал что прям так не популярны. Во vue например так и принято писать в параметрах компонента, да и сами компоненты тоже, например:
<some-component some-name="Some name"@some-event="someEvent" />
Извините, но если вы не дочитали, то это только ваш выбор.
В Си используются разные нотации в разных либах. Например, Microsoft, используют UpperCamelCase (CreateProcessA). В Unix используют либо camel case (set_mempolicy), либо чаще хрен пойми что (chmod, shmctl), при этом почти все слова сокращая и не используя заглавных букв.
При выборе кейса важно учитывать принятый на текущий момент стандарт. В js на сегодняшний день snake_case и kebab-case не приняты, но их можно встретить например на Python или Ruby.Нейминг не имеет стандарта как такового. Все что описано в статье — это рекомендации, а не стандарт. Каждый решает для себя как именовать, придерживаться или нет рекомендаций. В корпоративной разработке могут быть свои правила именования, от которых обычно нельзя отклоняться.
О, а как мне в python'e обозвать переменную some-var?
На ус приходит только что нибудь эдакое из юникода, но это клиника.
Гуглим первую попавшуюся документацию:
"A variable name can only contain alpha-numeric characters and underscores (A-z, 0-9, and _ )".
Всё на этом с юникодом.
PS. а с минусом автор просто лоханулся пошутил, видимо.
В третьем можно
https://code.sololearn.com/cOAXyhEmN1f7#py
Функции далеко не всегда являются действиями
Не соглашусь. Результат выполнения функций — не всегда действие, а сама функция всегда выполняет какое то действие, вернуть что либо — это тоже действие.
Такой нейминг примеров из статьи на мой взгляд более удачный:
defaultCollection
> getDefaultCollection
arifmeticalProgression
> getArifmeticalProgression
Глагол явно указывает на то, что в переменной функция и её можно вызвать
А для, например, синуса вы пишите свои обёртки типа getSinus? А для ФВП, возвращающих другие функции пишете getGetSomething?
Лично я в большинстве случаев против имён обычных функций с префиксами get, calc, do, transform, и т. п. — считаю их лёгким запашком по умолчанию.
Я бы не относил данные стандарты только к JS. Так как в Яве, плюсах, го и ещё пакет других языков тоже используются подобная практика.
Но для новичков мб правда полезная инфа
- camelCase — первое слово начинается со строчной буквы, каждое следующее слово с заглавной буквы, слова пишутся слитно;
- PascalCase — каждое слово начинается с заглавной буквы, слова пишутся слитно;
- kebab-case — все буквы строчные, слова отделяются символом "-";
- snake_case — все буквы строчные, слова отделяются символом "_";
- UPPER_CASE_SNAKE_CASE — все буквы заглавные, слова отделяются символом "_".
Один из моих любимых языков позволяет использовать апостроф и пробелы, что удобно в модульных тестах.
Про lower camelCase слышу впервые. Можно ссылку на источник?
Не согласен с утверждением «Функции далеко не всегда являются действиями», поскольку в примере приводится пример чего-то похожего на ленивые генераторы и конструктор типа, которые обычно именуются в форме глагола. Не сталкивался с хорошим обоснованием именовать функции в форме существутельных. Пример с созданием коллекции по умолчанию в js выглядит как вредный совет, поскольку при каждом вызове такой функции будет каждый раз создаваться новый объект.
На тему lower camelCase. upper CamelCase это тотже PascalCase.
Кратко о нейминге в JS