Типичные задачи backend разработчика

Тут я расскажу о типичных задачах, которые приходится решать бэкэнд разработчику. Всё это примеры из личного опыта. Примеры справедливы для любых языков программирования.

CRUD api

Это самая распространённая задача. CRUD- это акроним от Create Read Update Delete. Например, есть база данных в которой лежит табличка с котиками, нужно сделать апи через которую можно будет читать/обновлять/добавлять/удалять котиков. Не обязательно это классический http/REST бывает нужно юзать и вебсокеты и даже чистые udp или tcp.

На самом деле это звучит просто, но на практике, информация по котикам может лежать в mysql, какой-нибудь счётчик поглаживания котиков лежит в redis, ещё нужно спросить сторонний вебсервер, check-cat.net, который вернёт статус котика, затем с ещё 1 сторонней апи запросить геолокацию котика и только потом у нас будут полные данные по котику, которые можем отдавать на клиент. Всё это может на любом этапе развалиться, сторонние сервисы тормозят, данные с них нужно кэшировать чтобы уложиться в разумное время, свой собственный ответ тоже нужно кэшировать, чтобы особо упоротый котолюб не уложил сервер.

Кэширование

Нужно оно для снижения нагрузки на сервер. Если сервер 1 раз отдал ответ, то мы можем его сохранить куда-то (на диск, в редис), и когда придёт новый запрос за точно такими же данными, у нас уже будет готовый ответ. Не обязательно кэширование нужно впиливать где-то в коде. Часто достаточно правильно настроить nginx.

Экспорт/импорт данных

В примере с нашими котиками, у нас может появиться партнёр, которому нужно раз в сколько-то времени выгружать данные по котикам, да ещё в каком-нить хитром хитром формате. Справедлива и обратная ситуация, когда мы загружаем котиков из кой-то кривой выгрузки в свою бд.

Автоматизация рутинных задач персонала

Например, каким-то сотрудникам, ежедневно нужно скачивать/просматривать какой-то файлик, затем в зависимости от того что там содержится, клацают какие-то кнопки в интерфейсе, или звонят куда-то или отправляют почту/смс/уведомления в слак.

Или, например, если кто-то в колл центре не взял трубку 2 раза подрят, то нужно отправить куда-то уведомление. Огромное количество задач.

Анализ информации

Например, можно автоматически просматривать логи своего сервера и выискивать какие-то проблемы в работе, например увеличение времени ответа, появление ошибок. Можно брать данные из заббикса или ещё откуда-то и опять же в зависимости от показателей что-то делать.

Из тех же логов можно извлекать подозрительных посетителей/ботов, регистрировать попытки взлома/ддоса.

Сбор/обработка статистики

У статы могут быть разные источники данных, спец апи, те же логи, сторонние сервисы. Эти данные нужно где-то агрегировать и сохранять в свою собственную базу данных. Изначально сохраняются данные за короткие промежутки времени, но затем их нужно укрупнять, поскольку хранить данные за короткие промежутки времени очень накладно.



Задачи и вопросы по Javascript используемые на интервью часть 2

Это вторая часть задач по javascript, но теперь это взгляд со стороны работодателя. Это вопросы которые задаю я при собеседовании на позицию javascript developer. Я постарался перечислить их от более простых к более сложным. Вопросов не много, не обязательно они задаются все, и не обязательно в таком же порядке.

Как мы получали визу в Великобританию (2018 год)

Решили мы значит сгонять на месяцок в Англию, в Лондон этой осенью, захотелось нам хоть не на много почувствовать себя жителями нормальной страны.


(0) Комментариев