Pochodzę z języka Java i jestem nowy w JavaScript. Zauważyłem wiele metod JavaScript wykorzystujących nazwy parametrów jednoznakowych, na przykład w poniższym przykładzie.
doSomething(a,b,c)
Nie podoba mi się to, ale inny programista JavaScript przekonał mnie, że zrobiono to w celu zmniejszenia rozmiaru pliku, zauważając, że pliki JavaScript muszą zostać przesłane do przeglądarki.
Potem rozmawiałem z innym programistą. Pokazał mi, jak Firefox obcina nazwy zmiennych, aby szybciej ładować stronę. Czy to standardowa praktyka dla przeglądarek internetowych?
Jakie są najlepsze praktyki konwersji nazw, których należy przestrzegać podczas programowania w JavaScript? Czy długość identyfikatora ma znaczenie, a jeśli tak, to w jakim zakresie?
eval
nie jest to bezpieczne (tak,eval
jest okropne, ale jest częścią standardu i nie wyrzucasz standardowej zgodności w celu optymalizacji) i nie pomaga w najmniejszym stopniu w zmniejszeniu ruchu - nadal wyślij pełny plik.Odpowiedzi:
Przekonasz się, że sami programiści nie używają krótkich nazw zmiennych. Podczas opracowywania używają znaczących i szczegółowych nazw zmiennych.
Następnie , w trakcie budowy / release, kod oni napisany jest prowadzony przez minifier / obfuscator z zamiarem zminimalizowania rozmiaru pliku, jako najlepszych praktyk w celu przyspieszenia strony internetowej. Jest to opcjonalny krok, jeśli zależy Ci , że dużo o wydajności. Większość małych stron internetowych tego nie robi.
Ty , jako programista, nie powinien dbać o procesie minifikacji / zaciemniania; napisz swój kod, aby był czytelny, znaczący, dobrze udokumentowany i dobrze zorganizowany. Następnie, jeśli tak bardzo zależy Ci na wydajności (opcjonalnie, nie zapomnij!), Wprowadź do procesu wydania minifikator / obfuscator, aby zminimalizować kod (usunąć białe znaki, nowe wiersze, komentarze itp.) I zaciemnić go (np. Skrócić zmienną nazwy). Dobry artykuł, który wyjaśnia zaciemnianie a minimalizowanie, można znaleźć tutaj .
Dodatkowo Desktop FireFox nie obcinać okresu nazw zmiennych . Obcinanie nazw zmiennych ma na celu przyspieszenie pobierania strony. Do czasu, gdy FireFox pobierze plik, został już pobrany, dlatego nie trzeba tego robić. Twój przyjaciel może uruchomić wtyczkę, która to robi; w takim przypadku powiedz mu, aby go odinstalował, ponieważ jest to bezużyteczne.
Na zakończenie niektóre (mobilne) przeglądarki mają opcję korzystania z serwerów pośrednich, które przechwytują odpowiedzi żądanych zasobów i kompresują je za Ciebie (co może obejmować minimalizację plików JavaScript). Zauważ, że kompresja odbywa się na serwerze (tj. Przed pobraniem strony), stąd potencjalna korzyść z pobrania mniejszego pliku, a nie w przeglądarce po pobraniu pliku (jak sugerowano w pytaniu). Do takich przeglądarek mobilnych należą Opera Mini i nowsze wersje Google Chrome (przynajmniej na iOS; nie jestem pewien co do Androida). Aby uzyskać więcej informacji, zobacz tutaj .
źródło
Nie, nie wszystkie przeglądarki automatycznie skracają JavaScript, aby zwiększyć wydajność.
Jednak w przypadku JavaScript nie należy poświęcać czytelności / konserwacji kodu w celu zwiększenia szybkości przetwarzania lub bezpieczeństwa, ponieważ istnieją narzędzia zwane zaciemniaczami i innymi narzędziami zwanymi shinkerami (lub kompresorami), które zostały zaprojektowane do tego celu.
Pamiętaj, nie optymalizuj wstępnie. Jeśli Twoja strona ładuje się wystarczająco szybko i nie masz zbyt wrażliwych treści w swoim JavaScript, nie przejmuj się. Nazwij swoje zmienne znaczącymi nazwami. Czytelność kodu jest bardzo ważna dla łatwości konserwacji i rzadko, jeśli w ogóle, należy ją poświęcić.
Jeśli chcesz odniesienie do kilku dobrych standardy kodowania JavaScript, polecam użyciu nich .
źródło
Nie martw się o rozmiar pliku przedwcześnie. Chociaż zawsze stanowi to problem, czytelność i łatwość konserwacji są ważniejsze.
Z powiedział, że należy prawdopodobnie servining minified (na przykład poprzez YUI Compressor ) wersje skryptów tak.
Jeśli interesują Cię najlepsze praktyki tworzenia stron internetowych, sugeruję przeczytanie Co każdy programista powinien wiedzieć o tworzeniu stron internetowych?
źródło
Pracowałem w JavaScript bardzo długo.
Mieliśmy standard nazewnictwa, w którym dla wszystkich zmiennych trzeba było używać notacji węgierskiej .
Wydawało się, że działa OK. Wiem, że istnieją argumenty przeciwko temu, ale działało to dobrze dla nas. Zwłaszcza, gdy masz ogromne pliki JavaScript, w których musisz znaleźć rzeczy.
Przestrzegałbym przed przedwczesną optymalizacją. Najprawdopodobniej skończysz z niechlujnym kodem, który tak naprawdę wcale nie działa znacznie szybciej.
źródło
goto
której ludzie bezmyślnie powtarzają mantrę „nie używaj goto ... nie używaj goto ...” . W rzeczywistości jest to tylko narzędzie w zestawie narzędzi. Jak każde narzędzie ma sytuacje, w których jest użyteczne i sytuacje, w których nie jest tak przydatne (a nawet szkodliwe). To tak, jakby ktoś miał złe doświadczenia z próbą zobaczenia kawałka drewna młotkiem, a następnie ogłosił , że „nigdy nie używaj młotów, piły o wiele lepiej!”. .Długość identyfikatora nie ma znaczenia. Jak powiedzieli inni, w produkcji można zastosować Minification, aby skrócić czas pobierania skryptu. W rzeczywistości należy przestrzegać akceptowalnej konwencji kodowania / nazewnictwa, zwłaszcza że JavaScript jest dziwacznym językiem i przez tak długi czas JavaScript był zaniedbywany jako po prostu zadanie do wykonania. Jeśli szukasz miejsca na konwencję nazewnictwa, dobrym wyborem jest Przewodnik po stylu JavaScript JavaScript . Sugeruje,
źródło
Rozwścieczony filozofią „czystego programisty” (a biorąc pod uwagę, że wiesz już z powyższych postów, że ze względu na zmniejszenie rozmiaru nazw zmiennych będzie miało zerowy wpływ na wydajność), mogę jedynie doradzić:
Napisz swój kod w taki sposób, że wszelkie komentarze będą zbędne. To znaczy zamiast pisać
co może znaczyć naprawdę wszystko (szczególnie w szalonym luźno pisanym języku, takim jak js;) sprawiasz, że kod wyraża się sam
W dobrym IDE zazwyczaj nigdy nie wpisujesz żadnej nazwy zmiennej, która byłaby tak długa dwa razy - kilka sekund wpisujesz kilka liter i po prostu naciskasz enter z autouzupełniania. Jeśli nalegasz na samodzielne wpisanie każdej postaci, dobre IDE i tak zauważy ci literówkę. To tylko bardzo powierzchowny przykład, dlatego zdecydowanie sugeruję (nie jako formę krytyki, ale jako szczerą rekomendację), abyś
Zdobądź książki „Czysty kod” Roberta C. Martina i „Pragmatic Programmer” Hunta / Thomasa i nigdy więcej nie zadawaj sobie takich pytań - będziesz zbyt zajęty pracą na serwerze ciągłej integracji, aby zautomatyzować nudny test - i buduj części procesu programowania (w tym minimalizowanie) i koncentruj się na zabawnej części, pisząc zrozumiały kod, który robi świetne rzeczy!
PS Jeśli chcesz przyzwyczaić się do rozwijania najnowocześniejszego kodu javascript, rzuć okiem na książkę Johna „Mr. jQuery” Resiga o „Pro JavaScript Techniques” zaraz po tym lub razem z powyższym.
źródło