Wir haben die wertvollsten und wichtigsten Fragen zusammengetragen, die Sie einem React Native Senior in der ersten Interviewphase stellen sollten, sowie die Hard- und Soft Skills, auf die Sie am meisten achten sollten.
Wie wichtig es ist, einen React Native-Entwickler im Unternehmen zu haben
Ein React Native-Entwickler ist ein Profi, der ein JavaScript-Framework verwendet, um gut strukturierte, unglaublich funktionale, native Apps für ein fesselndes Benutzererlebnis zu erstellen und zu entwickeln.
In der heutigen Zeit, in der unzählige Apps für fast alles verwendet werden, ist die Investition in einen kompetenten Entwickler für die Apps Ihres Unternehmens von entscheidender Bedeutung. Alles ist digital und über eine App abrufbar, so dass Sie sicherstellen wollen, dass die Gesamtqualität so nah wie möglich an der Perfektion liegt.
Wunderschöne, dynamische Apps mit hervorragender Performance, die superschnell und kosteneffizient entwickelt werden - das ist ein hervorragender Grund, einen React Native-Entwickler einzustellen und das Maximum aus den Fähigkeiten eines Kandidaten herauszuholen.
Wir können dies sogar mit einem erfahrenen Senior React Native Entwickler aufwerten. Ältere, erfahrene Entwickler kennen nicht nur die Besonderheiten der Arbeit perfekt, sondern können auch die potenziellen Entwickler, die Sie einstellen könnten, gut einschätzen. Der Einstellungsprozess eines Entwicklers kann in vielerlei Hinsicht gestrafft werden, und der Rückgriff auf die Perspektive eines erfahrenen Entwicklers kann eine davon sein.
Wir hatten ein aufschlussreiches Gespräch mit Nikolay Tomitov, einem Senior Full-Stack-Entwickler mit umfassender Erfahrung in der mobilen Entwicklung. Er hob die wichtigsten Interviewfragen hervor, die er einem React Native-Entwickler stellen würde.
Schauen wir uns das mal an.
Die Interviewfragen, die ein React Native-Entwickler stellen würde
Nikolay hat uns ein gutes Verständnis dafür vermittelt, was es bedeutet, spezifische Fragen zu stellen, um die Fähigkeiten eines potenziellen neuen Entwicklers im Team zu testen. Aus seiner Sicht sind die folgenden Fragen wesentlich.
Antwort: React Native verwendet native Komponenten zum Rendern von Inhalten und führt JavaScript-Code in einem separaten Thread aus. Die Community ist sehr stabil und viral, und auch Facebook unterstützt sie. Es ermöglicht auch die Entwicklung von Android und iOS mit einer soliden, zufriedenstellenden Leistung.
Q2: Erklären Sie das Flexbox-Styling und seine Verwendung in React Native.
Antwort: Flexbox-Styling ist eine Layout-Technologie, die es ermöglicht, Elemente korrekt auszurichten und den Raum innerhalb eines Containers zu verteilen. Bei der Verwendung von Flexbox kann der gesamte Inhalt des Containers so ausgerichtet werden, dass er einen Raum ausfüllt, oder er kann den Raum zwischen den Elementen gut verteilen. Dies ist eine hervorragende Möglichkeit, mit responsiven Designsystemen zu arbeiten. Wenn wir dies in React Native verwenden, imitiert es die gleiche Flexbox, die wir in CSS verwenden, aber standardmäßig ist hier die Standard-"Flex-Richtung" eine Spalte.
Q3: Warum sollte jemand React Native der nativen Entwicklung vorziehen?
Antwort: React Native verfügt über eine riesige Entwickler-Community, die für jeden, der in der Entwicklung tätig ist und seine Arbeit voranbringen möchte, unglaublich hilfreich ist. Außerdem ermöglicht es die plattformübergreifende Entwicklung für iOS, Android und das Web, was die Arbeit praktischer und einfacher macht. Es unterstützt das Nachladen im laufenden Betrieb und macht die Entwicklungsarbeit einfach statt gefürchtet. Unterhalb von React Native wird React verwendet, so dass jedes Update und jeder Fix direkt auf der React-Plattform auch in React Native übernommen wird und alles gut synchronisiert ist.
Q4: Was sind "Hooks" in React Native?
Antwort: Die Hooks stellen eine neue Ergänzung in React dar. Mit Hooks können wir Zustände verwenden und Effekte, Kontexte oder andere React-Funktionen verwalten, ohne eine Klasse zu schreiben. Hooks sind eine beliebte und bevorzugte Methode zur Entwicklung von Komponenten, und sie sind mit Funktionen und nicht mit Klassen verbunden. Eine weitere empfehlenswerte Praxis ist die Entwicklung benutzerdefinierter Hooks für eine bessere Extraktion der Geschäftslogik.
Q5: Wie würden Sie den "Zustand" in einer Komponente behandeln?
Antwort:
State is used to control the internal data of components. It is used by the useState hook: const [value, setValue] = useState(0)
Dies gibt sowohl den Wert als auch die Setter-Funktion in einem Array zurück. Der kritische Punkt ist jedoch, dass die Funktion setValue asynchron arbeitet, d. h., wenn wir sie aufrufen, gibt es keine sofortige Änderung des Zustands. Und noch etwas: Wir können auch eine Funktion übergeben, die einen alten Wert akzeptiert.
Q6: Welche Bedeutung hat der Begriff "useEffect" und seine Verwendung?
Antwort: Der useEffect-Hook ermöglicht es uns, bei Bedarf Seiteneffekte in den Komponenten auszuführen. Es gibt einige nützliche Beispiele für Nebenwirkungen, wie z. B.:
⇨ Abrufen von Daten
⇨ Direkte Aktualisierung des DOM
⇨ Zeitschaltuhren
Es ist wichtig zu erwähnen, dass useEffect immer zwei Argumente annimmt:
⇨ Das erste Argument heißt Effekt und ist eine Funktion
⇨ Das zweite Argument ist optional und stellt eine Reihe von Abhängigkeiten dar.
Wenn sich einige Abhängigkeiten innerhalb des Abhängigkeitsarrays ändern, wird der Code erneut ausgeführt. Wenn wir das Array nicht bereitstellen, wird useEffect einmal beim ersten Rendering einer Komponente ausgeführt.
Wenn wir dieses Array irgendwie vermissen, wird es bei jedem erneuten Rendern aufgerufen (und das ist nicht so ideal). Wir können also auch eine Funktion zurückgeben, d.h. eine Abrissfunktion, die erst nach dem Aushängen der Komponente ausgeführt wird.
Q7: Erläutern Sie die wichtigsten und wesentlichsten Komponenten der Redux-Bibliothek.
Antwort: Redux stellt einen vorhersagbaren Zustandscontainer für JavaScript-Anwendungen dar. Es unterstützt Entwickler bei der Erstellung von Anwendungen, die bestimmte Anwendungsdaten speichern und verwalten. Der gesamte Datenfluss dieser Anwendung wird über einen einzigen "Point of Truth" abgewickelt.
Konzentrieren wir uns auf die drei wichtigsten Komponenten: die Actions, die Reducers und den Store.
-
Actions - Diese enthalten eine Nutzlast an Daten für den Speicher. Diese stellen die einzige Informationsquelle für den Laden dar. Mit anderen Worten: Wenn eine Änderung des Zustands erforderlich ist, wird die gewünschte Änderung durch die Aktionen ausgelöst.
-
Reducers - Nachdem die Aktion erfolgreich versendet wurde, aktualisieren die Reducers den Status entsprechend und genau, indem sie den aktuellen Status, den Aktionstyp und die Nutzlast der Aktion bereitstellen. Dann wird ein neuer Zustand vom Reduzierer zurückgegeben, oder der alte Zustand, wenn diese Aktion nicht für diesen Reduzierer gilt.
-
Store - Diese Komponente enthält den globalen Status und das Setup für Reducer, die üblicherweise den combineReducers-Ansatz verwenden.
Antwort: Das React Native-Debugger-Menü ist für ein einfaches Projekt-Debugging oder sogar für das Debuggen eines aktuellen Zustands in Echtzeit nützlich. Die folgenden fünf können wie beschrieben verwendet werden:
Reload zum Neuladen der App. Aktivieren Sie Live Reload , damit die App beim Speichern erfolgreich neu geladen wird. JS aus der Ferne debuggen , um die Verwendung des JavaScript-Debuggers zu aktivieren. Aktivieren Sie Hot Reloading , um automatisch auf Änderungen zu achten. Toggl Inspector zum Umschalten der Inspektionsschnittstelle, die es uns ermöglicht, UI-Elemente (jedes UI-Element), die wir auf dem Bildschirm sehen, und deren Eigenschaften zu untersuchen.
F9: Erläutern Sie das Bohren von Requisiten und ob es eine Möglichkeit gibt, dies zu vermeiden.
Antwort: Das Props Drilling stellt einen weit verbreiteten Fehler dar, der sich immer auf einen Prozess bezieht, bei dem wir Daten von einer übergeordneten Komponente an genau die untergeordnete Komponente weitergeben, die wiederum mehrere andere Komponenten durchläuft, die diese Art von Daten nicht für sich benötigen.
Wir können das Props Drilling einigermaßen vermeiden, indem wir uns auf die folgenden drei Dinge verlassen: React Context API, Redux und Komposition von Komponenten
Q10: Erklären Sie die React Native Bridge.
Antwort: Einfach ausgedrückt, stellt die React Native Bridge eine Schicht dar - diese Schicht ist eine Verbindung, die React Native mit der JavaScript-Umgebung verknüpft. Es handelt sich gewissermaßen um eine Kommunikationsschicht, die den nativen und den JavaScript-Code miteinander verbindet und auch für die Entwicklung benutzerdefinierter Integrationen verwendet werden kann.
Q11: Erläutern Sie React Context.
Antwort: Der React Context stellt eine hervorragende Möglichkeit dar, einen Zustand global zu verwalten. Wir können dies mit dem useState-Hook verwenden, um den Zustand zwischen diesen tief verschachtelten Komponenten viel schneller zu teilen als mit useState allein. Außerdem können wir den useContext-Haken verwenden, um all dies besser zu erreichen.
Q12: Wie würden Sie die "Ausnahmefälle" behandeln?
Antwort: Außergewöhnliche Fälle sind unglaublich schwierig zu lösen, aber es ist möglich, sie zu lösen. Meistens handelt es sich um Misserfolge, von denen man sich kaum erholen kann. Es kann sich aber auch um Anwendungen handeln, die schwer zu klassifizieren sind und keine spezifischen Anforderungen erfüllen.
Es gibt einige gute Möglichkeiten, mit diesen Ausnahmefällen umzugehen:
-
Allgemeine Fehlerkomponente - Wird angezeigt, wenn ein Fehler auftritt, z. B. in Form eines Fehler-Popups oder einer Benachrichtigung.
-
Try/Catch-Blöcke - Wir verwenden diese an bestimmten Stellen, um keine unbehandelten Versprechungsablehnungen oder unbearbeiteten Fehler auszulassen.
-
Ordnungsgemäße Kontrollen - Für die gesamte Internet-Konnektivität und Unterstützung des Offline-Modus zu. Auf diese Weise kann der Benutzer nicht auf einem bestimmten Bildschirm hängen bleiben.
-
Fehlergrenzen - Um häufige Fehler abzufangen und die richtigen Komponenten zu rendern.
-
HTTP-Interceptoren - Um bekannte HTTP-Fehler zu verpacken und sie in dem Code, der danach ausgeführt wird, richtig zu behandeln.
Denken Sie daran, die Hard- und Soft Skills anzukreuzen
Neben den oben genannten Fragen, die ein erfahrener React Native-Entwickler stellen würde, können Sie auch andere Fragen stellen. Aber noch wichtiger ist, dass Sie sich auf die wichtigsten Aspekte konzentrieren, um ein erfolgreiches Vorstellungsgespräch zu führen.
Bestätigen Sie die erforderlichen technischen Fähigkeiten
Je nach Standpunkt und Projektbedarf können Sie die Interviewfragen und die praktischen Tests nach Belieben abändern. Versuchen Sie jedoch, eine kleine Checkliste der technischen Fähigkeiten zu befolgen, die ein React Native-Entwickler haben muss. Diese Fähigkeiten sind ein Muss für jeden, der hervorragend mit diesem Rahmen arbeiten kann.
-
Mindestens vier Jahre Erfahrung
-
Große Erfahrung mit JavaScript und dessen Code (wie man Komponenten baut, wie man ihren Ablauf versteht und auch die App-Logik und Dienste strukturiert)
-
Erfahrung in der iOS- und Android-Entwicklung (Vertrautheit mit Swift, Objective-C)
-
Erfahrung und Kenntnisse in den Grundlagen von React (JSX, Komponentenlebenszyklus, Virtual DOM)
-
Gründliche Erfahrung mit Git
-
Gepflegtes GitHub- oder GitLab-Profil
-
Ausgezeichnete Kenntnisse in CSS, HTML und funktionaler Programmierung
-
Solide Erfahrung und Verständnis von Frontends
-
Und natürlich haben sie die technischen und kodierungstechnischen Tests , die Sie ihnen auferlegt haben, mit der höchstmöglichen Punktzahl bestanden
Bestätigen Sie die Soft Skills
Sie können diesen Aspekt während des Vorstellungsgesprächs und in den einzelnen Phasen feststellen, es ist also nichts Besonderes, danach zu fragen. Viele kleine Dinge, die ein Bewerber während eines Vorstellungsgesprächs tut, sind verräterische Anzeichen dafür, was für ein Mitarbeiter er sein wird, aber es gibt einige entscheidende Soft Skills, auf die Sie achten müssen.
Konzentrieren Sie sich darauf, ob ein Kandidat:
-
ist pünktlich zum virtuellen Treffen anwesend
-
hat gute Englischkenntnisse
-
kümmerte sich um ihre Kleiderordnung, ihre Ausrüstung und den Raum, in dem sie das Gespräch führten
-
Hört aufmerksam zu und unterbricht Sie nicht, wenn Sie sprechen
-
Zeigt Neugierde für die Aufgabe und stellt Fragen
-
die Antworten auf die Fragen/technischen Tests fristgerecht und innerhalb der von Ihnen vorgegebenen Frist einreicht
Ihre Antworten müssen Folgendes enthalten:
- Liebe zum Detail
- Problemlösendes Denken
- Analytische Fähigkeiten
Schlussfolgerung
Die Vorteile von einem oder mehreren React Native-Entwicklern im Unternehmen sind unbestreitbar. Diese Entwickler erstellen großartige und funktionale APIs, schöne Benutzeroberflächen und sauberen Code. Noch wichtiger ist, dass erfahrene React Native-Entwickler über ihre Rolle als Entwickler hinausgehen und bei Bewerbungsgesprächen und der Beurteilung von Fragen aus deren Sicht helfen können.
Und wer könnte besser wesentliche Fragen formulieren als ein Entwickler, der bereits mit dieser Fähigkeit arbeitet? Wir hoffen, dass die obigen Fragen Ihnen dabei helfen werden, gute potenzielle neue Mitarbeiter zu erkennen, und vergessen Sie nicht, auch die Hard- und Soft Skills zu bewerten.