Golang
Ali so med opisanimi ekipami ali področji kakšne ukaze ali smernice, ki vam posebej odmevajo ali katerih bi raje ne izvajali?
// hľadanie najlepšieho -- ??? // ak nenájdete, porovnajte inflight
Ako vyzeral pomalý dotaz na správu a aká bola celá cesta od požiadavky používateľa po získanie výsledku?
Aký je účel bufferu kanála?
Čo je race condition a ako ju odhaliť?
Rozprávajte o prípade, keď ste znížili čas vyhľadávania histórie transakcií z 2–5 sekúnd na 150 milisekúnd pomocou agregácie dát v Elasticsearch: aké boli počiatočné údaje a architektúra, čo presne bolo zmenené a aký bol výsledok?
O akom škálovaní hovoríme?
Čo je to kontext v Go?
Aké indexy ste používali v praxi a prečo?
// kód pre funkciu best() // s obsluhou chýb, ak backend nie je dostupný
#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?
Čo je problém N+1 v databázach?