Golang
Ինչու եք անցել [ընկերություն]-ից [ընկերություն]։
Ի՞նչ չափանիշներով եք ընտրում ընկերությունները, ինչի վրա եք հիմնվում:
Կարող ենք փոխանցել slice-ը որպես պարամետր ֆունկցիային?
Ինչպե՞ս են առաջանում գործերը։ Պատմեք ինձ այս գործընթացի մասին։
Պատմիր տվյալների բազաների մասին — ինչի հետ էիր աշխատել և հիմա ինչի հետ աշխատում ես?
Հարց դանդաղ ծառայության մասին Օրինակ՝ պատվերի ստեղծումը։ Կա ծառայության դիմում և պատասխան, այս երկու գործողությունների միջև մենք պահում ենք վերլուծության մեջ պատվիրած ապրանքները (օրինակ՝ ապրանքների ժողովրդականությունը հաշվելու համար): Վերլուծական ծառայությունը երբեմն աշխատում է դանդաղ կամ ժամանակավրեպ է, և մենք ժամանակին պատասխան տալու հնարավորություն չունենք, պատվերները կորցնում ենք: Ի՞նչ անել, որ այլևս չկորցնենք պատվերներն ու գումարը: Նախագծեք, թե ինչպես կարելի է պատվերը և վերլուծությունը կատարել პარալել։
Ինչպես են Go-ում սխալները մշակվում: Ինչն է տարբերությունը errors.Is և errors.As միջև?
Պատասխանատվության գոտու հստակեցում: վիճակագրական մեքենա, Transactional Outbox, օպտիմիստական արգելքներ
Նկարագրեք իրավիճակը՝ դուք չեք կարող գտնել ընդհանուր լեզու ձեր թիմի թեստավորի հետ, ով մշտապես 'ձեզ բարկացնում է'. Ինչպե՞ս կկապվեք նրա հետ։
Ի՞նչ են հաղորդագրության բրոքերները: Որոնք եք ճանաչում: Ինչպե՞ս է RabbitMQ-ն տարբերվում Kafka-ից։
Եթե անհրաժեշտ լինի հրաժարվել Kafka-ից և փոխարինել նրան այլ հաղորդագրության բրոքերի, ինչ կլինի? Ինչպես առանձնացնել Kafka-ն արտաքին ծառայություններից?
Ինչպես է աշխատում թողարկման գործընթացը: Ինչպես անցավ վերջին թողարկումը ձեր մասնակցությամբ?
Ի՞նչ պետք է անել, որպեսզի REST API սերվերը (կոդի պահոցը) սկսի աշխատել Kubernetes-ում։
Խոսիր graceful shutdown-ի մասին՝ ի՞նչ է դա, ինչ է տեղի ունենում դրա ժամանակ, ինչպես է կոչվում: Ի՞նչ գործընթացներ է իրականացնում ծառայությունը Kubernetes-ում SIGTERM ստանալուց հետո։
Որտե՞ղ եք կարծում, սկսվում է highload-ը: Ինչպե՞ս սահմանել highload և ոչ-highload սահմանը։
Դուք ունեք ծառայություն, որը ստեղծում է շատ goroutines: Ինչպե՞ս կսահմանեք միաժամանակ աշխատող goroutines-ների քանակը։
Ի՞նչ է համակարգային կանչը (syscall):
Ավելացրեք ավելի մանրամասն՝ Go նախագծերի մասին
Երբ փորձում եք առանց լրացուցիչ վերահսկողության սկսել շատ մեծ թվով goroutines (օրինակ, տասնյակ հազարներ), ինչն է ամենահավանականը տեղի ունենալ? - Հիմնական խնդիրն առաջանում է գլոբալ mutex-ի փակման պատճառով runtime-ի ներսում, ինչը կհանգեցնի ծրագրի ամբողջական կանգառի - Go պլանավորիչը կկատարի goroutine-ները փոքր խմբերով հերթականությամբ, այնպես որ դրանց թվի աճը գրեթե չի ազդի հիշողության սպառման վրա - Մասամբ ստեղծումը կարող է հանգեցնել զգալի հիշողության սպառման և պլանավորողի լրացուցիչ ծախսերի; նման դեպքերում, նպատակահարմար է օգտագործել worker pool - Եթե goroutine-ների թիվը գերազանցում է տրամաբանական պրոցեսորների թիվը, Go-ն ինքնաբերաբար կսկսի մերժել նոր goroutine-ների մեկնարկը Panic-ով
Պատմիր ինձ Kubernetes-ի մասին — ինչ է դա, ինչպե՞ս է տարբերվում Docker-ից, հիմնական բաղադրիչները ինչ են։