Sobes.tech
Senior

#tisztázás #technikai 1. Mi csodálatos a Go-ban? - goroutine-ok és ütemező, amelyek lehetővé teszik, hogy anélkül dolgozz, hogy azon gondolkodnál, hogyan működik a konkurencia. 2. Milyen hátrányokat látsz a Go-ban? - hibakezelés 3. Hogyan jutottál a Go-hoz? 4. Hogyan biztosított a könnyűség a Go-ban, és miért váltanak gyorsabban a goroutine-ok? Miért nem lehetett ezt ugyanígy megcsinálni az OS-ben? 5. Mire áldozunk, amikor az OS szálak helyett goroutine-okat használunk? 6. Mi az a konkurencia és párhuzamosság? 7. Mi az a net.Listener interfész és milyen metódusai vannak? 8. Közvetlenül hálózatokkal dolgoztál vagy framework-ökön keresztül, és melyek? 9. Miben különbözik a TCP az UDP-től, és mi ez és mire használják? 10. Milyen kockázatok vannak a TCP és UDP használatakor? 11. Mi az a bigEndian és littleEndian? 12. Mi az a TLS? 13. Milyen módszerek vannak az adatok átadására mikroszolgáltatások között (pl. parancsok/kérések/válaszok/fájlátvitel)? Milyen mintákat vagy fejlesztőeszközöket választhatunk, és mik a finomságok? 14. Milyen módszerek vannak az adatok hálózaton történő továbbítására, és azok előnyei/hátrányai? 15. Milyen adatbázisokkal dolgoztál, és milyen eszközöket használtál? 16. Milyen könyvtárat használtál minden adatbázishoz Go-ban? 17. Hogyan kezeled az adatbázis növekedését fejlesztés közben? 18. Ha megváltozik az adatbázis sémája, módosulnak a mezők, hogyan oldod meg ezt anélkül, hogy elveszítenéd a régi adatokat? Migrációk hogyan és mik az előnyei/hátrányai? 19. Hogyan módosítod az adatbázist élesben? Ki csinálta ezt? 20. Hogyan lehet az adatbázissal dolgozó komponenst elvonatkoztatni a fő logikától, hogy az összes SQL lekérdezés és ORM ne szóródjon szét a kódban? Egy külön könyvtárba helyezd, és interfészeket és tageket használj. 21. Miért szükségesek a indexek, és mik az hátrányaik? 22. Feladatot kaptál: írj kódot, amit a projektbe helyezel, és hogyan dokumentálod az eredményt? 23. Milyen dokumentációt használsz általában, és miért + hova kerül? Például, mi ez az interfész, mire használják, stb.? Volt ilyen helyzet? 24. Aktívan használod a go doc-ot, és ez szokás nálatok? 25. Milyen specifikációkat vagy markdown-okat dokumentálsz, és hogyan csinálod? 26. Milyen volt a munkafolyamatod, kitől érkeztek a feladatok, és mi történt ezután? 27. Mennyire részletesek a feladatok? Csak belépéshez vagy az architektúráról is gondolkodni és kérdezni kell? 28. Egy projektben sok goroutine-nal, milyen szinkronizációs eszközöket használsz, hogy minden goroutine biztonságosan befejeződjön? 29. Hol használtad a goroutine-okat a projektben? 30. Mennyit foglal egy interface a memóriában? 31. Mi az a httpHandler, mit kap és mit ad, milyen struktúra és mit ad vissza, milyen argumentumok és szignatúra? Mire van szükség és hol használják tovább? 32. Mi az a middleware, és hogyan használod? Milyen volt a projektedben? 33. Milyen tulajdonságai a Go nyelvnek, amelyek lehetővé teszik ezeket a middleware-eket, és mi ez, mit fogad és mit ad? 34. Van egy függvény, amely elfogad egy függvényt, és végrehajtás után goroutine-t indít és callback-et hajt végre, és adunk neki egy struktúra metódusát, amely szintén semmit nem fogad és nem ad vissza - lesz-e fordítási hiba vagy más? Például, az aláírása üres, és van egy metódus, amely ilyen függvényt kér, és ahelyett, hogy tiszta függvényt adnánk, metódust adunk, azaz objektum.metódus. 35. Van egy függvény, amely int32-t fogad, és megpróbálunk neki int16-t adni, mi fog történni és melyik szakaszban? 36. Mennyit foglal egy slice memóriában például amd64-en? 24 bájt, és az adatok nem kerülnek át a függvénybe? 37. Hogyan lehet megvalósítani egy halmazt Go-ban, és mik a különbségek és finomságok? 38. Mi az a UUID, és használtad-e a projektedben, hol és milyen könyvtárat? 39. Van egy 1 000 000 elemű map-ed, mi történik, ha még hozzáadsz 1 elemet? Milyen lehetséges forgatókönyvek és hogyan változik az adatok elérésének sebessége? 41. Használtál Docker-t (konténerek/podok)? És milyen más szolgáltatások voltak Docker előtt, például, "hogyan telepíted a binárist a szerverre"? Hogyan csomagoltad a kódot, és hogyan alakítottad át, hogy a szolgáltatás automatikusan induljon az OS indításakor?