Go-да коммерциялық даму тәжірибеңіз қанша жыл?
Golang
Go тілінде слайс ішкі құрылымы қалай? append функциясы қалай жұмыс істейді?
Міндетті түрде 3 субъект бар - пайдаланушы, чат, хабарлама • Пайдаланушының аты және тіркелу күні бар • Чаттың атауы және құру күні бар • Хабарламаның мәтіні, авторы және құру күні бар • Пайдаланушы бірнеше чатқа бір уақытта қосыла алады • Хабарлама міндетті түрде чатқа тиесілі, бір уақытта бірнеше чатқа тиесілі бола алмайды • Область пәнін кестелер түрінде сипаттау керек
Go тілінде race condition дегеніміз не? Мысал келтіріңіз.
PostgreSQL-де EXPLAIN және EXPLAIN ANALYZE дегеніміз не және олардың айырмашылығы неде?
Шешкен қызықты/күрделі техникалық мәселе туралы айта аласыз ба?
Екі клиент арасында хабар жіберу және қабылдау процесі қалай өтеді? Толық ағынды сипаттаңыз.
Бізде пайдаланушылардың құпия сөздері бар дерекқор бар, құпия сөздер хештелген (hashPassword функциясы арқылы), сонымен қатар құпия сөздерде қолданылуы мүмкін таңбалар жиынтығы белгілі (alphabet айнымалысы). Біздің міндетіміз - RecoverPassword функциясын жүзеге асыру, ол белгілі бір хэш бойынша құпия сөзді қалпына келтіруі керек және TestRecoverPassword сәтті аяқталуы керек. Негізгі талаптар: Қалай болса да шешу package main import ( "crypto/md5" "fmt" ) var alphabet = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func RecoverPassword(h []byte) string { return "" } func hashPassword(in string) []byte { h := md5.Sum([]byte(in)) return h[:] } func main() {
package main import ( "crypto/md5" "fmt" ) var alphabet = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func RecoverPassword(h []byte) string { return "" } func hashPassword(in string) []byte { h := md5.Sum([]byte(in)) return h[:] } func main() { tests := []string{"a", "12", "abc333d"} ok := true for _, exp := range tests { h := hashPassword(exp) act := RecoverPassword(h) if act != exp { fmt.Printf("Қате: күтілгені %q, алынғаны %q\n", exp, act) ok = false } } if ok { fmt.Println("Барлық тесттер сәтті өтті") } }
Қандай дерекқорлармен ең көп жұмыс істедіңіз?
Қандай HTTP әдістері бар? Олардың қайсысы идемпотентті?
Кодты қарау: Go тілінде кэш және мьютекс қолдану. Мәселелерді тауып, жақсартуларды ұсыныңыз. Шарт: оқуға/жазуға жүктеме 80/20.
package main import ( "crypto/md5" "fmt" ) var alphabet = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func RecoverPassword(h []byte) string { return "" } func hashPassword(in string) []byte { h := md5.Sum([]byte(in)) return h[:] } func main() { tests := []string{"a", "12", "abc333d"} ok := true for _, exp := range tests { h := hashPassword(exp) act := RecoverPassword(h) if act != exp { fmt.Printf("Қате: күтілгені %q, алынғаны %q\n", exp, act) ok = false } } if ok { fmt.Println("Барлық тесттер сәтті өтті") } } Дұрыс орындалуы үшін кодқа: кіріс нүктесі -- main функциясы main пакетінен Міндеті: RecoverPassword функциясын жүзеге асыру, ол MD5-хэш бойынша бастапқы парольді қалпына келтіреді, ол берілген алфавиттен таңбалардан тұрады.
HTTP сұрауы мен жауабының құрылымын сипаттаңыз. Жауап кодтары қалай жіктеледі?
Kubernetes-те жаңа нұсқаны орналастырғанда Go-сервисті сыпайы түрде қалай тоқтатуға болады?
Неге жаңа ұсыныстарды қарастырып жатырсың? Белсенді немесе пассивті іздеу?
Осы хабарламашы үшін PostgreSQL дерекқорында қандай кестелер мен өрістер қажет?
Жаңа жұмысқа қандай күтулеріңіз бар?
Командада немесе жұмыста болмауы керек нәрселер қандай? Қандай red flags бар?
Монолиттен микросервистерге көшу кезінде ең қиын және ең қызықты бөлім қандай болды?