Ich habe einen Java-Hintergrund und bin neu in JavaScript. Ich habe viele JavaScript-Methoden bemerkt, die einzelne Zeichen als Parameternamen verwenden, wie im folgenden Beispiel.
doSomething(a,b,c)
Es gefällt mir nicht, aber ein anderer JavaScript-Entwickler hat mich davon überzeugt, dass dies geschieht, um die Dateigröße zu reduzieren, und dass JavaScript-Dateien in den Browser übertragen werden müssen.
Dann habe ich mich mit einem anderen Entwickler unterhalten. Er hat mir gezeigt, wie Firefox Variablennamen abschneidet, um die Seite schneller zu laden. Ist dies eine Standardpraxis für Webbrowser?
Was sind die empfohlenen Namenskonvertierungen, die beim Programmieren in JavaScript befolgt werden sollten? Ist die Länge des Bezeichners von Bedeutung und wenn ja, in welchem Umfang?
eval
ist es nicht sicher (ja, eseval
ist schrecklich, aber es ist Teil des Standards, und Sie werfen keine Standardkompilierung für eine Optimierung weg) und es hilft nicht im geringsten, den Datenverkehr zu reduzieren - Sie würden es immer noch Sende die vollständige Datei.Antworten:
Sie werden feststellen, dass die Entwickler selbst keine kurzen Variablennamen verwenden. Während der Entwicklung verwenden sie aussagekräftige und detaillierte Variablennamen.
Während des Build- / Release-Prozesses wird der von ihnen geschriebene Code durch einen Minifier / Obfuscator geleitet, um die Größe der Datei zu minimieren. Dies ist eine bewährte Methode , um eine Website zu beschleunigen. Dies ist ein optionaler Schritt, wenn Sie so viel Wert auf Leistung legen. Die meisten kleinen Websites tun dies nicht.
Sie als Entwickler sollten sich nicht um den Minimierungs- / Verschleierungsprozess kümmern . Schreiben Sie Ihren Code so, dass er lesbar, aussagekräftig, gut dokumentiert und gut strukturiert ist. Dann , wenn Sie so viel über die Leistung kümmern (optional, nicht vergessen!), Einen minifier / obfuscator in Ihren Freigabeprozess einführen , den Code minize (entfernen Leerraum, neue Linien, Kommentare usw.) und es zu verschleiern (zB shorten Variable Namen). Einen guten Artikel, der Obfuscation vs. Minification erklärt, finden Sie hier .
Darüber hinaus schneidet Desktop FireFox den Zeitraum für Variablennamen nicht ab . Das Abschneiden von Variablennamen dient dazu, den Seiten-Download zu beschleunigen. Wenn FireFox die Datei erhält, wurde sie bereits heruntergeladen, sodass dies nicht erforderlich ist. Dein Freund kann ein Plugin ausführen, das dies tut. In diesem Fall bitten Sie ihn, es zu deinstallieren, da es unbrauchbar ist.
Zur Vervollständigung, einige haben (mobile) Browser die Option Mitte-Mann - Server zu verwenden, die Intercept die Antworten von Ressourcen , die Sie angefordert, und komprimieren sie für Sie (das könnte die Verkleinerungs von JavaScript - Dateien enthalten). Beachten Sie, dass die Komprimierung auf dem Server erfolgt (dh bevor Sie die Seite heruntergeladen haben). Dies ist der potenzielle Vorteil des Herunterladens einer kleineren Datei anstelle des Browsers, sobald Sie die Datei bereits heruntergeladen haben (wie in der Frage vorgeschlagen). Zu diesen mobilen Browsern gehören Opera Mini und neuere Versionen von Google Chrome (zumindest unter iOS; Android nicht sicher). Weitere Informationen finden Sie hier .
quelle
Nein, nicht alle Browser kürzen das JavaScript automatisch, um die Leistung zu verbessern.
Im Falle von JavaScript sollten Sie jedoch die Lesbarkeit / Wartbarkeit des Codes nicht einschränken, um die Verarbeitungsgeschwindigkeit oder die Sicherheit zu verbessern, da es Tools namens Obfuscators und andere Tools namens Shinkers (oder Kompressoren) gibt, die für diesen Zweck entwickelt wurden.
Denken Sie daran, nicht voroptimieren. Wenn Ihre Seite schnell genug geladen wird und Sie keinen überempfindlichen Inhalt in Ihrem JavaScript haben, sorgen Sie sich nicht darum. Benennen Sie Ihre Variablen mit aussagekräftigen Namen. Die Lesbarkeit von Code ist für die Wartbarkeit von großer Bedeutung und sollte, wenn überhaupt, selten geopfert werden.
Wenn Sie auf einige gute JavaScript-Kodierungskonventionen verweisen möchten, empfehle ich diese .
quelle
Sorgen Sie sich nicht vorzeitig um die Dateigröße. Während es immer ein Anliegen ist, ist die Lesbarkeit und Wartbarkeit wichtiger.
Vor diesem Hintergrund sollten Sie wahrscheinlich ohnehin minimierte Versionen Ihrer Skripte warten (z. B. über YUI Compressor ).
Wenn Sie an Best Practices für die Webentwicklung im Allgemeinen interessiert sind, empfehle ich Folgendes: Was sollte jeder Programmierer über die Webentwicklung wissen?
quelle
Ich habe sehr lange in JavaScript gearbeitet.
Wir hatten einen Namensstandard, bei dem Sie die ungarische Notation für alle Variablen verwenden mussten.
Es schien in Ordnung zu funktionieren. Ich weiß, dass es Fälle gibt, die dagegen sprechen, aber es hat bei uns gut funktioniert. Vor allem, wenn Sie massive JavaScript-Dateien haben, in denen Sie Dinge finden müssen.
Ich würde davor warnen, vorzeitig zu optimieren. Es ist sehr wahrscheinlich, dass Sie einen chaotischen Code erhalten, der überhaupt nicht viel schneller läuft.
quelle
goto
in der die Leute das Mantra „Benutze nicht gehe ... benutze nicht gehe ...“ sinnlos wiederholen . Die Realität ist, dass es nur ein Werkzeug in Ihrem Toolkit ist. Wie jedes Werkzeug hat es Situationen, in denen es nützlich ist und Situationen, in denen es nicht so nützlich (oder sogar schädlich) ist. Es ist, als hätte jemand eine schlechte Erfahrung damit gemacht, ein Stück Holz mit einem Hammer zu sägen und dann zu proklamieren: "Benutze niemals Hämmer, säge viel besser!" . Umfassende Verallgemeinerungen sind immer falschDie Länge des Bezeichners spielt keine Rolle. Wie bereits von anderen erwähnt, kann Minification in der Produktion verwendet werden, um die Download-Zeit für Skripte zu verkürzen. In der Tat sollte eine akzeptable Kodierungs- / Benennungskonvention befolgt werden, insbesondere weil JavaScript eine eigenartige Sprache ist und so lange JavaScript als eine Sache vernachlässigt wurde, um die Arbeit zu erledigen. Wenn Sie nach einem Ort für Namenskonventionen suchen, ist Google JavaScript Style Guide ein guter Ort. Es schlägt vor,
quelle
Verärgert über die "Clean Code Developer" -Philosophie (und angesichts der Tatsache, dass die Minimierung der Größe Ihrer Variablennamen keinen Einfluss auf die Leistung hat, kann ich nur raten:
Schreiben Sie Ihren Code so, dass Kommentare überflüssig werden. Das heißt, anstatt zu schreiben
was wirklich alles bedeuten könnte (besonders in einer verrückten, lose geschriebenen Sprache wie js;), lässt du den Code sich selbst ausdrücken
In einer guten IDE würden Sie in der Regel niemals einen Variablennamen eingeben, der zweimal so lang ist - Sekunden, wenn Sie ein paar Buchstaben eingeben und in der automatischen Vervollständigung einfach die Eingabetaste drücken. Wenn Sie darauf bestehen, jedes Zeichen selbst einzugeben, werden Sie von einer guten IDE trotzdem auf einen Tippfehler aufmerksam. Dies ist nur ein sehr oberflächliches Beispiel, daher empfehle ich Ihnen dringend (nicht als Form der Kritik, sondern als ehrliche Empfehlung)
Holen Sie sich die Bücher "Clean Code" von Robert C. Martin und "Pragmatic Programmer" von Hunt / Thomas und stellen Sie sich diese Fragen nie wieder - Sie werden viel zu beschäftigt sein, an einem Continuous Integration Server zu arbeiten, um den langweiligen Test zu automatisieren -, & Teile des Entwicklungsprozesses (einschließlich des Minimierens) aufbauen und sich auf den unterhaltsamen Teil konzentrieren, klar verständlichen Code schreiben, der großartige Dinge leistet!
PS Wenn Sie mit der Entwicklung von modernstem Javascript-Code auf dem Laufenden bleiben möchten, werfen Sie gleich nach oder zusammen mit den oben genannten Informationen einen Blick auf das Buch von John "Mr. jQuery" Resig über "Pro Javascript Techniques".
quelle