Типичные задачи backend разработчика — Всё о web

Опубликовано: 02.09.2018

видео Типичные задачи backend разработчика — Всё о web

О девушках в программировании и честности. Frontend Юность в гостях у loftblog.

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



CRUD api

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


Что должен знать и уметь frontend разработчик

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


Павел Климов: примеры решения типовых задач за рамками ядра Yii2

Кэширование

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

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

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

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

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

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

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

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

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

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

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

Поделиться "Типичные задачи backend разработчика"

Рекомендуем

Сравнение скорости работы nodejs, php, python, lua, luajit

А захотелось мне протестировать, на сколько отличается скорость работы этих языков программирования. В их чистом виде, по самой простейшей задаче. Для этого создал новую, чистую виртуалку, […] Правильные белые списки для google/yandex ботов

Типичное решение для этой задачи - посмотреть логи и взять от туда ip поисковых роботов, либо ещё хуже- найти список адресов в интернетах. Но это ошибочный путь, потому что адреса серверов […] Тормоза в sequelize

Конечно, sequelize очень удобен, но за всё приходится платить. Сейчас, пару критичных к скорости кусков кода, переписываю на нативный mysql драйвер. Потому, что запрос: SELECT `id`, […] Задачи по nodejs для начинающих

Это самые простейшие задачи, для тех, кто только начинает изучать javascript, а именно nodejs. Для их решения Вам потребуется знать: как работать с переменными, if else условия, циклы for, […]
IRC (Internet Relay Chat)
rss