#kliurej #technicka
1. Čo je na Go impozantné? - gorutíny a plánovač, ktorý umožňuje pracovať bez premýšľania o tom, ako funguje s konkurentnosťou.
2. Aké nedostatky vidíte v Go? - spracovanie chýb
3. Ako ste prišli k Go?
4. Čo zabezpečuje ľahkosť v Go a prečo sa gorutiny prepínajú rýchlejšie? Prečo to nebolo možné urobiť v OS?
5. Čo obetujeme, keď namiesto OS vlákien používame gorutiny?
6. Čo je konkurentnosť a paralelnosť?
7. Čo je rozhranie net.Listener a aké má metódy?
8. Pracovali ste priamo so sieťami alebo cez frameworky a aké?
9. Čo odlišuje TCP od UDP a čo to vlastne je a na čo sa používa?
10. Aké sú riziká pri používaní TCP a UDP?
11. Čo je bigEndian a LittleEndian?
12. Čo je TLS?
13. Aké sú spôsoby prenosu dát medzi mikroslužbami (napríklad príkazy/žiadosti/odpovede/prenos súborov)? Aké modely alebo nástroje na vývoj môžeme vybrať a aké sú ich nuansy?
14. Aké sú spôsoby prenosu dát cez sieť a ich výhody/nevýhody?
15. S akými SDB pracoval a aké nástroje používal?
16. Akú knižnicu ste použili pre každú databázu v go?
17. Ako sa vysporiadate, keď databáza rastie počas vývoja?
18. V databáze ste zmenili schému, zmenili polia, ako riešite takýto problém, aby ste nezničili staré dáta? migrácie, ak sa robia, ako a aké sú ich plusy/minusy?
19. Ako v produkcii meníte databázu? Kto to robil?
20. Ako je lepšie urobiť, aby sa abstraktný komponent práce s databázou od hlavnej logiky, aby všetky tieto SQL dotazy, ako metazdroje, neboli rozptýlené v kóde? Presunúť ich do samostatného adresára a logiky, a na vrchu odovzdávať rozhrania, aby sa obalili a neboli závislé od konkrétnej databázy + pridávať tagy?
21. Na čo sú potrebné indexy a aké majú nevýhody?
22. Dostali ste úlohu: napísať kód - aby ste ho vložili do projektu a čo budete robiť v súvislosti s dokumentáciou výsledku?
23. Akú dokumentáciu bežne používate a na čo + kam ide? Napríklad, aké je toto rozhranie, na čo sa používa a tak ďalej? Bolo taká situácia?
24. Aktívne používate go doc a existuje taká prax u vás?
25. Máte špecifikácie alebo ich sprevádzate v Markdown? Ako ich robíte?
26. Aký je váš pracovný tok, od koho prichádzajú úlohy a čo ďalej?
27. Ako podrobne sú úlohy popísané? T.j. stačí len vstúpiť alebo aj rozmýšľať architektonicky a pýtať sa niekoho?
28. Máme projekt s množstvom gorutín. Porozprávajte, aké prostriedky na synchronizáciu sa používajú, aby všetky gorutiny elegantne skončili v bezpečnej bodke?
29. Kde v projekte ste použili gorutiny?
30. Koľko bajtov zaberá rozhranie, keď ho odovzdávate vnútri funkcie?
31. Čo je httpHandler, čo prijíma a aká je štruktúra a aké argumenty a signatúra má? Na čo je potrebný a kde sa ďalej používa?
32. Čo je middleware a ako sa používa? Ako to bolo vo vašom projekte?
33. Aké vlastnosti jazyka Go umožňujú stavať tieto middleware a čo je to za funkciu, čo prijíma a čo vracia?
34. Máme funkciu, ktorá prijíma funkciu a po vykonaní spustí gorutinu a vykoná callback, a my odovzdávame metódu štruktúry, ktorá tiež nič neprijíma a nič nevracia - bude mať chybu pri kompilácii alebo niečo iné? T.j. jej signatúra je prázdna, a máme nejakú metódu, ktorá vyžaduje takýto typ funkcie, a namiesto toho, aby sme odovzdali čistú funkciu, odovzdali sme metódu, t.j. objekt.funkcia.
35. Má funkciu, ktorá prijíma int32, a my sa snažíme odovzdať int16, čo sa stane a v akom kroku?
36. Koľko bajtov zaberá v pamäti slice na amd64, napríklad? 24 bajtov, a dáta sa neodovzdávajú do funkcie?
37. Ako môžete implementovať množinu v Golang a aké sú jej rozdiely a nuansy?
38. Čo je UUID a bol u vás v projekte, kde a akou knižnicou ste ho používali?
39. Máte mapu s 1 000 000 prvkami, čo sa stane, ak pridáte ešte 1 prvok? Aké scenáre sú možné a ako sa zmení rýchlosť prístupu k dátam?
41. Používali ste Docker (kontajnery/pody)? A aké ďalšie služby ste mali pred Dockerom, "ako nasadiť binárny súbor na server"? Po zostavení kódu, čo je potrebné urobiť, aby tento servis štartoval pri štarte OS?