Haben Sie Erfahrung mit Docker?
Frontend
Erzählen Sie mir von der benutzerdefinierten Select-Komponente.
RxJS-Aufgabe: Es gibt ein Observable, auf das im Template dreimal abonniert wird. Wie kann man eine einzige Subscription statt dreier machen, ohne den async-Pipe direkt zu verwenden? Worin unterscheiden sich Subject und BehaviorSubject von einem normalen Observable (heiße vs kalte Ströme)?
Wie löst man das Problem mit trackBy, wenn im Array doppelte Werte vorhanden sind und kein eindeutiger Bezeichner vorhanden ist?
CSS-Aufgabe: Drei div-Blöcke sind übereinander gestapelt, jeder mit einem margin-top von 10px und einem margin-bottom von 30px. Wie groß ist der Abstand zwischen den Blöcken? Was ändert sich, wenn man div durch span ersetzt?
JavaScript-Aufgabe: Schreiben Sie eine Funktion, die zwei Arrays entgegennimmt und ein Array mit den Elementen zurückgibt, die nur in einem der Arrays vorhanden sind (symmetrische Differenz). Bewerten Sie die Komplexität des Algorithmus.
Haben Sie Erfahrung im Schreiben eigener UI-Bibliotheken oder Komponentenbibliotheken?
Die Elternkomponente verwendet die Strategie OnPush, die Kindkomponente — Default. Was passiert mit der Kindkomponente bei Änderungen? In welcher Richtung erfolgt die Change Detection — von oben nach unten oder von unten nach oben?
Erzähle mir von den benutzerdefinierten Komponenten, die du auf Basis der NgZorro-Bibliothek (NzZor) geschrieben hast. Zum Beispiel einen Datepicker mit geschäftlichen Einschränkungen an Wochenenden.
Wie verhält sich das Rendern bei Änderung eines Listenelements? Wofür ist trackBy notwendig?
TypeScript-Aufgabe: Es gibt eine Klasse Animal mit den Methoden move und bark, und eine Funktion process, die ein Animal vom Typ Animal akzeptiert und seine Methode bark aufruft. Wird es einen TypeScript-Fehler geben? Wie kann man den Typ richtig einschränken? Wie schreibt man einen type guard?
Warum wird in Ihrem Projekt nicht auf eine neuere Version von Angular umgestellt?
Was ist der Unterschied zwischen den Change Detection-Strategien OnPush und Default? Warum OnPush verwenden?
JavaScript-Aufgabe: Bestimmen Sie den Typ (typeof) für verschiedene Ausdrücke — new Array(), Objekt, Map, Zahl, Infinity, Ergebnis der Verkettung von Strings und Zahlen.
Erzähle mir von deiner Erfahrung in den letzten 3-4 Jahren. Welche Aufgaben hast du gelöst?
RxJS-Aufgabe: Bestimmen Sie die Ausgabe bei Verwendung von combineLatest mit zwei Streams mit unterschiedlichen Verzögerungen. Was gibt forkJoin aus?
Du hast mehrere unabhängige Frontend-Anwendungen erwähnt — sind das Microfrontends? Hast du mit Module Federation gearbeitet?
Wurde die Tastaturunterstützung im benutzerdefinierten Datepicker implementiert?
RxJS-Aufgabe: Optimieren Sie die Operator-Kette (pipe mit filter, toLowerCase, switchMap). Erklären Sie, warum switchMap verwendet wird, wie es sich von concatMap und exhaustMap unterscheidet. Welcher Operator ist am besten für die Verarbeitung von Zahlungsanfragen geeignet?
Warum verlässt du deinen aktuellen Arbeitsplatz und was suchst du an einem neuen Ort?