Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Именование в JS (https://javascript.ru/forum/offtopic/26838-imenovanie-v-js.html)

trikadin 24.03.2012 05:36

Именование в JS
 
Придерживаетесь ли вы каких-либо (и каких) правил именования переменных, объектов, ф-ций и т.д в JS?

Я стараюсь писать так:
  • CONSTANT_NAME - константа
  • variable_name - простая переменная, область видимости роли не играет
  • Class - эм... Конструкторы, в общем.
  • .propertyName, methodName - св-ва и методы объекта

Gvozd 24.03.2012 06:40

Цитата:

Сообщение от nasqad
еще люблю is

что вы имеете ввиду?
венгерскую нотацию, или что-то другое?
просто мало букв для гугления

B~Vladi 24.03.2012 08:46

Цитата:

Сообщение от trikadin
variable_name

:-E вы все сговорились что ли? Зачем смешивать стили? Переменную от свойства объекта легко отличить.

Gozar 24.03.2012 10:12

Использую общепринятое именование.

Цитата:

Сообщение от trikadin (Сообщение 164685)
[*]variable_name - простая переменная, область видимости роли не играет

variable_name - возможно как свойство объекта (json) присланного с сервера, посредством выборки из базы (php mysql json_encode -> data[0].id.big_img).
variableName - как минимум короче на один символ, как максимум я тоже против смешивания стилей.

Смешанный стиль ухудшает читабельность.

Зачем тратить время на выдумки стиля? Берешь общепринятый, быстро запоминаешь и тратишь время только на программирование. Прыганье по стилям ничего не даст. Если пишешь на php и js одновременно, то писать в js: var variable_name - только с мысль добавляет(видать серверная переменная), ИМХО.

Также как $varName - jquery.

monolithed 24.03.2012 12:51

CS использую только для реализации методов расширяющих базовые объекты, а также при написании плагинов, модулей и пр. серьезных сущностей похожих на "классы"
Во всех остальных случаях предпочитаю использование символа подчеркивания и "глагольных именований":

var Stack = {
    push: function() {
        //...
    },

    do_something: function() {
        //...
    }
    //...
};


В общем, как-то так


Цитата:

Сообщение от trikadin
CONSTANT_NAME - константа

Пока ES6 нет, о константах особо не задумываюсь. Однако этот стиль использую только в одном случае: для переменных лога и ошибок

trikadin 24.03.2012 16:03

Цитата:

Сообщение от B~Vladi
вы все сговорились что ли? Зачем смешивать стили? Переменную от свойства объекта легко отличить.

Не все, только я. Причина простая, в принципе.

Все стандартные методы в JS (querySelector, toString, getElementById, etc) написаны camelCase'ом. Поэтому логично писать и свои методы так же.

При этом мне самому больше нравится вот_такой_стиль, поэтому переменные (которые чаще всего локальные и никому не видны) я оформляю так))

monolithed 24.03.2012 16:30

Хорошо что никто не навязывает Венгерскую нотацию :D

Gozar 24.03.2012 16:33

camelCase-ом запись короче. Это преимущество. При быстром наборе Shift+Letter зажать проще чем Shift + дотянутся до _

Ну это имхо, лично я перешёл с var_name на varName по вышеописанным причинам. К тому же т.к. я долго писал на php для меня такой стиль var_name глаз режет. А если ещё вспомнить про jQuery так вообще всё плохо $var_name, а это уже чистый php.

DreamTheater 24.03.2012 16:37

Придерживаюсь старых добрых традиций :)

vasa_c 24.03.2012 16:55

http://javascript.crockford.com/code.html

monolithed 24.03.2012 17:49

Цитата:

Сообщение от Gozar
camelCase-ом запись короче. Это преимущество.

Ага, ты еще подсчитай вычислительную сложность :D
Цитата:

Сообщение от Gozar
При быстром наборе Shift+Letter зажать проще чем Shift + дотянутся до _

Мне наоборот проще дотянутся до _ чем зажать Shift+Letter.
Хотя это конечно дело привычки. Я просто над этим не задумываюсь, потому что букв на клаве нет o_O.

Цитата:

Сообщение от Gozar
К тому же т.к. я долго писал на php для меня такой стиль var_name глаз режет.

в php вообще многие не парятся по этому поводу и пишут все в нижнем регистре типа:
htmlentities()


Цитата:

Сообщение от vasa_c
http://javascript.crockford.com/code.html

В первых версиях JSLint советовал делать так:
if ( a > b ) {
   /...
} else if ( a < b ) {
      /...
   }

else {
   return false;
}

Gozar 24.03.2012 18:20

Цитата:

Сообщение от monolithed (Сообщение 164749)
Ага, ты еще подсчитай вычислительную сложность :D

