Das mit React verbrachte Jahr: Schlussfolgerungen und Empfehlungen

Normalerweise ist der Einstieg in eine neue Technologie nicht so einfach. Ein Anfänger befindet sich in einem endlosen Meer von Trainingshandbüchern und Artikeln. Darüber hinaus steht hinter jedem dieser Materialien die persönliche Meinung des Autors, und jeder Autor behauptet, dass die Wahrheit durch seinen Mund spricht.

Aus der Sicht des gesunden Menschenverstandes ist klar, dass nicht alle im Internet veröffentlichten Artikel echte Vorteile bringen können. Wer also etwas Neues lernen möchte, muss Veröffentlichungen bewerten, um die Antwort auf die Frage zu finden, ob er für sie ausgeben soll deine Zeit.



Bevor der Programmierer mit dem Kopf zum Studium abreist, muss er die Grundlagen der für ihn interessanten Technologie verstehen. Dann müssen Sie Ihre Vision von dieser Technologie entwickeln und lernen, in Bezug darauf zu denken. Wenn jemand anfängt, React zu lernen, muss er zunächst lernen, "in React zu denken". Und schon nachdem er diese Qualität in sich selbst entwickelt hat, wird er in der Lage sein, die Meinungen anderer Menschen sinnvoll kennenzulernen und sich bei Auswahl der wertvollsten in eine gewählte Richtung zu entwickeln.

Der Autor des Artikels, dessen Übersetzung wir heute veröffentlichen, möchte mit allen teilen, die während der Entwicklung seiner eigenen Vision dieser Technologie, während ihres Studiums und der Anhäufung von Erfahrungen auf diesem Gebiet etwas über React lernen möchten. Hier wird er darüber sprechen, was er in einem Jahr verstanden hat, als React-Programmierer arbeiten, in seiner Freizeit seine eigenen Projekte durchführen und seine Ideen in einer JavaScript-Konferenz teilen.

React ist eine sich ständig weiterentwickelnde Technologie.


Da sich React ständig weiterentwickelt, sollte jeder, der diese Technologie beherrschen möchte, bereit sein, sein Wissen und seine Fähigkeiten ständig auf dem neuesten Stand zu halten. Wenn Sie sich an die Ankündigung von React 16.3.0 erinnern, wissen Sie um die Begeisterung in der Community der Programmierer, die neue Funktionen hervorgebracht hat. Dazu gehören der offizielle API-Kontext, die APIs createRef und forwardRef, der strikte Modus und Änderungen im Komponentenlebenszyklus. Das Kernteam der React-Entwickler und alle, die einen machbaren Beitrag zur Entwicklung des Projekts geleistet haben, haben hervorragende Arbeit geleistet und versucht, unser bevorzugtes Framework zu verbessern. Diese Arbeit hört nicht auf. So wurde beispielsweise in Version 16.4.0 die Unterstützung von Zeigerereignissen eingeführt.

Die Reaktion entwickelt sich weiter, Innovation ist nur eine Frage der Zeit. Zu diesen Innovationen gehören asynchrones Rendern, Caching, viele Änderungen, die in React 17.0.0 erwartet werden, und etwas, das niemand kennt.

Vor diesem Hintergrund ist es klar, dass Sie sich der Innovationen bewusst sein müssen, wenn Sie an der Spitze der React-Entwicklung bleiben möchten. Dies bedeutet, dass Sie wissen müssen, wie die neuen Framework-Mechanismen funktionieren und warum sie erstellt wurden. Sie müssen verstehen, welche Probleme sie lösen und wie sie die Entwicklung vereinfachen.

Haben Sie keine Angst, Ihren Code in kleine Fragmente zu zerlegen


Die Reaktion basiert auf Komponenten. Dies legt nahe, dass dieses Konzept verwendet werden sollte und große Codeteile mutig in kleinere Teile zerlegt werden sollten. Manchmal kann eine einfache Komponente nur aus 4 bis 5 Codezeilen bestehen, und in einigen Fällen ist dies völlig normal.

Sie sollten sich der Codefragmentierung nähern, damit ein neuer Entwickler, wenn er sich mit Ihrem Projekt verbindet, nicht viele Tage damit verbringen muss, zu verstehen, wie dieses Projekt funktioniert und wie es funktioniert.

