Для большинства моих задач на Backend, требуется понимание того как работает се…
👁 581↗ 5
Примерно 80% сводится к тому, чтобы построить маршрут:
(от клиента) -> (до данных).
И когда я планирую какой-нибудь сервис, все можно описать следующими вопросами:
1.Как клиент будет взаимодействовать с приложением (сервером)?
Например: Rest API, WebSocket, gRPC, SSE, SSH и так далее.
2.Какие данные клиент передает и получает?
Например: Текст или файлы.
3.Как должны обрабатываться запросы?
Например: Синхронно или асинхронно.
4.Где хранить эти данные?
Например: Если файлы, то файловое хранилище, если текст, то база данных, хотя можно и в файловом хранилище (Why Not?!)
И дальше надо описать как должно быть запущено наше приложение.
Если это обычное веб-приложение, то чаще всего используется Docker, который запускает приложение на любом незарезервированном порту (:3000, :4000, :8080 и так далее).
И также нам необходим сам веб-сервер. Популярное решение сейчас это nginx. Его задача слушать внешний стандартный порт 80 или 443(для SSL) и перенаправлять все запросы на тот или иной локальный порт. Перенаправление происходит за счет двух параметров Host и Location.
Вот и получается, что Backend-разработка это про построение маршрутов от клиента до данных. Дальше уже необходимо изучать все тонкости этой деятельности связанные с безопасностью, стандартизацией, best practice.
Многие думают что backend-разработка, это про код. Ничего подобного, код занимает может только процентов 15. Научитесь строить маршруты, хотя бы самым примитивным образом, это уже сделает вас на порядок выше других "кодеров". Если вам нужна была дорожная карта для перехода в Backend, то вот она.
Небольшая история из жизни:
Мне понадобилось сделать собственный почтовый сервис, что-то похожее на temp-mail, чтобы генерировать бесконечное множество почтовых адресов на своем домене. (Для каких целей это понадобилось, не так важно).
Тут оказалось, что вся задача сводилась к тому же. Построить маршрут, от клиента, который присылает сообщение на порт 25 или 587(для SSL). Обработать это сообщение, путем парсинга и например записать в БД.
А чтобы другие сервисы знали куда слать это сообщение, нужно на домене прописать MX запись и это опять же про построение маршрута.
И тут можно похоливарить, на тему, нужно ли погружаться в devOps, backend-разработчику. Мой ответ: ДА!
!💬Telegram !📹 Youtube
15