Ну если делать так как ты говоришь то можно и клаву не выбирать и мышь без колесика использовать. А также отключить цвета на мониторе ... :D :D :D :D :D :D :D :D

monolithed 24.03.2012 18:48

Цитата:

Сообщение от Gozar
и мышь без колесика использовать.

У меня его тоже нет :D

trikadin 24.03.2012 18:52

Цитата:

Сообщение от monolithed
Я просто над этим не задумываюсь, потому что букв на клаве нет o_O.

0_o у меня только русских нет)

Цитата:

Сообщение от monolithed
У меня его тоже нет

И вообще, 640 кб хватит каждому)

monolithed 24.03.2012 18:56

Цитата:

Сообщение от trikadin
И вообще, 640 кб хватит каждому)

Не, просто сенсорная мышь, хотя я редко ей пользуюсь, потому что есть тачпад)

Gozar 24.03.2012 19:01

Цитата:

Сообщение от monolithed (Сообщение 164759)
просто сенсорная мышь

Я догадался, хотя вторым вариантом был: 2. Сектант?

А я зато положение рук не меняю, т.к. у меня стрелки в центре клавы. Попробовал в vim, отказаться не могу теперь :D

Подумываю написать скриптик который будет менять поведение кнопок по горячей клавише. Как в vim только чтобы действовало в любом редакторе. Кто пробовал знает - это просто нереально круто.

monolithed 24.03.2012 19:18

Цитата:

Сообщение от Gozar
Кто пробовал знает - это просто нереально круто.

Помню когда первый раз попал в консольный vi(m) минут 10 парился чтобы сохранить документ и выйти :D
C тех стараюсь избегать общения с этими редакторами, проще в mc или ee подредактировать файл.

melky 24.03.2012 19:36

у меня почти всё, как у большинства, но :

для именования переменных
camelCase используется для мелких имён, вроде bodyStyle; attachHandler
underscore (не перепутал, вроде) используется для длинных имён, вроде get_location_success_handler;

Gozar 24.03.2012 19:45

Цитата:

Сообщение от monolithed (Сообщение 164764)
Помню когда первый раз попал в консольный vi(m) минут 10 парился

Велосипед ты тоже избегаешь или научился на нём ездить? :D
Вилкой тоже не ешь потому что учиться есть ей сложно или всё же освоил? :D
Компьютер включаешь или тоже избегаешь? :D

А если серьезно, то: Всю мощь переключения между режимами перемещение и вставки понимаешь не сразу. 10 минут, да ты даже ничего не пробовал. Я недельку посидел за ним, теперь не могу забыть никогда.

Ну и по поводу переменных, может в тему будет Илья Кантор стиль и тут
Единственное что мне там не понятно почему он после for пробел не ставит.

monolithed 24.03.2012 19:53

Цитата:

Сообщение от Gozar
Я недельку посидел за ним, теперь не могу забыть никогда.

Самое забавное было в том, что у меня не было выхода в интернет чтобы узнать команды, в итоге чудом вспомнил, что когда-то читал об этом редакторе и методом тыка сохранил документ и даже закрыл его (хотя можно было просто продублировать терминал и посмотреть man) :D

Gozar 24.03.2012 20:41

monolithed,
:help - первое что пришло мне в голову сейчас(там всё есть), хотя я никогда не набирал эту команду и терминал не нужно дублировать при этом :D

monolithed 24.03.2012 21:19

Цитата:

Сообщение от Gozar
:help - первое что пришло мне в голову сейчас(там всё есть)

Я тогда не знал что команды начинаются с двоеточия :)

Kolyaj 24.03.2012 21:32

Обычно, если человек впервые случайно попадает в vim, это заканчивается ребутом машины :)

Gozar 24.03.2012 21:48

Цитата:

Сообщение от monolithed (Сообщение 164776)
Я тогда не знал что команды начинаются с двоеточия :)

При старте программы выводится: для справки введите :help, просто все настолько взволнованы, что увидят некое чудо, что не читают того, что там написано :)

DreamTheater 25.03.2012 23:11

Цитата:

Сообщение от Maxmaxmахimus (Сообщение 164889)
лютобешеноплюсую

Не так, надо так: лютоБешеноПлюсую :)

FINoM 26.03.2012 01:15

Цитата:

Сообщение от Kolyaj
Обычно, если человек впервые случайно попадает в vim, это заканчивается ребутом машины

Ха, это про меня :D

kobezzza 26.03.2012 04:32

Цитата:

Сообщение от nasqad (Сообщение 164977)
нас двое :D

как минимум трое:)

B~Vladi 26.03.2012 08:19

Цитата:

Сообщение от kobezzza
как минимум трое

Я бы был среди вас, но к счастью в моём случае было достаточно закрыть терминал :)


Часовой пояс GMT +3, время: 02:19.