//     ,   ? return (  [   <ChangeButton    onClick={this.changeUserApprovalStatus}    text="Let's switch it!"   />,   <UserInformation status={status}/>  ] ); 

Sie müssen keine großen Komponenten erstellen, die die gesamte für ihre Arbeit erforderliche Logik enthalten. Eine Komponente kann beispielsweise nur eine visuelle Darstellung einer Entität beschreiben. Wenn die Verwendung kleiner Komponenten die Lesbarkeit des Codes verbessert, das Testen erleichtert und die Unterstützung des Projekts in Zukunft erleichtert, ist die systematische Anwendung dieses Ansatzes eine wunderbare Lösung, die sich positiv auf die Arbeit jedes Teammitglieds auswirkt.

 import ErrorMessage from './ErrorMessage'; const NotFound = () => ( <ErrorMessage   title="Oops! Page not found."   message="The page you are looking for does not exist!"   className="test_404-page" /> ); 

Das obige Beispiel wendet statische Eigenschaften an. Vor uns liegt eine saubere Komponente, die für die Anzeige der Fehlermeldung Not Found und für nichts anderes verantwortlich ist.

Wenn Sie nicht möchten, dass CSS-Klassen und Klassennamen überall in Ihrem Code angezeigt werden, würde ich die Verwendung stilisierter Komponenten empfehlen. Dies kann die Lesbarkeit des Codes erheblich verbessern.

 const Number = styled.h1` font-size: 36px; line-height: 40px; margin-right: 5px; padding: 0px; `; //.. <Container> <Number>{skipRatePre}</Number> <InfoName>Skip Rate</InfoName> </Container> 

Wenn Sie Angst haben, zu viele kleine Komponenten zu erstellen, weil Sie den Eindruck haben, dass deren Dateien Ordner mit Projektmaterialien verstopfen, sollten Sie überlegen, wie Sie Ihren Code anders strukturieren können. Ich habe die fraktale Struktur des Projekts verwendet, um die Materialien zu organisieren, und ich muss sagen, dass dies einfach wunderbar ist.

Ruhen Sie sich nicht auf Ihren Lorbeeren aus, nachdem Sie die Grundlagen verstanden haben.


Manchmal scheint es Ihnen, dass Sie nicht gut genug verstehen, um mit dem Studium und der Verwendung fortgeschrittener Dinge fortzufahren. Normalerweise sollten Sie sich darüber keine besonderen Sorgen machen - fangen Sie einfach an, das zu meistern, was Ihnen zu kompliziert erscheint, und beweisen Sie sich selbst, dass Sie es herausfinden und verwenden können.

Wenn Sie sich beispielsweise am Anfang des React-Entwicklerpfads befinden, finden Sie möglicherweise viele scheinbar komplizierte Entwurfsmuster, die Sie untersuchen sollten. Darunter befinden sich zusammengesetzte Komponenten, Komponenten hoher Ordnung, Render-Requisiten, intelligente Komponenten, dumme Komponenten und vieles mehr (es wird beispielsweise empfohlen, die Technologie zur Profilerstellung der Leistung von Komponenten zu beherrschen).

Wenn Sie all diese Technologien beherrschen, werden Sie verstehen, warum und warum sie verwendet werden. Als Ergebnis ihrer Studie werden Sie feststellen, dass es für Sie jetzt bequemer ist, Projekte zu React zu entwickeln.

 //     ? //   ,      ,    . render() { const children = React.Children.map(this.props.children,  (child, index) => {     return React.cloneElement(child, {       onSelect: () => this.props.onTabSelect(index)   });  }); return children; } 

Haben Sie außerdem keine Angst davor, im Laufe der Arbeit etwas Neues zu verwenden, natürlich in angemessenen Grenzen. Beschränken Sie gleichzeitig die Verwendung neuer Ansätze nicht nur auf Experimente in Projekten, die Sie in Ihrer Freizeit durchführen.

Wenn diejenigen, mit denen Sie zusammenarbeiten, Fragen zu Ihren Innovationen haben, beachten Sie, dass dies völlig normal ist. Seien Sie bereit, Ihre Entscheidungen mit starken Argumenten zu ihren Gunsten zu verteidigen.

