Quali altri criteri potresti menzionare per un buon componente di libreria?
Frontend
Hai iniziato a studiare React, e React è più popolare e ci sono più offerte di lavoro. Perché alla fine sei passato ad Angular?
Parlami della scrittura di test unitari: quando, secondo te, un test dovrebbe fallire? Cosa dovrebbe verificare esattamente un test unitario per una classe testata secondo la scuola di Londra (con tutte le dipendenze simulate)?
Analizza questo approccio dal punto di vista della confusione di responsabilità: cosa è stato fatto di sbagliato qui e come lo spiegheresti dal punto di vista dei principi architettonici (in particolare, il Principio di Responsabilità Singola e la separazione tra presentazione e modello)?
Confronta l'iniezione delle dipendenze tramite i parametri del costruttore e tramite la funzione inject: quali sono i vantaggi e gli svantaggi di ciascun approccio?
Puoi elencare tutte le soluzioni tecniche a questo problema (tranne sostituire il campo con un segnale)?
Raccontaci di più sull'uso del pipe async e dell'iscrizione manuale: cosa bisogna fare esattamente affinché il valore venga visualizzato correttamente nel template (incluso il lavoro con l'iscrizione e la sua cancellazione tramite takeUntilDestroy o ngOnDestroy)?
Puoi fornire un esempio concreto di una libreria che impediva di completare la build durante l'aggiornamento di Angular (ad esempio, alla versione 16)? In cosa consisteva esattamente il problema e come l'hai risolto?
Nel suo curriculum indica di aver aggiornato Angular dalla versione 14 alla 20. Racconti di un problema che si è verificato durante l'aggiornamento di Angular in un progetto, una storia dalla sua esperienza pratica.
Perché è necessaria l'ereditarietà in OOP? Fornisci una giustificazione del motivo per cui viene utilizzata, se il compito di riutilizzo della logica può essere risolto anche in altri modi (ad esempio, tramite DI).
Hai criteri basati sulla pratica per determinare dove l'ereditarietà è appropriata e dove no?
Nel suo precedente lavoro, ha detto che la parte di frontend era relativamente piccola, ma che vi erano coinvolti 6 sviluppatori frontend. Da dove proviene esattamente il team di 6 persone e come si relaziona con il team frontend complessivo dell'azienda?
Perché, utilizzando un segnale e chiamando il metodo set, il valore si aggiorna nel template, ma con una semplice assegnazione come this.token = stringa, no? Spiega questo a livello di rilevamento delle modifiche.
Hai detto che hai scritto i test usando una rete neurale. Se la rete neurale ha generato test che falliscono con qualsiasi modifica al codice della classe, questi test raggiungono il loro scopo? Sono utili?
Immagina uno scenario: un sviluppatore più esperto riceve un junior con il compito di creare un componente Angular con un campo per visualizzare un token e un pulsante 'crea token'. Cliccando sul pulsante, viene inviata una richiesta al server, si riceve un token, e il junior scrive this.token = la stringa ricevuta, ma il valore non viene visualizzato e la pagina non si ridisegna. Cosa consiglieresti per risolvere questo problema e quali approcci ci sono per correggerlo?
Conosci i diagrammi delle classi UML? Hai familiarità con tipi di relazioni come associazione, composizione, aggregazione, generalizzazione?
Perché hai scelto specificamente lo sviluppo web e Angular, invece di, ad esempio, lo sviluppo mobile?
Se il modello non sa che il valore è cambiato, perché aggiungere il pipe async al modello risolve il problema di reattività? Come funziona sotto il cofano?
Raccontaci come sei entrato nell'industria dello sviluppo: come ti sei formato, come hai trovato il tuo primo lavoro, considerando che nel curriculum hai indicato una specializzazione non tecnica?
Sei d'accordo con l'idea che un componente condiviso universale, che si ripete in diversi punti dell'applicazione, e un componente di libreria destinato ad essere importato in altre applicazioni, non siano la stessa cosa, e che l'approccio a essi debba essere diverso? Quali requisiti imporresti a un componente di libreria rispetto a un componente condiviso?