Konwencje nazewnictwa JavaScript [zamknięte]
Wiem, że jest wiele kontrowersji (może nie kontrowersji, ale przynajmniej argumentów) na temat tego, która konwencja nazewnictwa jest najlepsza dla JavaScript.
Jak nazwać swoje zmienne, funkcje, obiekty i takie?
Zostawię własne przemyślenia na ten temat, ponieważ nie zajmuję się JS od dawna( tylko kilka lat), a właśnie dostałem prośbę o stworzenie dokumentu z konwencjami nazewnictwa do wykorzystania w naszych projektach w pracy. Więc szukałem (google-ing) wokół, i są tak wiele różnych opinii.
Książki, które czytałem na JS, również używają różnych konwencji nazewnictwa, ale wszystkie zgadzają się co do jednego: "znajdź to, co Ci odpowiada i trzymaj się tego."Ale teraz, gdy przeczytałem tak wiele, odkryłem, że niektóre z innych metod podobają mi się nieco lepiej niż to, do czego jestem przyzwyczajony.
6 answers
Stosuję Douglas Crockford ' s code conventions dla javascript. Używam również jego narzędzia JSLint do sprawdzania zgodności z tymi konwencjami.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-25 11:44:49
Jak mówi Geoff, to, co mówi Crockford, jest dobre.
Jedynym wyjątkiem, który stosuję (i widziałem powszechnie używane) jest użycie $varname do wskazania obiektu jQuery (lub innej biblioteki). Np.
var footer = document.getElementById('footer');
var $footer = $('#footer');
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-25 09:48:36
Możesz śledzić ten Google JavaScript Style Guide
Ogólnie, używaj nazw funkcyjnych, nazw zmiennych, nazw klasowych, nazw Enumeslikethis, nazw metod i SYMBOLIC_CONSTANTS_LIKE_THIS.
EDIT: Zobacz ładny zbiór podręczników stylu JavaScript i Upiększaczy .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-26 00:07:11
Jedną z Konwencji, którą chciałbym wypróbować, jest nazywanie statycznych modułów przedrostkiem "the". Zobacz też Kiedy używam czyjegoś modułu, nie jest łatwo zobaczyć, jak mam go używać. eg:
define(['Lightbox'],function(Lightbox) {
var myLightbox = new Lightbox() // not sure whether this is a constructor (non-static) or not
myLightbox.show('hello')
})
Myślę o wypróbowaniu konwencji, w której Moduły statyczne używają 'the' do wskazania ich preegzystencji. Czy ktoś widział lepszy sposób? Wyglądałoby tak:
define(['theLightbox'],function(theLightbox) {
theLightbox.show('hello') // since I recognize the 'the' convention, I know it's static
})
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-06 19:04:18
Myślę, że poza pewnymi ograniczeniami składni, konwencje nazewnictwa są w dużej mierze niezależne od języka. Argumenty przemawiające za c_style_functions i JavaLikeCamelCase równie dobrze mogłyby być użyte w przeciwny sposób, po prostu użytkownicy języka mają tendencję do podążania za autorami języka.
Biorąc to pod uwagę, myślę, że większość bibliotek z grubsza podąża za uproszczeniem CamelCase Javy. Dla mnie Douglas Crockford jest wystarczająco gustowny.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-28 14:35:06
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". Niektórzy ludzie lubią używać podkreślenia między słowami ("my_message"), podczas gdy inni lubią oddzielić je wielkimi literami ("myMessage").
Często pracuję z ogromnymi bibliotekami JavaScript z innymi ludźmi, więc funkcje i zmienne (poza prywatnymi zmiennymi wewnątrz funkcji) zaczęły się od nazwa usługi, aby uniknąć konfliktów, jako "guestbook_message".
W skrócie: angielskie, z niższą obudową, dobrze zorganizowane nazwy zmiennych i funkcji są według mnie lepsze. Nazwy powinny opisywać ich istnienie, a nie być krótkie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-28 14:48:59