Ihr Ziel sollte es sein, ein bestehendes Problem zu lösen, die weitere Entwicklung zu vereinfachen oder einfach die Lesbarkeit von Code zu verbessern, der früher unordentlich aussah. Selbst wenn Ihre Vorschläge aufgrund von Diskussionen mit dem Team abgelehnt werden, werden Sie zumindest etwas Neues lernen, und dies ist viel besser, als nichts Neues anzubieten und sich nicht als Entwickler zu entwickeln.

Versuchen Sie nicht, Projekte zu komplizieren


Vielleicht scheint Ihnen diese Empfehlung im Gegensatz zu der vorherigen zu stehen, die Experimenten mit neuen Technologien gewidmet ist, aber tatsächlich ist dies nicht der Fall. Überall im Leben, beim Programmieren brauchen wir Balance. Vereinfachen Sie etwas nicht zu stark, um anderen ihren eigenen Fortschritt zu demonstrieren. Es ist am besten, sich dem zu nähern, was in Bezug auf die Praktikabilität geschieht. Schreiben Sie Code, der leicht zu verstehen ist und die ihm zugewiesenen Aufgaben löst.

Wenn Redux beispielsweise in Ihrem Projekt nicht benötigt wird, Sie diese Bibliothek jedoch nur verwenden möchten, weil sie von allen verwendet wird und Sie nicht wirklich über die Ziele der Verwendung von Redux nachdenken, tun Sie dies nicht. Besser - beschäftigen Sie sich mit Redux, bauen Sie ein Verständnis für diese Technologie auf, und wenn Sie feststellen, dass das, was in Ihrem Projekt geschieht, dem widerspricht, was Sie verstehen, sollten Sie bereit sein, Ihren Standpunkt zu verteidigen.

Manchmal scheint es Ihnen, dass Sie mit der neuesten Technologie und der Erstellung von komplexem Code der ganzen Welt so etwas sagen: „Ich bin kein Anfängerentwickler, ich werde ein Profi. Das ist der Code, den ich schreibe! “

Ehrlich gesagt war ich selbst am Anfang einer Entwicklerkarriere. Mit der Zeit stellt sich jedoch heraus, dass Code, der ohne den Wunsch geschrieben wurde, jemandem etwas zu beweisen, Code, in dem Technologien nicht nur verwendet werden, weil sie darin verwendet werden können, ohne ernsthafte Gründe, auf diese Technologien zurückzugreifen, es viel einfacher macht das Leben eines jeden Entwicklers. Folgendes bedeutet es:

  1. Nicht nur einer, der das Design dieses Projekts versteht, sondern auch andere Teammitglieder können an einem Projekt arbeiten, das nicht zu kompliziert ist. Infolgedessen können die Aufgaben der Entwicklung, Fehlerbehebung, des Testens und vieler anderer Aufgaben nicht nur vom Ersteller dieses Projekts gelöst werden.
  2. Andere Programmierer können verstehen, was Sie tun, ohne zu viel Zeit damit zu verbringen, Ihre Erklärungen anzuhören. Sie können sie in wenigen Minuten auf den neuesten Stand bringen.
  3. Wenn der Hauptentwickler beispielsweise zwei Wochen Urlaub macht, können andere seine Aufgaben übernehmen, und sie müssen nicht einen ganzen Arbeitstag damit verbringen, was für ein paar Stunden erledigt wird.

Menschen sind gut zu denen, die ihr Leben nicht komplizieren. Wenn Sie also vom Team respektiert werden und mit Ihren Vorgesetzten in gutem Zustand sein möchten, versuchen Sie, Code für das Team zu schreiben, nicht für sich selbst. Auf diese Weise werden Sie zu einer Person, mit der es einfach und angenehm ist, zu arbeiten.

Refactoring ist in Ordnung


Während der Arbeit an einem bestimmten Projekt können Sie Ihre Sichtweise in einigen Dingen dutzende Male ändern, und der Projektmanager kann seine Ansichten noch häufiger überarbeiten. Jemand kritisiert, was Sie getan haben, und Sie beginnen, wenn die Kritik berechtigt ist, etwas zu ändern; Sie kritisieren die Arbeit anderer, und sie hören Ihnen zu und wiederholen, was sie geschrieben haben. Daher muss der Code ständig neu geschrieben werden.

