Golang
Готов ли си да работиш според Трудовия кодекс на Руската федерация?
Как се съхраняват данните в старите карти на Go след определянето на bucket?
Какво е добър код?
Какви са горутините? Как се различават от обикновените нишки (threads)?
Защо излезе на пазара и какво е важно сега при избора на нов работодател, нов проект? Има ли принципна разлика между финтех и търговия на дребно?
Как да реализираме обратната страна — патърна Inbox от страната на услугата за известия? Как да осигурим идемпотентността на обработката на събитията?
Какво те интересува сега, какво търсиш за себе си?
/* Има два сървъра PostgreSQL: * PROD - OLTP сървър, * STATS - сървър за дълги аналитични заявки. На текущия сървър, в базата данни prod, има голяма таблица (10Tb) със следната структура: CREATE TABLE profiles( id SERIAL, data JSONB ) В таблицата могат да има "дупки", т.е. някои `id` могат да липсват. Трябва да напишете програма за копиране на таблицата profiles от PROD към STATS. Предполага се, че ще се използват следните интерфейси за работа с базите данни: type Row []interface{} type Database interface { // реализацията на интерфейса Database може да възстанови връзките // извикването на SaveRows е идемпотентно io.Closer GetMaxID(ctx context.Context) (uint64, error) LoadRows(ctx context.Context, minID, maxID uint64) ([]Row, error) // [minID, maxID] SaveRows(ctx context.Context, rows []Row) error } func Connect(ctx context.Context, dbname string) (Database, error) // CopyTable // Ако full=false, продължете прехвърлянето на данни от мястото на предишната грешка // Ако full=true, прехвърлете всички данни func CopyTable(fromName string, toName string, full bool) error { // ... вашият код } Ако е зададена опцията `full=false`, програмата трябва да продължи прехвърлянето на данни от мястото на предишната грешка. Ако `full=true`, трябва да прехвърли всички данни. **Основно ниво**: - последователен пренос на данни в един поток - възстановяване след грешка (опция `full=false`) Допълнителна информация: - ако е необходимо, можете да разширите интерфейса, като добавите свои методи - ако е необходимо, можете да използвате директно пакета **database/sql**
Какво правехте с отстъпването на потребителя (consumer lag) при пренастройка или спиране на услугата?
Общо впечатление от интервюто, ниво на кандидата, препоръки
Имали ли сте някога нужда да програмирате на C?
Има функция, която преминава през контейнер и брои елементите по-малки от 42. Ако я извикате върху масив и върху свързан списък с едни и същи данни, какво ще покаже секундомерът?
// Въпрос 1. Какво ще се покаже на екрана? package main import "fmt" func main() { s := "Hello world" s[0] = "h" if err != nil { fmt.Println("Грешка", err) } fmt.Println(s) }
Какво ще се случи в края с дължината на масива при конкурентно добавяне от 1000 горутини?
Дойде доставка в склада, после това от склада бяха натоварени 5 броя в колата. Как ще протече потокът в информационната система?
Условие Има 3 същности - потребител, чат, съобщение • Потребителят има име и дата на регистрация • Чатът има име и дата на създаване • Съобщението има текст, автор и дата на създаване • Потребителят може да участва в няколко чата едновременно • Съобщението задължително принадлежи към чат и не може да принадлежи към повече от един чат едновременно • Трябва да се опише предметната област под формата на таблици
Къде се разполагат променливите в Go — в стека или в купчината? Какво е escape анализът?
Реализирайте функция, която приема []any и delta int. Необходимо е да увеличите с delta само първите срещания на уникални числа (int). Други типове и повторни числа оставете без промяна. Функцията трябва да върне актуализирания списък и 2 числа: updated – колко уникални числа са били променени, duplicates – колко числови елемента се оказаха дублиращи се func IncrementUniqueIntsInMixed(xs []any, delta int) ([]any, int, int) { // вашият код } // Пример: xs := []any{1, "a", 5, "b", 1, 0, 5} u, d, s := IncrementUniqueIntsInMixed(xs, 3) // xs == []any{4, "a", 8, "b", 1, 3, 5} // u == 3 // уникални числа: 1, 5, 0 // d == 2 // повторни числа: втори 1, втори 5
Какво е Mutex и RWMutex? Как се различават?
Как се чувстваш в екипа по ниво? Какво ти липсва, за да достигнеш пълноправна позиция на старши?