Wiem, że istnieje wiele kontrowersji (może nie kontrowersji, ale przynajmniej argumentów) na temat tego, która konwencja nazewnictwa jest najlepsza dla JavaScript.
Jak nazywasz swoje zmienne, funkcje, obiekty i tym podobne?
Zostawię swoje przemyślenia na ten temat, ponieważ nie robiłem JS od dłuższego czasu (tylko kilka lat), i właśnie dostałem prośbę o utworzenie dokumentu z konwencjami nazewnictwa, który będzie używany w naszych projektach w pracy . Rozglądałem się (google), a jest tak wiele różnych opinii.
Książki, które czytałem na temat JS, również same używają różnych konwencji nazewnictwa, ale wszystkie zgadzają się co do jednego: „Znajdź to, co ci odpowiada, i trzymaj się tego”. Ale teraz, kiedy tak dużo czytałem, odkryłem, że podoba mi się niektóre inne metody nieco lepiej niż to, do czego jestem przyzwyczajony.
źródło
Odpowiedzi:
Postępuję zgodnie z konwencjami kodu Douglasa Crockforda dla javascript. Korzystam również z jego narzędzia JSLint do sprawdzania poprawności tych konwencji.
źródło
ECBhandle
vs.ecbHandle
(nie ma znaczenia, co oznacza EBC).Jak mówi Geoff, to, co mówi Crockford, jest dobre.
Jedynym wyjątkiem, którego przestrzegam (i widziałem powszechnie używane), jest użycie $ varname do wskazania obiektu jQuery (lub dowolnej biblioteki). Na przykład
var footer = document.getElementById('footer');
var $footer = $('#footer');
źródło
Możesz postępować zgodnie z tym przewodnikiem po stylu Google JavaScript
Zasadniczo używaj functionNamesLikeThis, variableNamesLikeThis, ClassNamesLikeThis, EnumNamesLikeThis, methodNamesLikeThis i SYMBOLIC_CONSTANTS_LIKE_THIS.
EDYCJA: Zobacz ładną kolekcję Przewodników i upiększaczy w stylu JavaScript .
źródło
_fooBar
tegofooBar_
- Microsoft ma rację: asp.net/ajaxlibrary/act_contribute_codingStandards.ashx_
podczas odwoływania się do prywatnych warów spowoduje natychmiastowe ograniczenie inteligencji przez inteligencję; w końcu pomyślał, że to osobiste preferencje.Jedną z konwencji, którą chciałbym wypróbować, jest nadawanie modułom statycznym prefiksu „the”. Sprawdź to. Kiedy korzystam z modułu innej osoby, nie jest łatwo zobaczyć, jak mam go używać. na przykład:
Zastanawiam się nad wypróbowaniem konwencji, w której moduły statyczne używają „the”, aby wskazać swoją preegzystencję. Czy ktoś widział lepszy sposób niż ten? Wyglądałby tak:
źródło
Myślę, że oprócz pewnych ograniczeń składniowych; rozumowanie konwencji nazewnictwa jest w dużej mierze niezależne od języka. Mam na myśli, że argumenty na korzyść c_style_functions i JavaLikeCamelCase mogą równie dobrze być użyte w odwrotny sposób, tylko użytkownicy języka mają tendencję do podążania za autorami języka.
Powiedziawszy to, myślę, że większość bibliotek dąży do uproszczenia CamelCase w Javie. Uważam, że porady Douglasa Crockforda są dla mnie wystarczająco smaczne.
źródło
To indywidualne pytanie, które może zależeć od tego, jak pracujesz. Niektórzy ludzie lubią umieszczać typ zmiennej na początku zmiennej, na przykład „str_message”. A niektórzy ludzie lubią używać podkreślnika między swoimi słowami („my_message”), podczas gdy inni lubią je rozdzielać dużymi literami („myMessage”).
Często pracuję z ogromnymi bibliotekami JavaScript z innymi ludźmi, więc funkcje i zmienne (oprócz zmiennych prywatnych w funkcjach) zaczęły się od nazwy usługi, aby uniknąć konfliktów, jako „guestbook_message”.
W skrócie: według mnie preferowane są angielskie, małe litery, dobrze zorganizowane nazwy zmiennych i funkcji. Nazwy powinny opisywać ich istnienie, a nie być krótkie.
źródło