Interviewfragen zu NestJS (Senior) mit Antworten
75 Fragen fürs Vorstellungsgespräch zu NestJS (Senior) mit richtigen Antworten, Erklärungen und Links zur Dokumentation.
Diesen Test machen- 1.Woher weiß Nest, was in
constructor(private users: UsersService)injiziert werden soll? - 2.Warum kann ein Bundler oder Compiler ohne Unterstützung für Decorator-Metadaten eine Nest-App kaputt machen?
- 3.Wie ist der DI-Container über Module hinweg organisiert?
- 4.Ein REQUEST-scoped Provider wird in einen Singleton-Service injiziert. Was passiert?
- 5.Wofür sind Durable Provider da?
- 6.Wie injiziert man die aktuelle Anfrage in einen Provider, und was kostet das?
- 7.Wie findet man beim Start alle Provider mit einem eigenen Decorator, etwa um Event-Handler automatisch zu registrieren?
- 8.Wie hilft
ConfigurableModuleBuilderbeim Schreiben eines wiederverwendbaren dynamischen Moduls? - 9.Warum kann
forwardRefein Designproblem verdecken, auch wenn es den Fehler behebt? - 10.Warum kann ein injizierter Wert bei zirkulären Abhängigkeiten im Konstruktor
undefinedsein, später aber definiert? - 11.Wo spielt der Overhead von Nest meist eine Rolle und wo nicht?
- 12.Warum kann Serialisierung mit
class-transformerbei großen Antworten zum Engpass werden? - 13.Wie senkt man die Kaltstartzeit einer Nest-App auf Serverless-Plattformen?
- 14.Warum nutzt man SWC oft in der Nest-Entwicklung?
- 15.Worauf müssen Handler in Nest-Microservices über Kafka vorbereitet sein?
- 16.Warum kann Request-Response (
client.send) zwischen Microservices im großen Maßstab riskant sein? - 17.Wie bekommt man zuverlässiges Veröffentlichen von Events aus einem Nest-Service, der auch in die Datenbank schreibt?
- 18.Worauf stützt sich der gRPC-Transport in Nest?
- 19.Wie reicht man eine Trace- oder Korrelations-ID über Nest-Microservices weiter?
- 20.Wie strukturiert man eine große Nest-Codebasis, damit Grenzen klar bleiben?
- 21.Wie sieht hexagonale Architektur (Ports und Adapter) in Nest aus?
- 22.Wann lohnt sich
@nestjs/cqrs? - 23.Wie hält man Transaktionen über mehrere Services in einer Anfrage konsistent, ohne überall ein Transaktionsobjekt durchzureichen?
- 24.Wie setzt man in Nest Mandantenfähigkeit mit einer Datenbank pro Mandant um?
- 25.Was ist das Risiko, Autorisierungslogik nur in Guards unterzubringen?
- 26.Warum ist es nützlich, dieselbe Validierung und Autorisierung für HTTP, GraphQL und Message-Handler zu haben?
- 27.Wie sollte eine Nest-App in Kubernetes herunterfahren, um keine Anfragen zu verlieren?
- 28.Was sollte ein Readiness-Check in Nest prüfen, und was sollte Liveness vermeiden?
- 29.Wie macht man ausgehende HTTP-Aufrufe aus Nest widerstandsfähig?
- 30.Welches Problem kann ein globaler
@Cronin einem skalierten Nest-Deployment verursachen, und wie löst man es? - 31.Wie sollten BullMQ-Worker in Nest unter Last deployt werden?
- 32.Warum sollte man Fehler in Event-Handlern (
@OnEvent) sorgfältig behandeln? - 33.Wie fügt man einer Nest-App verteiltes Tracing hinzu?
- 34.Wie macht man die Logs von Nest strukturiert und korreliert?
- 35.Wie testet man ein Modul, das einen request-scoped Provider nutzt?
- 36.Was ist eine gute Strategie, die Datenbankschicht einer Nest-App in der CI zu testen?
- 37.Wie testet man, dass Guards, Pipes und Filter für eine Route richtig verdrahtet sind?
- 38.Wie schützt man eine Nest-GraphQL-API vor sehr teuren Abfragen?
- 39.Warum müssen DataLoader-Instanzen in einer Nest-GraphQL-App pro Anfrage erzeugt werden?
- 40.Was erlaubt Apollo Federation (vom GraphQL-Modul von Nest unterstützt)?
- 41.Welche Einstellungen machen eine Nest-API standardmäßig sicherer?
- 42.Wie verhindert man Mass Assignment beim Aktualisieren von Entitäten in Nest?
- 43.Warum sollten Secrets nicht durch das Standard-Exception- oder Request-Logging von Nest geloggt werden?
- 44.Wie behandelt man Datei-Uploads in Nest im großen Maßstab sicher?
- 45.Was ist ein sinnvoller Weg, eine große Nest-App auf eine neue Hauptversion zu aktualisieren?
- 46.Warum wählt ein Team eventuell Nest statt eines minimalen Frameworks wie Fastify allein?
- 47.Wie teilt man DTOs und Validierung zwischen einem Nest-Backend und einem TypeScript-Frontend?
- 48.Was ist ein Problem, wenn man Swagger UI in Produktion bereitstellt?
- 49.Wie kann ein einziger Interceptor Idempotenzschlüssel für POST-Endpunkte umsetzen?
- 50.Wie setzt man in Nest ein Response-Caching um, das nach Nutzer variiert?
- 51.Wie setzt man API-Versionierung um, ohne ganze Controller zu duplizieren?
- 52.Was ist eine Falle von
@Res()ohnepassthroughbei Interceptors und Filtern? - 53.Wie streamt man in Nest einen großen Datei-Download, ohne ihn in den Speicher zu laden?
- 54.Was ist der Unterschied zwischen
onModuleInitundonApplicationBootstrap? - 55.Warum laufen Lifecycle-Hooks bei request-scoped oder transient Providern nicht wie üblich?
- 56.Was passiert standardmäßig mit globalen Enhancern im Microservice-Teil einer hybriden App?
- 57.Wie schreibt man einen Guard, der für HTTP und GraphQL funktioniert?
- 58.Was bewirkt ein Wurf innerhalb des
map-Operators eines Interceptors? - 59.Warum sollte lange CPU-gebundene Arbeit nicht in einem Nest-Request-Handler laufen?
- 60.Wie erzwingt man Modulgrenzen in einem Nest-Monorepo automatisch?
- 61.Warum ist es sinnvoll, den Bootstrap einer Nest-App (
main.ts) von der App-Konfiguration (etwa einer FunktionconfigureApp(app)) zu trennen? - 62.Wie macht man Fehler der
ValidationPipevon Nest für API-Clients nützlicher? - 63.Was bietet
app.useGlobalInterceptors()im Vergleich zuAPP_INTERCEPTORNICHT? - 64.Wie setzt man mit TypeORM in Nest global ein Filtern gelöschter Zeilen (Soft Delete) um?
- 65.Warum können Handler von
@nestjs/event-emitterlaufen, bevor die Datenbanktransaktion committet ist? - 66.Was erhält
onApplicationShutdown(signal), und warum ist das nützlich? - 67.Wie begrenzt man die Auswirkung eines langsamen nachgelagerten Dienstes auf eine Nest-API?
- 68.Warum sollten Controller-Tests nicht die einzigen Tests für Autorisierungsregeln sein?
- 69.Wobei hilft
useMocker()am Builder eines Testmoduls? - 70.Wie kann Nest Nachrichten von einem Broker ohne eingebauten Transport konsumieren, etwa AWS SQS?
- 71.Warum sollten Domänen-Services Domänenfehler statt
HttpExceptions werfen? - 72.Wie begrenzt man mit
@nestjs/throttlerpro angemeldetem Nutzer statt pro IP? - 73.Wie sendet man WebSocket-Nachrichten über mehrere Nest-Instanzen an alle?
- 74.Was ist ein Backend for Frontend (BFF), und wie könnte Nest es umsetzen?
- 75.Warum verbirgt ein globaler
ClassSerializerInterceptoreventuell keine Felder, wenn man Ergebnisse von Prisma zurückgibt?