Sobes.tech

Как подходихте към версионирането на gRPC контрактите?

Senior
РамблерРамблер
76

Реализирайте получаването на топ 5 услуги в O(N) с помощта на помощна структура

Middle+
X5 groupX5 group
76

Актуализациите на документи постъпват в услугата message Document { string Url = 1; // URL на документа, неговият уникален идентификатор uint64 PubDate = 2; // обявеното време за публикуване на документа uint64 FetchTime = 3; // времето на получаване на тази актуализация на документа, може да се счита за идентификатор на версия. Пара (Url, FetchTime) е уникална. string Text = 4; // текстът на документа uint64 FirstFetchTime = 5; // първоначално липсва, трябва да се попълни } Документите могат да пристигат в произволен ред (не в реда, в който са били актуализирани), и може да има дублиращи се съобщения. Необходимо е на изхода да се формират същите съобщения, но с коригирани полета според следните правила (всичко по-долу важи за група документи със същото поле Url): Полето Text и FetchTime трябва да са такива, каквито са в документа с най-голям FetchTime, получен досега. Полето PubDate трябва да е такова, каквото е в съобщението с най-малък FetchTime. Полето FirstFetchTime трябва да е равно на минималната стойност на FetchTime. Тоест, във всеки момент взимаме PubDate и FirstFetchTime от първата версия, получена досега (ако ги сортираме по FetchTime), а Text - от последната. Интерфейсът в кода може да бъде реализиран така: type Processor interface { Process(doc *Document) (*Document, error) } Този код ще работи в услуга, която чете съобщения от опашка (Kafka или подобна), и също така записва резултата в опашката. Ако Process връща Null, нищо не се записва в опашката.

Senior
VKVK
76

Знаеш ли продукта Loop?

Middle
wilix
76

Как получаваш задачите, от кого идват?

Middle+
SelectelSelectel
76

Имате ли опит с Docker и Kubernetes? На какво ниво?

Senior
X5
76

С какви бази данни сте работили и какви SQL заявки умеете да пишете?

Middle+
Лига Цифровой ЭкономикиЛига Цифровой Экономики
76

Как използвахте Kafka и RabbitMQ като брокери? Защо два?

Senior
Ozon ФинтехOzon Финтех
76

Как да паралелизираме обработката на логове с използване на worker pool? Как да получаваме резултати от горутините?

Middle+
X5 groupX5 group
76

Какви са масивите и слайсовете в Go, как се различават? Как работи append и разширяването на capacity?

Senior
ClearWay
76

Какво е предимството на репликацията? Какви разходи носи тя?

Senior
ВайлдберрисВайлдберрис
76

Влияе ли размерът на буфера на канала върху нещо в работната група?

Senior
WildberriesWildberries
76

Как да взаимодействате с търговците, които се намират в външния контур?

Senior
Финтехробот
76

Какви средства за синхронизация има при многопоточността в Go?

Senior
I-teco
76

Какви данни съхраняваха в Redis и как разбираха, че обявите са горещи?

Senior
Cloud.ru
76

Защо да използваме интерфейси?

Middle+
Napoleon IT
76

Вижте схемата на базата данни по-горе — какво може да се добави, или всичко е наред?

Middle
СитиДрайвСитиДрайв
76

Разкажи ми за GMP модела на планировчика Go.

Middle
RWB
76

Трябва ли да се появи нова номенклатура (нов продукт) в Redis?

Senior
МВидеоМВидео
76

Разкажи за последния проект, по който работи в [компания].

Middle+
WildberriesWildberries
76
/412