Nicht zur Laufzeit, sondern zur Entwurfszeit

Bild

Es war einmal ein weiser alter Entwickler, der mir Ratschläge gab, die ich bis vor kurzem nicht wirklich zu schätzen wusste.

Bei der Codeüberprüfung haben wir einige Funktionen berücksichtigt, bei denen das Programm eine Liste der Buchstaben AZ anzeigen musste (z. B. eine Liste der Kontakte mit einer Reihe von Schaltflächen, mit denen Sie zu Namen springen können, die mit einem bestimmten Buchstaben beginnen).

So erschien ein junger erfolgreicher Programmierer. (Nun, das war ich.) Ich entschied, dass es einfacher sein würde, anstelle des Hardcodes des Arrays aller Buchstaben eine for-Schleife zu schreiben, die von 65 bis 90 läuft, und dann die Buchstaben mit dem empfangenen Zeichencode zu generieren.

In einer JavaScript-Variante sieht es ungefähr so ​​aus:

for (let i = 65; i <= 90; i++) { letters.push(String.fromCharCode(i)) } 

Ein weiser alter Entwickler sah mich an und fragte, warum ich dieses Array nicht hart codiert habe. Es sieht nicht so aus, als würde sich das Alphabet von Sitzung zu Sitzung unterscheiden. Warum also jedes Mal berechnen?
EDISON Software - Webentwicklung
Dieser Artikel wurde mit Unterstützung von EDISON Software übersetzt, das das Vivaldi-Dokumentenspeicher-Diagnosesystem entwickelt und in Startups investiert .

Ich hatte angst „Wie können Sie erwarten, dass ich jeden Buchstaben wie ein Kind schreibe? Ich bin ein professioneller Softwareentwickler! "Ich habe Algorithmen und Datenstrukturen und einen mathematischen Coprozessor, um Himmels willen!"

"Gut", sagte er. "Verwenden Sie diese Funktionalität einfach zur Entwurfszeit, um ein Array zu generieren, und kopieren Sie es dann und fügen Sie es in Ihren Arbeitscode ein."

Und dann sagte er das:
"Vermeiden Sie zur Laufzeit, was Sie während der Entwicklung tun können."
Jetzt lasst uns ehrlich sein. Meine kleine for-Schleife würde die Anwendung nicht verlangsamen. Und moderne Maschinen werden diesen Code so schnell verstehen, dass niemand etwas davon merkt. Dies ist jedoch in der Regel ein kluger Ratschlag.

Zu oft schreiben wir Code, der selten wechselnde Daten bei jeder Anforderung von einem Format in ein anderes konvertiert. Denken Sie an alle Situationen, in denen wir Inhalte aus einer Datenbank erhalten, die sich ein- oder zweimal im Jahr ändern können, formatieren und an den Browser senden, ohne die Anwendung verlangsamen zu müssen. Dies gilt insbesondere für Websites, die mit einem Content-Management-System verknüpft sind.

Aus diesem Grund denke ich, dass so bekannte Spieler wie Wordpress, Drupal usw. in den kommenden Jahren ein ernstes Problem mit solchen statischen Site-Generatoren wie Gatsby , Hugo oder Jekyll haben werden , kombiniert mit einem reibungslosen Build-Prozess und kopflosem CMS , billiges CDN und schneller kontinuierlicher Integrationsprozess.

Dieses Muster wurde JAMstack genannt , was "JavaScript, API und der Markup-Stack" bedeutet. Und die Ergebnisse sind sehr beeindruckend .

Der Rat eines weisen alten Entwicklers hört sich in meinen Ohren an: "Vermeiden Sie während der Programmausführung, was Sie während der Entwicklung tun können." Und mit der Zeit wurde mir klar, dass dieser Rat weitreichende Konsequenzen hat. Nicht nur für die Softwareentwicklung, sondern auch fürs Leben.

Kürzlich habe ich Ray Dalios wundervolles Buch "Principles: Work and Life" gelesen. Das zentrale Thema des Buches ist, dass es weitaus weniger Arten von Problemen als echte Probleme gibt. Wenn Sie also im Voraus daran arbeiten und herausfinden, wie Sie sich dem spezifischen Problem nähern werden, auf das Sie wahrscheinlich stoßen, sind Sie in diesem Fall viel besser darauf vorbereitet, damit umzugehen.

Tatsächlich können Sie bessere Entscheidungen schneller treffen, indem Sie Ihre Herangehensweise an verschiedene Arten von Problemen während der „Entwicklung“ sortieren, wenn Sie ruhig über das Leben nachdenken, und nicht während der „Ausführung“, wenn Sie im Moment mit einem tatsächlichen Problem und Panik konfrontiert sind.

Dalio implementierte diese Technik, indem er seine Ansätze als eine Reihe von Prinzipien katalogisierte. Er ging sogar so weit, dass er seinen Entscheidungsprozess in einer Reihe von Computeralgorithmen festlegte, die er anhand einer großen Menge historischer Daten testen konnte.

Da er ein Multi-Milliardär ist und eine sehr erfolgreiche Investmentgesellschaft betreibt, würde ich sagen, dass es funktioniert hat. Tatsächlich beginnt die Wall Street, mehr Programmierer als Aktienhändler einzustellen. Wenn Sie also Zweifel haben, dass Sie den falschen Beruf gewählt haben, gibt es viele Beweise dafür, dass die Software die Welt frisst.

  • Ich habe meine eigenen Tipps und Erfahrungen in einem kürzlich im Developer On Fire-Podcast veröffentlichten Interview geteilt, das Sie hier anhören können.
  • Sie können JAMstack auf Jamstack.org treffen
  • Der Netlify-Blog bietet auch einen guten Überblick über statische Site-Generatoren.
  • Und hier ist ein Artikel über einen bestimmten Stapel , den ich kürzlich überprüft und empfohlen habe und der eine Kombination aus Gatsby, Contentful, Netlify und Algolia als Alternative zum herkömmlichen CMS für die Dokumentationssite verwendet.


Weitere interessante Veröffentlichungen





Lesen Sie auch den Blog
EDISON Unternehmen:


20 Bibliotheken für
spektakuläre iOS-Anwendung

Source: https://habr.com/ru/post/de475920/


All Articles