8 ultimative Full-Stack-Interviewfragen und -antworten

8 ultimative Full-Stack-Interviewfragen und -antwortenEin Full-Stack-Webentwickler ist jemand, der sowohl am Front-End- als auch am Back-End-Teil einer Anwendung arbeiten kann. Front-End bezieht sich im Allgemeinen auf den Teil einer Anwendung, den der Benutzer sieht oder mit dem er interagiert, und das Back-End ist der Teil der Anwendung, der die Logik, Datenbankinteraktionen, Benutzerauthentifizierung, Serverkonfiguration usw. handhabt.

Q1: Was ist Inversion of Control?

Thema: Designmuster
Schwierigkeit: ⭐⭐

Umkehrung der Kontrolle ist ein weit gefasster Begriff, aber für einen Softwareentwickler wird er am häufigsten als ein Muster beschrieben, das zum Entkoppeln von Komponenten und Schichten im System verwendet wird.

Angenommen, Ihre Anwendung verfügt über eine Texteditorkomponente und Sie möchten eine Rechtschreibprüfung bereitstellen. Ihr Standardcode würde in etwa so aussehen:

public class TextEditor {
    private SpellChecker checker;
    public TextEditor() {
        this.checker = new SpellChecker();
    }
}

Was wir hier getan haben, erzeugt eine Abhängigkeit zwischen dem TextEditor und der Rechtschreibprüfung. In einem IoC-Szenario würden wir stattdessen so etwas tun:

public class TextEditor {
    private IocSpellChecker checker;
    public TextEditor(IocSpellChecker checker) {
        this.checker = checker;
    }
}

Du hast umgekehrte Steuerung indem die Verantwortung für die Instanziierung der Rechtschreibprüfung aus der TextEditor-Klasse an den Aufrufer übergeben wird.

SpellChecker sc = new SpellChecker; // dependency
TextEditor textEditor = new TextEditor(sc);

🔗 Quelle: stackoverflow.com

F2: Was sind die Erfolgsfaktoren für Continuous Integration?

Thema: DevOps
Schwierigkeit: ⭐⭐

  • Pflegen Sie ein Code-Repository
  • Automatisieren Sie den Build
  • Machen Sie den Build-Selbsttest
  • Jeder verpflichtet sich jeden Tag zur Grundlinie
  • Jeder Commit (zur Baseline) sollte erstellt werden
  • Halten Sie den Build schnell
  • Testen Sie in einem Klon der Produktionsumgebung
  • Machen Sie es sich einfach, die neuesten Ergebnisse zu erhalten
  • Jeder kann die Ergebnisse des neuesten Builds sehen
  • Bereitstellung automatisieren

🔗 Quelle: edureka.co

F3: Wenn Node.js Single-Threading ist, wie geht es dann mit Parallelität um?

Thema: Node.js
Schwierigkeit: ⭐⭐

Node bietet Programmierern einen einzigen Thread, sodass Code einfach und ohne Engpässe geschrieben werden kann. Der Knoten verwendet intern mehrere POSIX-Threads für verschiedene E/A-Operationen wie Datei, DNS, Netzwerkaufrufe usw.

Wenn der Knoten eine E/A-Anforderung erhält, erstellt oder verwendet er einen Thread, um diese E/A-Operation auszuführen, und sobald die Operation abgeschlossen ist, schiebt er das Ergebnis in die Ereigniswarteschlange. Bei jedem solchen Ereignis wird die Ereignisschleife ausgeführt und überprüft die Warteschlange. Wenn der Ausführungsstapel des Knotens leer ist, fügt er das Warteschlangenergebnis dem Ausführungsstapel hinzu.

So verwaltet Node Parallelität.

🔗 Quelle: codeforgeek.com

F4: Erläutern Sie einen Anwendungsfall für Docker

Thema: DevOps
Schwierigkeit: ⭐⭐⭐

  • Docker ist eine Methode mit geringem Overhead, um virtuelle Maschinen auf Ihrer lokalen Box oder in der Cloud auszuführen. Obwohl es sich nicht um streng unterschiedliche Maschinen handelt und sie auch kein Betriebssystem booten müssen, bieten sie Ihnen viele dieser Vorteile.
  • Docker kann ältere Anwendungen kapseln, sodass Sie sie auf Servern bereitstellen können, die mit älteren Paketen und Softwareversionen möglicherweise nicht einfach einzurichten sind.
  • Docker kann zum Erstellen von Testboxen während Ihres Bereitstellungsprozesses verwendet werden, um kontinuierliche Integrationstests zu erleichtern.
  • Docker kann verwendet werden, um Boxen in der Cloud bereitzustellen, und mit Swarm können Sie auch Cluster orchestrieren.

🔗 Quelle: dev.to

F5: Erklären Sie den Hauptunterschied zwischen REST und GraphQL

Thema: GraphQL
Schwierigkeit: ⭐⭐⭐

