Vor kurzem gab es im Internet viele Diskussionen über das Gerücht, dass Facebook sogenannte „Full Stack Engineers“ rekrutiert, was von den Kandidaten Kenntnisse über jeden Aspekt der Entwicklung verlangt Stapel. Was genau ist ein „Full-Stack-Ingenieur“? Im wahrsten Sinne des Wortes muss ein Full-Stack-Ingenieur mit allen Ebenen des Entwicklungs-Stacks vertraut sein oder zumindest mit den meisten davon vertraut sein und eine natürliche Begeisterung und Interesse an allen Softwaretechnologien haben.
Für solche Entwickler sind sie sehr gut darin, die Technologie, die sie beherrschen, zu nutzen, um ihr Leben einfacher zu machen, weshalb Facebook sie einstellen möchte. Sie nutzen ihren Verstand und ihre Leidenschaft, um gute Produkte zu programmieren in kürzester Zeit natürlich präsentiert. Welche Eigenschaften hat ein qualifizierter „Full-Stack-Ingenieur“?
Entwicklungs-Stack-Analyse
1. Server-, Netzwerk- und Hosting-Umgebung
Sie müssen verstehen, welche Module möglicherweise ausfallen und warum kann es nicht als selbstverständlich betrachten. Die Menschen glauben, dass alle Probleme durch mehr Ressourcen gelöst werden können.
Kenntnisse im Umgang mit Betriebssystemen, Cloud-Speicher und Netzwerkressourcen sowie das Verständnis von Datenredundanz und -verfügbarkeit sind erforderlich.
Verstehen Sie, wie der Umfang Ihrer Anwendung Ihre Hardware einschränkt.
Es gibt auch Multithreading- und Race-Bedingungen, die auf Entwicklungsmaschinen oft nicht anzutreffen sind, in realen Bereitstellungsumgebungen jedoch allgegenwärtig sind.
Full-Stack-Ingenieure müssen auch in der Lage sein, gut mit Devops zusammenzuarbeiten. Die von ihnen entworfenen Systeme sollten nützliche Fehlermeldungen und Protokollierungsfunktionen bereitstellen, damit DevOps diese Informationen zeitnah erhalten und wertvolle Maßnahmen ergreifen kann.
2. Datenmodellierung
Wenn das Datenmodell Mängel aufweist, muss häufig hässlicher Code auf der Geschäftslogik und auf höheren Ebenen verwendet werden, um diese Daten auszugleichen Das Modell kann die toten Winkel nicht abdecken.
Wissen, wie man ein vernünftiges normalisiertes Beziehungsmodell mit vollständigen Fremdschlüsseln, Indizes, Ansichten, Abfragetabellen usw. erstellt.
Sie müssen außerdem mit der Speicherung nicht-relationaler Daten vertraut sein und wissen, inwiefern nicht-relationale Datenbanken relationale Datenbanken übertreffen.
3. Geschäftslogik
Dies ist der Schlüssel zum Wert der Systemanwendung.
Beherrschen Sie die SOLID-Designfunktionen (einzelne Verantwortung, offen und geschlossen, Liskov-Substitution, Schnittstellentrennung, Abhängigkeitsinjektion).
Vertraut mit einigen häufig verwendeten Frameworks.
API/Action/MVC
Hier geht es darum, wie die Außenwelt mit Geschäftslogik und Datenmodellen interagiert.
Es werden viele Frameworks verwendet.
Fähigkeit, klare, konsistente und benutzerfreundliche Schnittstellen zu schreiben.
4. Benutzeroberfläche
Full-Stack-Ingenieure müssen: a) wissen, wie man ein lesbares Layout erstellt; b) sich der Rolle von Künstlern und Grafikdesignern bewusst sein . Kurz gesagt, es ist besonders wichtig, eine gute visuelle Designlösung umzusetzen.
Beherrscht HTML5/CSS.
Den aktuellen Trends nach zu urteilen, wird JavaScript der Star von morgen sein. In letzter Zeit hat dieser Bereich fruchtbare Ergebnisse erzielt (NodeJs, Backbone, Knockout, Angular (meine eigene Ergänzung, nicht im Originaltext)). Daher ist die Beherrschung von JavaScript unerlässlich.
5. Benutzererfahrung
Full-Stack-Ingenieure sollten sich darüber im Klaren sein, dass Benutzer einfach wollen, dass alles gut funktioniert.
Ein gutes System führt nicht dazu, dass Benutzer unter Karpaltunnelsyndrom oder Augenermüdung leiden. Full-Stack-Ingenieure können die Gesamtsituation betrachten und einen Prozess, der 8 Klicks + 3 Schritte erfordert, auf nur einen Klick vereinfachen.
Wissen, wie man Fehlermeldungen an Benutzer sendet. Wenn etwas schief geht, entschuldigen Sie sich aufrichtig. Manchmal können einige unbeabsichtigte Fehlermeldungen dazu führen, dass Benutzer sich unerklärlich fühlen.
Benutzer- und Marktbedürfnisse verstehen
Diese Ebene hängt mit der Systemarchitektur zusammen, ist aber keineswegs eine Rolle, die nicht berührt werden kann (möglicherweise liegt ein Fehler in der Übersetzung vor, Originaltext: aber das ist zu sehr eine Hand-off-Rolle).
Full-Stack-Ingenieure müssen verstehen, was Kunden bei der Nutzung der Software benötigen und was der gesamte Markt braucht.
Das obige ist der detaillierte Inhalt vonWas Sie über Java Full Stack lernen sollten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!