Sobes.tech
Senior

#clarify #techniek 1. Wat is er geweldig aan Go? - goroutines en de scheduler die het mogelijk maken om te werken zonder erover na te denken hoe het werkt met concurrency. 2. Welke nadelen zie je in Go? - foutafhandeling 3. Hoe ben je bij Go gekomen? 4. Hoe wordt lichtgewichtheid in Go verzekerd en waarom schakelen Go-routines sneller over? Waarom kon dit niet op hetzelfde manier in OS worden gedaan? 5. Waarop geven we op als we OS-threads vervangen door goroutines? 6. Wat is concurrency en parallelisme? 7. Wat is de net.Listener interface en welke methoden heeft het? 8. Heb je direct met netwerken gewerkt of via frameworks en welke? 9. Hoe verschilt TCP van UDP en wat is het en waarvoor wordt het gebruikt? 10. Wat zijn de risico's bij het gebruik van TCP en UDP? 11. Wat is bigEndian en littleEndian? 12. Wat is TLS? 13. Welke methoden zijn er voor het overdragen van gegevens tussen microservices (bijvoorbeeld commando's/verzoeken/antwoorden/bestandsoverdracht)? Welke patronen of ontwikkelmiddelen kunnen we hier kiezen en wat zijn de nuances? 14. Welke methoden zijn er voor het overdragen van gegevens via het netwerk en wat zijn de voor- en nadelen? 15. Met welke databases heb je gewerkt en welke tools heb je gebruikt? 16. Welke bibliotheek heb je voor elke database gebruikt in Go? 17. Hoe ga je om met groeiende databases tijdens ontwikkeling? 18. Als het schema in de database wordt gewijzigd, velden worden aangepast, hoe los je dat op zonder oude data te verliezen? Hoe doe je migraties en wat zijn de voor- en nadelen? 19. Hoe wijzig je de database in productie? Wie deed dat? 20. Hoe kun je het component dat met de database werkt abstract maken van de hoofdlogica, zodat SQL-queries en ORM's niet door de code verspreid zijn? Plaats het in een aparte directory en gebruik interfaces en tags? 21. Waarom zijn indexen nodig en wat zijn de nadelen? 22. Je krijgt de opdracht: schrijf code die je in het project plaatst en hoe documenteer je het resultaat? 23. Welke documentatie gebruik je gewoonlijk en waarvoor + waar gaat het naartoe? Bijvoorbeeld, wat is die interface, waarvoor wordt hij gebruikt, etc.? 24. Hoe gebruik je actief go doc en is dat bij jullie gebruikelijk? 25. Documenteer je specificaties of markdown en hoe doe je dat? 26. Hoe was je workflow, van wie kwamen de taken en wat gebeurde daarna? 27. Hoe gedetailleerd zijn de taken beschreven? Alleen voor toegang of ook voor architectuur en vragen aan anderen? 28. In een project met veel goroutines, welke synchronisatiehulpmiddelen worden gebruikt om alle goroutines veilig te laten afsluiten? 29. Waar in het project heb je goroutines gebruikt? 30. Hoeveel bytes neemt een interface in beslag? 31. Wat is een httpHandler, wat ontvangt het, wat voor structuur is het en wat geeft het terug, welke argumenten en signatuur? Waarvoor is het nodig en waar wordt het verder gebruikt? 32. Wat is middleware en hoe gebruik je dat? Hoe was dat in jouw project? 33. Welke eigenschappen van Go maken het mogelijk om middleware te bouwen en wat voor functie is dat, wat accepteert het en wat geeft het? 34. We hebben een functie die een functie accepteert en na uitvoering een goroutine start en een callback uitvoert, en we geven er een methode van een structuur aan, die ook niets accepteert en niets teruggeeft - zal er een compilatiefout zijn of iets anders? Bijvoorbeeld, de signatuur is leeg en we hebben een methode die zo'n functie accepteert, en we geven in plaats daarvan een methode door, dus een object.methode. 35. Er is een functie die een int32 accepteert en we proberen er een int16 in te voeren, wat gebeurt er en op welk punt? 36. Hoeveel bytes neemt een slice in beslag op bijvoorbeeld amd64? 24 bytes, en worden de gegevens zelf niet doorgegeven aan de functie? 37. Hoe kun je een set implementeren in Go en wat zijn de verschillen en nuances? 38. Wat is UUID en heb je dat in je project gebruikt, waar en welke bibliotheek heb je daarvoor gebruikt? 39. Je hebt een map met 1.000.000 elementen, wat gebeurt er als je er nog 1 toevoegt? Welke scenario's zijn mogelijk en hoe verandert de snelheid van gegevens ophalen? 41. Heb je Docker (containers/pods) gebruikt? En welke andere services waren er vóór Docker, zoals "binaris op een server uitvoeren"? Hoe heb je de code gebundeld en omgezet zodat de service opstart bij het opstarten van het OS?