Sobes.tech
Senior

#clarificare #tehnic 1. Ce este minunat la Go? - gorutinele și planificatorul care permit lucrul fără a te gândi cum funcționează cu concurența. 2. Ce dezavantaje vezi în Go? - gestionarea erorilor 3. Cum ai ajuns la Go? 4. Cum se asigură ușurința în Go și de ce se comută gorutinele mai rapid? De ce nu s-a putut face același lucru în OS? 5. La ce renunțăm când în loc de fire OS folosim gorutine? 6. Ce este concurența și paralelismul? 7. Ce este interfața net.Listener și ce metode are? 8. Ai lucrat direct cu rețele sau prin framework-uri și care? 9. Cum diferă TCP de UDP și ce sunt acestea și pentru ce sunt folosite? 10. Care sunt riscurile utilizării TCP și UDP? 11. Ce sunt bigEndian și littleEndian? 12. Ce este TLS? 13. Ce metode există pentru transmiterea datelor între microservicii (de exemplu, comenzi/cereri/răspunsuri/transfer de fișiere)? Ce modele sau instrumente de dezvoltare putem alege și care sunt nuanțele lor? 14. Ce metode avem pentru transmiterea datelor prin rețea și care sunt avantajele/dezavantajele? 15. Cu ce baze de date ai lucrat și ce instrumente ai folosit? 16. Ce bibliotecă ai folosit pentru fiecare bază de date în Go? 17. Cum gestionezi creșterea bazei de date în timpul dezvoltării? 18. Dacă schema bazei de date s-a schimbat, câmpurile au fost modificate, cum rezolvi această problemă fără a pierde datele vechi? Cum faci migrări și care sunt avantajele/dezavantajele? 19. Cum modifici baza de date în producție? Cine a făcut asta? 20. Cum poți abstractiza componenta care lucrează cu baza de date de logica principală, astfel încât toate interogările SQL și ORM-urile să nu se răspândească în cod? Pune-o într-un director separat și folosește interfețe și etichete? 21. De ce sunt necesare indexurile și care sunt dezavantajele lor? 22. Ți s-a dat sarcina: scrie codul pe care îl vei plasa în proiect și cum vei documenta rezultatul? 23. Ce documentație folosești de obicei și pentru ce + unde merge? De exemplu, ce este acea interfață, pentru ce este folosită etc.? A fost vreun astfel de caz? 24. Cum folosești activ go doc și este o practică obișnuită la voi? 25. Documentezi specificații sau markdown și cum faci asta? 26. Care a fost fluxul tău de lucru, de la cine veneau sarcinile și ce s-a întâmplat apoi? 27. Cât de detaliate sunt sarcinile? Adică, trebuie doar să intri sau trebuie și să gândești arhitectural și să întrebi pe alții? 28. Într-un proiect cu multe gorutine, ce mijloace de sincronizare se folosesc pentru ca toate gorutinele să se încheie în mod sigur? 29. Unde în proiect ai folosit gorutine? 30. Cât ocupă un interface în memorie? 31. Ce este httpHandler, ce primește și ce structură are și ce returnează, ce argumente și semnătură? Pentru ce este nevoie și unde este folosit mai departe? 32. Ce este middleware și cum îl folosești? Cum a fost în proiectul tău? 33. Ce proprietăți ale limbajului Go permit construirea acestor middleware-uri și ce este acea funcție, ce acceptă și ce produce? 34. Avem o funcție care acceptă o funcție și după executare pornește o gorutină și face un callback, iar noi îi transmitem o metodă a unei structuri, care de asemenea nu acceptă nimic și nu returnează nimic - va exista o eroare de compilare sau altceva? Adică, semnătura ei este goală și avem o metodă care cere o astfel de funcție, iar în loc să transmitem o funcție pură, am transmis metoda, adică obiect.metoda. 35. Există o funcție care acceptă un int32 și încercăm să-i transmitem un int16, ce se va întâmpla și în ce etapă? 36. Câte bytes ocupă în memorie un slice pe amd64, de exemplu? 24 bytes, iar datele nu sunt transmise în funcție? 37. Cum poți implementa un set în Go și care sunt diferențele și nuanțele? 38. Ce este UUID și l-ai folosit în proiectul tău, unde și ce bibliotecă ai folosit pentru asta? 39. Ai un map cu 1.000.000 de elemente, ce se întâmplă dacă adaugi încă 1 element? Care sunt scenariile posibile și cum se schimbă viteza de acces la date? 41. Ai folosit Docker (containere/poduri)? Și ce alte servicii erau înainte de Docker, cum ar fi "cum se deployează binarul pe server"? Cum ai împachetat codul și cum l-ai transformat pentru ca serviciul să pornească la pornirea OS-ului?