Der wichtigste und wichtigste Unterschied zwischen REST und GraphQL ist der GraphQL befasst sich nicht mit dedizierten Ressourcen, sondern alles wird als Graph betrachtet und ist daher verbunden und kann für die genauen Anforderungen der App abgefragt werden.

🔗 Quelle: medium.com/codingthesmartway-com-blog

F6: Was ist eine Ereignisschleife?

Thema: Node.js
Schwierigkeit: ⭐⭐⭐

Node.js ist eine Single-Thread-Anwendung, unterstützt jedoch Parallelität über das Konzept von Ereignissen und Callbacks. Da jede API von Node js asynchron ist und ein einzelner Thread ist, verwendet sie asynchrone Funktionsaufrufe, um die Parallelität aufrechtzuerhalten. Knoten verwendet Beobachtermuster. Der Node-Thread hält eine Ereignisschleife und löst jedes Mal, wenn eine Aufgabe abgeschlossen ist, das entsprechende Ereignis aus, das der Ereignis-Listener-Funktion signalisiert, dass sie ausgeführt wird.

🔗 Quelle: tutorialspoint.com

F7: Können Sie im Klartext erklären, was „git reset“ bewirkt?

Thema: Git
Schwierigkeit: ⭐⭐⭐⭐

Im Algemeinen, git reset Die Funktion besteht darin, den aktuellen Zweig zu nehmen und ihn so zurückzusetzen, dass er woanders hinzeigt, und möglicherweise den Index und den Arbeitsbaum mitzubringen.

- A - B - C (HEAD, master)
# after git reset B (--mixed by default)
- A - B (HEAD, master) # - C is still here (working tree didn't change state), but there's no branch pointing to it anymore

Denken Sie daran, dass Sie in Git Folgendes haben:

  • der HEAD-Zeiger, der Ihnen mitteilt, an welchem ​​Commit Sie arbeiten
  • der Arbeitsbaum, der den Status der Dateien auf Ihrem System darstellt
  • der Staging-Bereich (auch als Index bezeichnet), der Änderungen „inszeniert“, damit sie später zusammen festgeschrieben werden können

Überlege also:

  • git reset --soft bewegt den KOPF, berührt aber nicht den Bereitstellungsbereich oder den Arbeitsbaum.
  • git reset --mixed verschiebt HEAD und aktualisiert den Staging-Bereich, aber nicht den Arbeitsbaum.
  • git reset --merge verschiebt HEAD, setzt den Staging-Bereich zurück und versucht, alle Änderungen in Ihrem Arbeitsbaum in den neuen Arbeitsbaum zu verschieben.
  • git reset --hard verschiebt KOPF und passt Ihren Staging-Bereich und Arbeitsbaum an den neuen KOPF an und wirft alles weg.

Anwendungsfälle:

  • Verwenden --soft wenn Sie zu einem anderen Commit wechseln und die Dinge reparieren möchten, ohne „Ihren Platz zu verlieren“. Es ist ziemlich selten, dass Sie dies benötigen.
  • Verwenden --mixed (was die Standardeinstellung ist), wenn Sie sehen möchten, wie die Dinge bei einem anderen Commit aussehen, aber keine Änderungen verlieren möchten, die Sie bereits haben.
  • Verwenden --merge wenn Sie an eine neue Stelle ziehen möchten, aber die Änderungen, die Sie bereits haben, in den Arbeitsbaum integrieren.
  • Verwenden --hard alles auszulöschen und beim neuen Commit eine neue Tafel zu starten.

🔗 Quelle: stackoverflow.com

F8: Gibt es Nachteile von GraphQL?

Thema: GraphQL
Schwierigkeit: ⭐⭐⭐⭐

Nachteile:

  • Du muss lernen wie man GraphQL einrichtet. Das Ökosystem entwickelt sich immer noch schnell, also müssen Sie Schritt halten.
  • Sie müssen die Abfragen vom Client senden, Sie können einfach Zeichenfolgen senden, aber wenn Sie mehr Komfort und Caching wünschen, verwenden Sie eine Clientbibliothek -> Zusatzcode in Ihrem Kunden
  • Sie müssen das Schema vorher definieren => Extra Arbeit bevor Sie Ergebnisse erhalten
  • Sie müssen einen graphql-Endpunkt auf Ihrem Server haben => neue Bibliotheken das du noch nicht weißt
  • Graphql-Abfragen sind mehr Byte als einfach zu einem REST-Endpunkt zu gehen
  • Der Server muss tun mehr Verarbeitung um die Abfrage zu analysieren und die Parameter zu überprüfen

🔗 Quelle: stackoverflow.com

Danke 🙌 fürs Lesen und viel Glück bei deinem Vorstellungsgespräch!
Weitere Fragen und Antworten zu FullStack-Interviews finden Sie unter 👉 www.fullstack.cafe

Similar Posts

Leave a Reply

Your email address will not be published.