Erstellen Sie Ihren Code von Grund auf neu, er wird Ihr Level verbessern

Bild


Um das Rad wirklich zu verstehen, müssen Sie es selbst neu erfinden.

Neulich habe ich mich für die Position eines leitenden Javascript-Entwicklers beworben. Mein Kollege, der ebenfalls an dem Interview teilgenommen hat, hat den Kandidaten gebeten, eine Funktion zu schreiben, die die HTTP-Anforderung ausführt und sie im Fehlerfall mehrmals wiederholt.

Da er dies an die Tafel schrieb, würde Pseudocode ausreichen. Wenn er das Problem gut verstehen würde, wären wir zufrieden. Leider konnte er keine gute Lösung finden.

Da wir dachten, er sei nervös, beschlossen wir, die Aufgabe etwas zu vereinfachen, und baten ihn, die auf dem Rückruf basierende Funktion in die auf Promise basierende Funktion umzuwandeln.

Pech gehabt.

Ich kann sagen, dass er schon einmal einen ähnlichen Code gesehen hat. Er wusste mehr oder weniger, wie das funktionierte. Ein Pseudocode, der zeigt, dass er dieses Konzept versteht, würde ausreichen.

Aber der Code, den er an die Tafel schrieb, ergab keinen Sinn. Er hatte nur ein vages Verständnis für das Konzept von Promise in JavaScript und konnte nicht klar über ihn sprechen.

Es kann entschuldbar sein, wenn Sie ein Anfänger sind, aber wenn Sie sich für eine Führungsposition bewerben, reicht dies nicht aus. Wie wird er die komplexe Promise-Kette debuggen und dann anderen erklären, was er getan hat?

EDISON Software - Webentwicklung
Dieser Artikel wurde mit Unterstützung von EDISON Software verfasst, die sich um die Gesundheit der Programmierer und deren Frühstück kümmert und auch kundenspezifische Software entwickelt .

Entwickler halten Abstraktionen für selbstverständlich


Als Entwickler arbeiten wir mit Abstraktionen. Wir abstrahieren Code, der sonst dupliziert werden müsste. Wenn wir uns daher auf wichtigere Punkte konzentrieren, akzeptieren wir die Abstraktionen, mit denen wir arbeiten, als selbstverständlich und gehen einfach davon aus, dass sie so funktionieren, wie sie sollten.

Normalerweise ist es so, aber wenn die Dinge kompliziert werden, sollten Sie wissen, wie diese Abstraktionen funktionieren.
Der Senior Development Candidate hielt die Abstraktion von Promise für selbstverständlich. Er hätte wahrscheinlich gewusst, wie man mit ihm arbeitet, wenn er es irgendwo in einem Code getroffen hätte, aber er verstand das Konzept nicht und konnte es daher beim Interview nicht reproduzieren.
Er konnte sich nur an den Code erinnern. Es ist wirklich nicht so schwierig:

return new Promise((resolve, reject) => { functionWithCallback((err, result) => { return err ? reject(err) : resolve(result); }); }); 

Ich habe das gemacht Das machen wir wahrscheinlich alle. Sie erinnern sich nur an einen Code, damit Sie damit arbeiten können. Sie verstehen mehr oder weniger, wie das funktioniert.

Aber wenn er das Konzept wirklich verstand, würde er sich nicht daran erinnern müssen. Er würde das einfach wissen und es ohne Probleme reproduzieren.

Kennen Sie Ihre Quelle


Bereits 2012, bevor die Front-End-Frameworks dominierten und jQuery die Welt regierte, las ich Secrets of the JavaScript Ninja von John Rezig, dem Erfinder von jQuery.

In diesem Buch erfahren Sie, wie Sie Ihre eigene jQuery von Grund auf neu erstellen, und erhalten ein einzigartiges Verständnis der Denkprozesse, die hinter dem Erstellen dieser Bibliothek stehen. Obwohl jQuery in den letzten Jahren in den Hintergrund getreten ist, empfehle ich dringend, dieses Buch zu lesen.

Was mich in dem Buch beeindruckt hat, war das ständige Gefühl, dass ich selbst daran denken konnte. Die im Buch beschriebenen Schritte waren so logisch und einfach, dass ich wirklich das Gefühl hatte, jQuery erstellen zu können, wenn ich mir ein solches Ziel setze.

Tatsächlich würde ich das niemals tun können - ich würde es zu kompliziert finden. Ich würde denken, dass meine Entscheidungen zu einfach und naiv sind, und ich würde einfach aufgeben. Ich würde jQuery einfach als selbstverständlich betrachten und darauf vertrauen. Danach würde ich wahrscheinlich nicht verstehen, wie es funktioniert. Ich würde es nur als Black Box verwenden.

Das Lesen dieses Buches hat mich verändert. Ich begann den Quellcode zu verstehen und stellte fest, dass viele Implementierungen ziemlich einfach und sogar offensichtlich waren.

Es ist eine ganz andere Sache, diese Lösungen jetzt selbst zu entwickeln. Das Lesen des Quellcodes und die Selbstimplementierung vorhandener Lösungen helfen Ihnen jedoch dabei, Ihre eigenen zu entwickeln.

Die Inspiration, die Sie erhalten, und die Muster, die Sie entdecken, werden Sie als Entwickler verändern. Sie werden feststellen, dass diese wunderbare Bibliothek, die Sie verwenden und als Magie betrachten, nicht wirklich Magie ist, sondern nur eine einfache und intelligente Lösung.

Sie können Zeit damit verbringen, den Code Schritt für Schritt zu analysieren, und Sie werden gezwungen, dieselben kleinen, schrittweisen Schritte auszuführen, die die Autoren unternommen haben, um ihn zu erstellen. Dies gibt Ihnen ein tieferes Verständnis des Programmierprozesses und mehr Vertrauen in die Umsetzung Ihrer eigenen Entscheidungen.

Als ich anfing, Promise in JavaScript zu verwenden, fand ich es magisch. Dann fand ich heraus, dass sie auf Rückrufen basieren, und meine Vision von Programmierung hat sich für immer geändert.
Diese Vorlage, die Rückrufe beseitigen sollte, wurde mit ... Rückrufen implementiert?

Es hat mich verändert. Mir wurde klar, dass dies keine unglaublich komplexen Codefragmente waren, sodass ich sie herausfinden konnte. Dies sind Modelle, die ich leicht verstehen könnte, wenn ich neugierig wäre und den Wunsch hätte, in sie einzutauchen.

So lernst du wirklich programmieren. So werden Sie ein besserer Entwickler.

Rad neu erfinden


Also lasst uns die Räder neu erfinden. Schreiben Sie Ihre eigene Datenbindung , Ihr eigenes Versprechen oder sogar Ihre State-Management-Lösung .

Es ist egal, dass niemand dies verwenden wird. Sie werden etwas Neues für sich lernen. Und wenn Sie es in einem Ihrer eigenen Projekte verwenden können, wird es großartig sein. Sie werden diesen Code weiterentwickeln und noch mehr lernen.

Es geht nicht darum, Ihre Lösung in der Produktion einzusetzen, sondern zu lernen. Das Schreiben einer eigenen Implementierung einer vorhandenen Lösung ist eine hervorragende Möglichkeit, von den Besten zu lernen.


Lesen Sie auch den Blog
EDISON Unternehmen:


20 Bibliotheken für
spektakuläre iOS-Anwendung

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


All Articles