Nimm das nicht als etwas Negatives. Da Programmierer ständig etwas Neues lernen müssen, ist Refactoring völlig normal. Entwicklung ist normalerweise der Weg von Versuch und Irrtum. Und je öfter jemand auf diesem Weg stolpert, desto leichter fällt es ihm, mit Schwierigkeiten umzugehen und weiterzumachen.

Um jedoch sicherzustellen, dass Refactoring nicht zu einem Albtraum wird, wird empfohlen, den Tests ausreichend Aufmerksamkeit zu widmen. Testen Sie alles, was Sie erreichen können. Vielleicht ist jeder Programmierer entweder bereits auf eine Situation gestoßen oder wird immer noch auf eine Situation stoßen, in der gute Tests ihm helfen, eine Menge Zeit zu sparen. Und wenn Sie, wie viele andere, Tests für Zeitverschwendung halten, versuchen Sie, sie anders als zuvor durchzuführen. Hier sind nämlich die Vorteile, die der Entwickler und sein Team von guten Tests erhalten:

  1. Sie müssen nicht lange mit Kollegen zusammensitzen und ihnen erklären, wie alles funktioniert.
  2. Sie müssen nicht erklären, warum etwas schief gelaufen ist.
  3. Sie müssen die Fehler anderer nicht korrigieren.
  4. Sie müssen keine Fehler beheben, die einige Wochen nach der Veröffentlichung aufgetreten sind.
  5. Dank der genauen Organisation der Projektprüfungen haben Sie Zeit, verschiedene Probleme zu lösen, die nicht mit Debugging-Fehlern zusammenhängen, die aus dem Nichts kommen.

In der Tat ist hier nur eine kleine Liste der Vorteile, die ein Programmierer und seine Kollegen von einem gut organisierten Projekttestsystem erhalten.

Die Liebe zum Beruf ist die Basis für den Erfolg


Vor einem Jahr habe ich mich entschlossen, ein fortgeschrittener React-Entwickler zu werden. Ich wollte unter anderem bei verschiedenen Veranstaltungen sprechen, die Freude am Lernen neuer Dinge mit anderen Menschen teilen.

Ich kann die ganze Nacht am Computer sitzen, das tun, was ich liebe, und jede Minute des Geschehens genießen. Der Punkt hier ist, dass, wenn eine Person wirklich nach etwas strebt, auf die eine oder andere Weise alles um sie herum hilft, zum Ziel zu gelangen. Zum Beispiel habe ich kürzlich zum ersten Mal auf einer kleinen Konferenz vor zweihundert Zuschauern gesprochen.

In dieser Zeit bin ich als React-Entwickler aufgewachsen und habe viel gelernt. Dies gilt insbesondere für verschiedene Entwurfsmuster, Projektentwicklungsprinzipien und interne Rahmenmechanismen. Jetzt kann ich über Themen kommunizieren, die mir bisher unzugänglich erschienen, und darüber hinaus anderen beibringen, was ich vorher nicht gewagt habe. Gleichzeitig empfinde ich heute die gleiche Freude und das gleiche Vergnügen wie vor einem Jahr.

Daher würde ich jedem empfehlen, sich zu fragen: "Gefällt dir, was du tust?" Wenn die Antwort auf diese Frage negativ ist, finden Sie heraus, was Ihnen wirklich gefällt, worüber Sie stundenlang sprechen können, was Sie Tag und Nacht tun können und sich vollkommen glücklich fühlen. Um in jedem Bereich zu wachsen und sich zu entwickeln, muss jeder finden, was ihm gefällt. Der Mensch kann nicht gezwungen werden, in irgendetwas Erfolg zu haben. Ein Mensch kann nur erfolgreich sein, wenn er bewusst und mit Vergnügen tut, was er will.

Wenn ich vor einem Jahr zurückkehren und mich dort treffen könnte, würde ich mir das sagen, um mich auf den großen und interessanten Weg vorzubereiten, der mich erwartet.

Liebe Leser! Welche Tipps, inspiriert von der Erfahrung, könnten Sie unerfahrenen Webentwicklern geben?

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


All Articles