Golang
Co robi defer?
Czy spośród opisanych zespołów lub obszarów są jakieś polecenia lub kierunki, które szczególnie do ciebie przemawiają lub których wolałbyś unikać?
// szukając najlepszego -- ??? // jeśli nie znajdziesz, porównaj inflight
Jak wyglądało wolne zapytanie raportowe i jaka była cała ścieżka od żądania użytkownika do uzyskania wyniku?
Do czego służy bufor kanału?
Czym jest race condition i jak ją wykryć?
Opowiedz o przypadku, w którym skróciłeś czas wyszukiwania historii transakcji z 2–5 sekund do 150 milisekund, korzystając z agregacji danych w Elasticsearch: jakie były dane początkowe i architektura, co dokładnie zostało zmienione i jaki był wynik?
O jakim skalowaniu mówimy?
Czym jest kontekst w Go?
Jakie indeksy używałeś w praktyce i dlaczego?
// kod dla funkcji best() // z obsługą błędów, gdy brak backendu
#claruey #technik 1. Co jest w Go świetne? - goroutines i scheduler, który pozwala na pracę bez myślenia o tym, jak obsługuje konkurencyjność. 2. Jakie wady widzisz w Go? - obsługa błędów 3. Jak trafiłeś na Go? 4. Co zapewnia lekkość Go i dlaczego goroutines przełączają się szybciej? Dlaczego nie można tego zrobić w OS? 5. Na co tracimy, używając goroutines zamiast wątków OS? 6. Czym jest konkurencyjność i równoległość? 7. Czym jest interfejs net.Listener i jakie ma metody? 8. Czy pracowałeś bezpośrednio z sieciami lub przez frameworki i jakie? 9. Czym TCP różni się od UDP i do czego są ogólnie używane? 10. Jakie są ryzyka przy używaniu TCP i UDP? 11. Czym są bigEndian i littleEndian? 12. Czym jest TLS? 13. Jakie są sposoby przesyłania danych między mikroserwisami (np. komendy/żądania/odpowiedzi/przesyłanie plików)? Jakie wzorce lub narzędzia programistyczne możemy wybrać i jakie mają niuanse? 14. Jakie są metody przesyłania danych przez sieć i ich zalety/wady? 15. Z jakimi systemami zarządzania bazami danych pracowałeś i jakie narzędzia używałeś? 16. Jaką bibliotekę używałeś dla każdej bazy danych w Go? 17. Jak radzisz sobie z rozwojem bazy danych podczas pracy nad projektem? 18. Jeśli schemat bazy danych się zmieni, jak sobie z tym radzisz, nie niszcząc starych danych? Co z migracjami, ich zalety i wady? 19. Jak zmieniasz bazę danych w produkcji? Kto to robił? 20. Jak najlepiej abstrahować komponent bazy danych od głównej logiki, aby zapytania SQL i metody nie rozpraszały się po kodzie? Umieścić to w osobnym katalogu, przekazać interfejs i używać tagów? 21. Dlaczego indeksy są potrzebne i jakie są ich wady? 22. Zostałeś poproszony o napisanie kodu, który umieściłbyś w projekcie i jak byś dokumentował wyniki? 23. Jaką dokumentację zwykle używasz i w jakim celu + dokąd ona trafia? Na przykład, czym jest ten interfejs i do czego służy? 24. Czy aktywnie korzystasz z go doc i czy to jest praktyka w twoim zespole? 25. Towarzyszysz specyfikacje lub dokumentację markdown? Jak to robisz? 26. Jaki był twój workflow, kto przydzielał zadania i jaki był następny krok? 27. Jak szczegółowe są twoje zadania? Czy tylko musisz do nich dotrzeć, czy też myśleć architektonicznie i pytać innych? 28. Mamy projekt z wieloma goroutines. Jakie narzędzia synchronizacji używasz, aby wszystkie goroutines zakończyły się elegancko i bezpiecznie? 29. Gdzie w projekcie używałeś goroutines? 30. Gdy przekazujesz interfejs do funkcji, ile bajtów on zajmuje? 31. Czym jest httpHandler, co otrzymuje, jaka jest jego struktura, co zwraca, jakie są argumenty i sygnatura? Do czego służy i gdzie jest dalej używany? 32. Czym jest middleware i jak go używać? Jak było to w twoim projekcie? 33. Jakie właściwości języka Go pozwalają na budowanie middleware i co to za funkcja, którą przyjmuje i co zwraca? 34. Jeśli masz funkcję, która przyjmuje inną funkcję i po jej wykonaniu uruchamia goroutine i wykonuje callback, a przekazujesz tam metodę struktury, która też nic nie przyjmuje i nic nie zwraca - czy będzie błąd kompilacji lub coś innego? Ma podpis pusty, a mamy metodę, która wymaga takiej funkcji, ale zamiast przekazać czystą funkcję, przekazaliśmy metodę, czyli obiekt.metoda. 35. Jest funkcja, która przyjmuje int32, a próbujesz przekazać jej int16, co się stanie i na którym etapie? 36. Ile bajtów zajmuje w pamięci slice na amd64? 24 bajty, a dane same nie są przekazywane do funkcji? 37. Jak można zaimplementować zbiór w Golang i jakie są różnice i niuanse? 38. Czym jest UUID i czy używałeś go w projekcie, gdzie i jaką bibliotekę? 39. Masz mapę z 1 000 000 elementów, co się stanie, jeśli dodasz jeszcze jeden? Jakie są możliwe scenariusze i jak zmieni się szybkość dostępu do danych? 41. Używałeś Dockera (kontenery/pody)? Jakie inne usługi używałeś przed Dockerem, np. "jak wdrożyć binarkę na serwerze"? Po skompilowaniu kodu, w co musi się przekształcić, aby usługa uruchomiła się przy starcie systemu?
Czym jest problem N+1 w bazach danych?