Sobes.tech

Домашнее задание №2: Спроектировать REST API для социальной сети ВКонтакте со следующими операциями: • добавление и удаление друзей; • просмотр друзей пользователя; • просмотр анкеты пользователя; • публикация поста в ленту; • загрузка медиа файлов для постов; • просмотр ленты постов (домашней и пользователей); • просмотр диалогов и чатов пользователя; • отправка и чтение сообщений в диалогах и чатах. addFriend(post) POST /users/{id}/friends deleteFriend(delete) DELETE /users/{id}/friends/{friends_id} getUserFriends(get) GET /users/{id}/friends getUserForm(get) GET /users/{id}/profile createPost(post) POST /posts uploadMediaFile(post) POST /media getFeed(home/user) GET /feed GET /users/{id}/feed getDialogues(get) GET /dialogs sendMessage(post) POST /dialogs/{id}/messages getMessage(get) GET /dialogs/{id}/messages

Senior
МВидео/эльдорадо
8

/* Есть приложение с микросервисной архитектурой. Микросервис можно абстрагировать с помощью интерфейса Backend. Для доступа к одному экземпляру микросервиса можно использовать тип BackendImpl, который уже реализован. Для каждого микросервиса есть несколько десятков запущенных экземпляров, каждый из которых доступен по своему адресу addr. Однако отдельные экземпляры микросервиса ненадежны: они могут падать, быть недоступными либо перегруженными. Поэтому вам нужно реализовать тип Balancer, который также реализует интерфейс Backend и осуществляет client-side балансировку нагрузки между экземплярами микросервиса, выбирая каждый раз **наименее нагруженный** экземпляр. */ type Request interface{} type Response interface{} type Backend interface { Invoke(ctx context.Context, req Request) (Response, error) } var _ Backend = &BackendImpl{} // addr содержит ip:port конкретного экземпляра func NewBackend(addr string) *BackendImpl type Balancer struct { //TODO } var _ Backend = &Balancer{} // addrs содержат адреса всех балансируемых экземпляров func NewBalancer(addrs []string) *Balancer { //TODO }

Senior
Яндекс
8

Какие виды JOIN ты знаешь и в чём их отличие?

Senior
OZONOZON
8

Сколько лет занимаешься разработкой на Go?

Middle
МВидео/эльдорадо
8

Насколько готов к релокации на Кипр? Как изучал вопрос жизни там?

Senior
FaceApp
8

Ты сейчас работаешь в [компания] — насколько это актуально и что побудило рассмотреть новое предложение?

Middle+
AxenixAxenix
8

В чём разница между SQL и документно-ориентированными базами данных? Когда что использовать?

Middle+
ClearWay
8

Какую позицию сейчас рассматриваешь для себя, что будет интересно?

Senior
Яндекс
8

Активно ли рассматриваете предложения? Есть ли финальные этапы?

Senior
YadroYadro
8

Сейчас в Москве работаешь?

Middle
AiUP
8

Где хранится память в горутинах?

Middle+
WaterWal
8

1 Оцените правильность высказывания: существует единое общепринятое определение «Интеллектуальная система» 2 Оцените правильность высказывания: В искусственном интеллекте выделяется нисходящий подход, т.е. биологический — изучение нейронных сетей и эволюционных вычислений, моделирующих интеллектуальное поведение на основе более мелких «неинтеллектуальных» элементов. 3 Оцените правильность высказывания: нисходящий (англ. TopDown AI), семиотический подход в ИИ — создание экспертных систем, баз знаний и систем логического вывода, имитирующие высокоуровневые психические процессы: мышление, рассуждение, речь, эмоции, творчество и т. д. 4 Оцените правильность высказывания: восходящий (англ. BottomUp AI), биологический подход — изучение нейронных сетей и эволюционных вычислений, моделирующих интеллектуальное поведение на основе более мелких «неинтеллектуальных» элементов. 5 Оцените правильность высказывания: Продукционные модели ориентированы на описание ситуаций 6 Оцените правильность высказывания: Продукционные модели не ориентированы на модификацию и расширение 7 Оцените правильность высказывания: Ядром продукционного правила является система слотов и терминалов 8 Оцените правильность высказывания: Продукционные системы не могут содержать конфликтов: 9 Выберите правильное высказывание: Машина логического вывода (интерпретатор) ЭС работает в рамках: прямой стратегии решения задачи обратной стратегии решения задачи итераций «действие-идентификация» 10 Оцените правильность высказывания: Полным комплексов вопросов реализации ЭС занимается научное направление «Инженерия знаний» 11 Оцените правильность высказывания: Система искусственного интеллекта в «узком смысле» этого понятия должна полностью имитировать деятельность человеческого мозга

Middle+
OZONOZON
8

Сколько планируешь искать новую работу? Есть ли временные рамки?

Senior
wilix
8

Что такое семафор?

Senior
техвил
8

Покрывал ли сам тестами свой код?

Senior
Банк 131
8

От какой суммы готовы рассматривать предложение?

Senior
YadroYadro
8

Какие архитектурные паттерны позволяют избавиться от атомарности между микросервисами? Работала с паттерном Saga? Какие два вида Saga существуют и в чем разница?

Middle
Small
8

Можем ли мы реализовать те же REST-эндпоинты, убрав из пути слово с названием ресурса (например, 'news')?

Senior
X5 techX5 tech
8

Как сравнивать элементы в map? Как проверить, что два map совпадают?

Senior
Яндекс
8

Почему триггеры в основном используются для Legacy-систем?

Middle+
Озон банк
8
/371