Ak služba vráti chybu 500, ako budete riešiť problém?
Golang
Poznáte model MVCC?
Popíšte proces kompilácie programu v Go: čo sa deje pri spustení go build?
Používate TDD? Ako pokrivate svoj kód testami?
Prečo sa úniky gorutín považujú za kritickejšie ako klasické úniky pamäte z hľadiska vplyvu na runtime?
Ako funguje plánovač gorutín v Go? Povedzte o modeli GMP.
Ako GOGC ovplyvňuje výkon služby? Čo je STW a ako ovplyvňuje latenciu?
Povedzte nám o brokeri správ: aké typy existujú, ako funguje Kafka?
Čo sú reťazce v Go a aké sú ich vlastnosti?
Ako bezpečne pristupiti delu pomnilnika iz več gorutin? Kdaj uporabljati mutexe in kdaj atomike?
Prečo nie je možné pridať indexy na všetky stĺpce tabuľky?
Povedzte nám o balíku unsafe v Go. Kedy vám pomohol pri práci?
Čo sú goroutines v Go? Ako funguje plánovač Go (model GMP)?
Povedajte nám o svojich skúsenostiach, všetkom, čo považujete za potrebné a relevantné pre túto pozíciu.
Čo je to analýza úniku? V ktorých prípadoch objekt odchádza na haldu?
Ako komunikovali repliky služieb v Kubernetes a aké informácie zdieľali?
Popíšte proces analýzy a optimalizácie dlhého SQL dotazu.
Je anti-fraud veľká služba alebo súčasť väčšieho systému? Ako komunikuje s inými službami?
#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?
Ako je štruktúrované prostredie behu Go?