Обновлено
Во-первых, наименование зависит от существующих соглашений, будь то язык, инфраструктура, библиотека или проект. (В Риме ...) Пример: используйте стиль jQuery для плагинов jQuery, используйте стиль Apple * для приложений iOS. Первый пример требует большей бдительности (поскольку JavaScript может стать беспорядочным и не проверяться автоматически), в то время как второй пример проще, так как стандарт хорошо соблюдается и соблюдается. YMMV в зависимости от лидеров, сообщества и особенно инструментов.
Я отложу все свои привычки именования, чтобы следовать любым существующим соглашениям.
В целом, я следую этим принципам, все из которых сосредоточены вокруг программирования, являющегося еще одной формой межличностного общения через письменный язык .
Удобочитаемость - важные части должны иметь сплошные названия; но эти имена не должны заменять надлежащую документацию intent . Тест на читабельность кода заключается в том, что вы можете вернуться к нему несколько месяцев спустя и при этом быть достаточно понимающим, чтобы не бросить все это на первый взгляд. Это значит избегать аббревиатур; см. дело против венгерской нотации .
Возможность записи - общие части и шаблон должны быть простыми (особенно если нет IDE), поэтому писать код проще и веселее. Это немного вдохновлено стилем Роба Пайка .
Обслуживаемость - если я добавлю тип к своему имени, например arrItems
, то будет плохо, если я изменю это свойство на экземпляр класса CustomSet
, который расширяет Array
. Типовые примечания должны храниться в документации и только при необходимости (для API и т. П.)
Стандарт, общее наименование - Для тупых сред (текстовые редакторы): классы должны быть в ProperCase
, переменные должны быть короткими и, если необходимо, должны быть в snake_case
, а функции должны быть в camelCase
.
Для JavaScript это классический случай ограничений языка и инструментов, влияющих на именование. Это помогает отличать переменные от функций по разным именам, поскольку нет IDE, чтобы держать вас за руку, в то время как this
и prototype
и другие шаблоны затеняют ваше зрение и сбивают с толку ваши навыки дифференцирования. Также нередко видеть, что все несущественные или глобально полученные переменные в области видимости сокращаются. В языке нет import [path] as [alias];
, поэтому локальные переменные становятся псевдонимами. И затем есть множество различных условных обозначений. Единственное решение здесь (и где угодно, на самом деле) - надлежащая документация о намерениях (и личности).
Кроме того, сам язык основан на области действия и замыканиях на уровне функций, поэтому из-за некоторой гибкости блоки с переменными в уровнях уровня 2+ могут выглядеть очень грязными, поэтому я видел название, в котором _
добавляется для каждого уровень в цепочке областей действия к переменным в этой области.