10 Gründe, warum Sie Code-Optimierung benötigen
Während wir Code schreiben, treffen wir ständig Entscheidungen und wählen zwischen Lösungen, die auf den ersten Blick gleich erscheinen mögen. Später stellt sich heraus, dass einige Entscheidungen zu einem effizienteren Programm führen als andere, so dass die Suche nach den besten Programmierpraktiken und Optimierungstechniken auf natürliche Weise erfolgt und wir beginnen, den gesamten Entwicklungsprozess als ein zu lösendes Optimierungsproblem zu sehen .
Obwohl Optimierungsprobleme nicht die einzigen Probleme sind, mit denen sich Entwickler regelmäßig beschäftigen, zum Beispiel gibt es Entscheidungsprobleme und Suchprobleme, ist die Optimierung die Aufgabe, die die verschiedenen Phasen der Webentwicklung wahrscheinlich am meisten umfasst.
Die Code-Optimierung kann auf verschiedenen Ebenen erfolgen, je nachdem, wie nahe die von uns durchgeführte Optimierung dem Maschinencode entspricht. In der Web-Entwicklung können wir nur Optimierungen auf höherer Ebene durchführen, da Assemblierungs- oder Runtime-Level-Optimierungen für uns keine Option sind, aber wir haben immer noch viele Möglichkeiten.
Wir können unseren Code auf architektonischer Ebene mit intelligenten Entwurfsmustern auf Quellcodeebene optimieren, indem wir die besten Programmierpraktiken verwenden und geeignete Tools verwenden. Außerdem können wir die Leistung unseres Teams verbessern, indem wir Codierungsstil-Anleitungen in unseren Workflow einfügen .
Für welche Technik wir uns auch entscheiden, es gibt eine Faustregel, die jeder Codeoptimierung folgen muss: Wir müssen die Optimierung immer so durchführen, dass die Bedeutung des Codes nicht verändert wird .
Die Vorteile der Code-Optimierung wachsen im Einklang mit dem Wachstum unseres Projekts, und da selbst kleine Projekte im Laufe der Zeit immer größer werden können, haben solide Code-Optimierungsfähigkeiten fast immer messbare positive Ergebnisse.
1. Reiniger-Codebasis
Wenn ein Projekt reifer wird und immer mehr Entwickler daran arbeiten, tauchen früher oder später Duplikationen und Überlappungen auf, und plötzlich erkennen wir, dass wir kaum verstehen, was vor sich geht.
Es ist kein Zufall, dass die Einhaltung des DRY-Prinzips (Do not Repeat Yourself) einer der Eckpfeiler einer effektiven Softwareentwicklung ist. Eine gut durchdachte, sorgfältig optimierte Codebasis, in der wir die gleichen Elemente mehrfach wiederverwenden können, ist immer schlanker und übersichtlicher und daher viel einfacher zu verstehen und zu verarbeiten.2. Höhere Konsistenz
Konsistenz ist wie Hausarbeit, wenn es richtig gepflegt wird, bemerkt niemand es, aber wenn es vernachlässigt wird, sieht der ganze Ort chaotisch aus, und wir befinden uns im Chaos.
Es ist schwierig, eine vollständige Konsistenz zu erreichen, da die Gewährleistung der Rückwärtskompatibilität letztendlich der Verbesserung im Wege stehen kann, aber die Beachtung kohärenter Code-Richtlinien, kompatibler APIs und konsistenter Standards kann den Schmerz sicherlich verringern.
Die Einhaltung von Code-Konsistenz ist besonders wichtig, wenn wir mit Legacy-Code umgehen müssen, oder bei größeren Projekten, an denen viele Entwickler beteiligt sind .
3. Schnellere Websites
Die Optimierung des Codes ähnelt dem Kauf eines schnelleren Autos. Infolgedessen wird unser Code schneller ausgeführt, und unsere Site oder Anwendung verbraucht weniger Arbeitsspeicher als zuvor. Obwohl der Optimierungsprozess zusätzliche Zeit und Geld erfordern kann, ist das Ergebnis eine bessere Erfahrung, nicht nur für Entwickler, sondern auch für Endbenutzer.
Schnellerer Code führt auch zu kürzeren Ladezeiten der Seiten, was sowohl in der Suchmaschinenoptimierung als auch im Conversion-Marketing eine große Rolle spielt. Die Forschung sagt, dass "fast die Hälfte der Internetnutzer erwarten, dass eine Website in 2 Sekunden oder weniger geladen wird, und sie tendieren dazu, eine Seite, die nicht innerhalb von 3 Sekunden geladen ist, zu verlassen." Geschwindigkeit ist also eindeutig kein Bereich, den wir ignorieren können.4. Bessere Code-Lesbarkeit
Lesbarkeit ist ein wichtiger Aspekt der Code-Wartbarkeit. Unordentlicher Code mit Ad-hoc-Formatierung ist schwer zu lesen, daher schwer zu verstehen, besonders für Entwickler, die neu in einem Projekt sind.
Wir können uns vor dem Problem des Umgangs mit nicht entzifferbarem Code schützen, wenn wir bestimmte Code-Optimierungstechniken anwenden, wie zum Beispiel:- Verwenden kohärenter Namenskonventionen mit aussagekräftigen Namen wie BEM
- konsistente Formatierung mit logischer Verwendung von Einrückung, Leerzeichen und vertikalem Abstand
- unnötige Geräusche vermeiden, wie selbsterklärende, offensichtliche Kommentare
Dies ist der Grund, warum große Projekte wie WordPress, jQuery und Mootools klare Coding-Style-Guides haben, denen jeder Entwickler folgen muss.
5. Effizienteres Refactoring
In der Webentwicklung kommt es häufig vor, dass wir Code von jemand anderem erben und schnell verstehen, dass er bei weitem nicht optimal ist, weder in Bezug auf Struktur, Leistung noch Wartbarkeit . Dasselbe kann mit unseren eigenen früheren Projekten passieren, die wir geschrieben haben, als wir weniger Erfahrung in der Programmierung hatten.
In anderen Fällen ändern sich die Ziele eines ansonsten großartigen Projekts im Laufe der Zeit und wir müssen andere Dinge in der Anwendung priorisieren als zuvor.
Wir sprechen über Refactoring, wenn wir vorhandenen Code ändern (bereinigen), um ihn zu optimieren, ohne irgendeine seiner Funktionalitäten zu verändern. Refactoring muss mit großer Sorgfalt durchgeführt werden, als ob es auf die falsche Art und Weise durchgeführt würde, wir könnten leicht mit einer Code-Basis enden, die noch weniger optimal ist als das Original.
Glücklicherweise haben wir viele erprobte Techniken, die den Refactoring zu einem reibungslosen Prozess machen.
6. Einfacheres Debugging
Das Debugging nimmt einen erheblichen Teil des Web-Entwicklungs-Workflows in Anspruch, und es ist normalerweise eine langwierige oder sogar entmutigende Aufgabe. Es ist schwer genug, wenn wir unseren eigenen Code debuggen müssen, aber es ist viel schlimmer, wenn wir die Fehler in jemand anderem finden müssen, vor allem wenn es sich um nicht endenden Spaghetti-Code handelt, der nur Funktionen verwendet.
Intelligente Entwurfs- und Architekturmuster, wie die Verwendung von Objekten und verschiedenen Modulen, und klare Richtlinien für die Codierung können den Debugging-Prozess erleichtern, selbst wenn es wahrscheinlich nicht immer unsere beliebteste Aufgabe sein wird.
7. Verbesserter Workflow
Viele Web-Entwicklungsprojekte werden von verteilten Teams wie Open-Source-Communities oder Remote-Teams ausgeführt. Eine der schwierigsten Aufgaben bei der Verwaltung eines solchen Workflows besteht darin, einen Weg zu finden, der die Kommunikation so effektiv gestaltet, dass die Teammitglieder einander leicht verstehen und nicht ständig über die Standardeinstellungen diskutieren müssen .
Best Practices und Style Guides können die Lücke zwischen Menschen mit unterschiedlichem Hintergrund schließen, ganz zu schweigen von den üblichen Kommunikationsengpässen zwischen Design- und Entwicklungsteams in den meisten Webprojekten.
Code-Optimierung ist auch Workflow-Optimierung, als ob Teammitglieder eine gemeinsame Sprache sprechen und teilen die gleichen erklärten Ziele, sie werden auch in der Lage sein, ohne viel weniger Aufwand zusammenzuarbeiten.
8. Einfachere Codewartung
Obwohl es von Anfang an mehr Spaß macht, etwas von Grund auf zu entwickeln, als den vorbestehenden Code beizubehalten, müssen wir manchmal noch eine laufende Codewartung durchführen. Die Arbeit mit bereits existierenden Systemen kann uns auch neue Sichtweisen auf Code-Optimierung geben, da es eine andere Erfahrung ist als frühe Optimierungen in einem neuen Projekt.
In der Softwarewartung befinden wir uns bereits in einer Phase, in der wir echte Leistungs- und Effizienzprobleme erkennen und mit realen Benutzern anstelle von hypothetischen Anwendungsfällen arbeiten können.Die Codepflege wird in Entwicklerkreisen normalerweise wenig respektiert, aber es kann immer noch eine lohnende Aufgabe sein, wenn wir Best Practices wie die Verwendung zuverlässiger Versionskontrolle, Abhängigkeitsverwaltung, Staging- und Testplattformen befolgen und die Dokumentation ordnungsgemäß durchführen.
9. Schnelleres Feature-Entwicklung
Ständige Innovation ist der Kern, um in unserem Bereich relevant zu bleiben, denn wenn wir unseren Nutzern seit einiger Zeit nichts Neues zeigen, können wir schnell zurückbleiben. Das Erweitern eines Projekts und das Hinzufügen neuer Funktionen ist normalerweise viel schneller, wenn wir mit einer gut optimierten, sauberen Codebasis arbeiten.
Neben den bereits diskutierten Methoden der Code-Optimierung kann die Feature-Entwicklung auch dann an Dynamik gewinnen, wenn wir mit modernen Projektmanagement-Methoden Schritt halten, zum Beispiel wenn wir statt des traditionellen Wasserfall-Modells iterative Lifecycle-Modelle verwenden.
10. Kleinere technische Schulden
Der Begriff "technische Schuld" wurde von Ward Cunningham, dem Programmierer, der auch das erste Wiki entwickelte, geprägt. Es vergleicht die Folgen unserer schlechten Programmierungsentscheidungen, die sich im Laufe der Zeit mit Finanzschulden häufen, in denen Menschen in der Zukunft Zinsen zahlen, um in der Gegenwart schnell Geld zu bekommen.
Diese weniger als optimalen Entscheidungen manifestieren sich in der Regel in Form von Schnellkorrekturen, Copy-and-Paste-Programmierung, Hard-Coding, Cargocult-Programmierung und anderen Codierungs-Antipattern und schlampigen Arbeitsgewohnheiten.
Es ist grundsätzlich unmöglich, technische Schulden vollständig zu vermeiden, da selbst gute Entscheidungen in Zukunft weniger erwünschte Folgen sein können, aber wenn wir unseren Kodex fleißig optimieren, werden wir sicherlich mit einer viel geringeren technischen Schuld belastet sein .
10 Zeichen Ihr PC wurde kompromittiert
Wir sind alle müde davon, dass unser PC infiziert oder kompromittiert wird, aber die Wahrheit ist manchmal, anstatt einen infizierten PC reparieren zu müssen, ist es besser , über den Grund zu erfahren, warum der PC überhaupt infiziert ist . Dafür gibt es viele mögliche Gründe und alles geht auf unsere individuellen Surfgewohnheiten zurück.In dies
Google I / O 2017: Was Google für VR & AR plant
Nachdem Google die Funktionen und Services, die 2017 in das Ökosystem von Google einfließen werden, stark fokussiert, hat Google auf der I / O 2017 eine zweite Keynote gehalten, die sich ausschließlich auf zwei Themen konzentriert: Virtual Reality und Augmented Reality .Für diese Keynote zu I / O 2017 hat Google die Position von Daydream und Tango in naher Zukunft erweitert . Di