Golang
Cosa fa defer?
Ci sono comandi o direzioni tra i team o le aree descritte che ti risuonano particolarmente, o che preferiresti non fare?
// cercando il migliore -- ??? // se non trovato, confronta inflight
Come appariva una query di report lenta e qual era l'intero percorso dalla richiesta dell'utente all'ottenimento del risultato?
A cosa serve un buffer di un canale?
Cos'è una condizione di race e come rilevarla?
Parla di un caso in cui hai ridotto il tempo di ricerca della cronologia delle transazioni da 2–5 secondi a 150 millisecondi usando l'aggregazione dei dati in Elasticsearch: quali erano i dati iniziali e l'architettura, cosa è stato esattamente cambiato e qual è stato il risultato?
Di che tipo di scalabilità stiamo parlando?
Cos'è un contesto in Go?
Quali indici hai usato in pratica e perché?
// codice per la funzione best() // con gestione degli errori per nessun backend disponibile
#claruey #tecnico 1. Cosa c'è di fantastico in Go? - goroutine e il pianificatore che permette di lavorare senza pensare a come gestisce la concorrenza. 2. Quali sono gli svantaggi di Go? - gestione degli errori 3. Come sei arrivato a Go? 4. Cosa garantisce la leggerezza di Go e perché le goroutine cambiano più velocemente? Perché non si poteva fare così nel sistema operativo? 5. A cosa rinunciamo usando le goroutine invece dei thread del sistema operativo? 6. Cos'è la concorrenza e il parallelismo? 7. Cos'è l'interfaccia net.Listener e quali sono i suoi metodi? 8. Hai lavorato direttamente con le reti o tramite framework e quali? 9. In cosa TCP differisce da UDP e a cosa servono in generale? 10. Quali sono i rischi nell'usare TCP e UDP? 11. Cosa sono bigEndian e littleEndian? 12. Cos'è TLS? 13. Quali sono i modi per trasferire dati tra microservizi (ad esempio comandi/richieste/risposte/trasferimento di file)? Quali pattern o strumenti di sviluppo possiamo scegliere e quali sono le loro sfumature? 14. Quali sono i metodi di trasferimento dati sulla rete e i loro pro/con? 15. Con quali SGBD hai lavorato e quali strumenti hai usato? 16. Quale libreria hai usato per ogni database in Go? 17. Come gestisci la crescita del database durante lo sviluppo? 18. Se lo schema del database cambia, come lo gestisci senza distruggere i dati vecchi? E le migrazioni, quali sono i pro e i contro? 19. Come cambi il database in produzione? Chi lo ha fatto? 20. Come astrarre al meglio il componente database dalla logica principale in modo che le query SQL e i metodi non si disperdano nel codice? Mettilo in una directory separata, passa un'interfaccia e usa i tag? 21. Perché sono necessari gli indici e quali sono i loro svantaggi? 22. Ti è stato assegnato il compito di scrivere codice che inseriresti in un progetto e come documenteresti i risultati? 23. Quale documentazione usi di solito e a quale scopo + dove va? Ad esempio, cos'è questa interfaccia e a cosa serve? 24. Usi attivamente go doc ed è una pratica nel tuo team? 25. Accompagni specifiche o documentazione markdown? Come lo fai? 26. Qual è stato il tuo flusso di lavoro, chi ha assegnato i compiti e qual è stato il passo successivo? 27. Quanto sono dettagliati i tuoi compiti? Devi solo accedervi o anche pensare all'architettura e chiedere ad altri? 28. Abbiamo un progetto con molte goroutine. Quali strumenti di sincronizzazione usi per far terminare tutte le goroutine in modo elegante e sicuro? 29. Dove nel progetto hai usato goroutine? 30. Quando passi un'interfaccia a una funzione, quanti byte occupa? 31. Cos'è un httpHandler, cosa riceve, quale struttura ha, cosa restituisce, quali sono i suoi argomenti e firma? A cosa serve e dove viene usato? 32. Cos'è middleware e come usarlo? Come era nel tuo progetto? 33. Quali proprietà del linguaggio Go permettono di costruire middleware e cosa prende e cosa restituisce? 34. Se hai una funzione che prende un'altra funzione e, dopo averla eseguita, avvia una goroutine e fa un callback, e passi un metodo di una struttura che non prende argomenti e non restituisce nulla, ci sarà un errore di compilazione o qualcos'altro? Ha una firma vuota e hai un metodo che richiede quella funzione, ma invece di una funzione semplice, hai passato un metodo, cioè un oggetto.metodo. 35. C'è una funzione che prende un int32 e provi a passarle un int16, cosa succederà e in quale fase? 36. Quanti byte occupa in memoria uno slice su amd64? 24 byte, e i dati stessi non vengono passati alla funzione? 37. Come puoi implementare un insieme in Golang e quali sono le sue differenze e sfumature? 38. Cos'è UUID e l'hai usato nel tuo progetto, dove e quale libreria hai usato? 39. Hai una mappa con 1.000.000 di elementi, cosa succede se ne aggiungi un altro? Quali sono gli scenari possibili e come cambia la velocità di accesso ai dati? 41. Hai usato Docker (contenitori/pods)? Quali altri servizi hai usato prima di Docker, come "come distribuire un binario su un server"? Dopo aver compilato il tuo codice, in cosa deve trasformarsi affinché il servizio si avvii all'avvio del sistema operativo?
Cos'è il problema N+1 nei database?