Подборка материалов · Junior

109 статей для Junior Backend-разработчика: большая подборка

Материалы для старта в серверной разработке: HTTP, языки и фреймворки, SQL, REST API, Git, тестирование, Docker и основы безопасности.

109 статей · 10 тем · материалы на русском языке

Как работает backend и HTTP

  1. Что выбрать новичку для домашнего веб-сервера: Nginx, Caddy или Apache

    Чтобы понимать обмен данными между браузером и сервером.

  2. Шаблон backend сервера на Golang — часть 1 (HTTP сервер)

    Чтобы понимать обмен данными между браузером и сервером.

  3. Мосты цифрового мира: клиент-сервер, сервер-сервер

    Чтобы понимать обмен данными между браузером и сервером.

  4. Слабо поднять такой крошечный контейнер? Создаем контейнеризованный HTTP-сервер на 6kB

    Чтобы одинаково запускать приложение в любой среде.

  5. Пример HTTP-сервера на PHP с использованием файберов

    Чтобы понимать обмен данными между браузером и сервером.

  6. Трехэтажные C++ные шаблоны в реализации встраиваемого асинхронного HTTP-сервера с человеческим лицом

    Чтобы выполнять долгие операции без зависания.

  7. HTTP/1 и HTTP/2 сервера на nodejs

    Чтобы понимать обмен данными между браузером и сервером.

  8. Создаём HTTP-сервер на Java NIO

    Чтобы понимать обмен данными между браузером и сервером.

  9. Простейший HTTP сервер на Golang и Elixir. Сравнение производительности

    Чтобы понимать обмен данными между браузером и сервером.

  10. RESTinio — это асинхронный HTTP-сервер. Простой пример из практики: отдача большого объема данных в ответ

    Чтобы выполнять долгие операции без зависания.

  11. Пишем высокопроизводительный http клиент на примере fasthttp. Александр Валялкин (VertaMedia)

    Чтобы понимать обмен данными между браузером и сервером.

  12. Пишем HTTP-сервер на php и сокетах

    Чтобы понимать обмен данными между браузером и сервером.

Языки и серверные фреймворки

  1. Экономика выбора: Python, Java, Go при разных RPS. Деньги или скорость?

    Чтобы выбрать стек и реализовать серверную логику.

  2. Руководство для начинающих по серверной веб-разработке с Node.js

    Чтобы выбрать стек и реализовать серверную логику.

  3. 9 лет в монолите на Node.JS

    Чтобы выбрать стек и реализовать серверную логику.

  4. Как устроены память и Garbage Collector в CPython: разбор для Python backend interview

    Чтобы выбрать стек и реализовать серверную логику.

  5. Дорожная карта Java backend-разработчика: c Junior до Middle

    Чтобы выбрать стек и реализовать серверную логику.

  6. Апгрейд и рефакторинг PHP-проектов — теперь это просто с Rector

    Чтобы выбрать стек и реализовать серверную логику.

  7. Практическое руководство по разработке бэкенд-сервиса на Python

    Чтобы выбрать стек и реализовать серверную логику.

  8. 5 неочевидных возможностей FastAPI: упрощаем работу с бэкендом на Python

    Чтобы выбрать стек и реализовать серверную логику.

  9. Фреймворк Swoole на PHP для начинающих

    Чтобы выбрать стек и реализовать серверную логику.

  10. О Web-Backend разработке для начинающих

    Чтобы выбрать стек и реализовать серверную логику.

  11. От C до Go. Как Golang объединил лучшие черты своих предшественников

    Чтобы выбрать стек и реализовать серверную логику.

  12. Архитектура современных корпоративных Node.js-приложений

    Чтобы выбрать стек и реализовать серверную логику.

Алгоритмы и структуры данных

  1. Как пройти алгоритмическое собеседование: полный гид по алгоритмам, сложностям и стратегиям

    Чтобы принимать решения на основе данных.

  2. Структуры данных и алгоритмы, которыми я пользовался, работая в технологических компаниях

    Чтобы принимать решения на основе данных.

  3. LJV: Чему нас может научить визуализация структур данных в Java

    Чтобы принимать решения на основе данных.

  4. Как я изучал структуры данных и алгоритмы для собеседования в FAANG

    Чтобы принимать решения на основе данных.

  5. JavaScript: структуры данных и алгоритмы. Часть 3

    Чтобы принимать решения на основе данных.

  6. Выбор структур данных для самописного текстового редактора

    Чтобы принимать решения на основе данных.

  7. JavaScript: структуры данных и алгоритмы. Часть 4

    Чтобы принимать решения на основе данных.

  8. Как я написал алгоритм сортировки, который быстрее std::sort. Продолжение

    Чтобы принимать решения на основе данных.

  9. Коротко про алгоритмы и структуры данных

    Чтобы принимать решения на основе данных.

  10. JavaScript: структуры данных и алгоритмы. Часть 1

    Чтобы принимать решения на основе данных.

  11. Сложность алгоритмов. Разбор Big O

    Чтобы принимать решения на основе данных.

  12. JavaScript: структуры данных и алгоритмы. Часть 2

    Чтобы принимать решения на основе данных.

SQL и реляционные базы данных

  1. Выбор индексов в базах данных для highload‑систем

    Чтобы получать и изменять данные запросами.

  2. Погружаемся в базы данных и SQL: полезные материалы и инструменты от сотрудников Selectel

    Чтобы получать и изменять данные запросами.

  3. Сравнение SQL- и NoSQL-баз данных

    Чтобы получать и изменять данные запросами.

  4. «Postgres. Первое знакомство» (11-е издание) надёжный проводник в мир PostgreSQL

    Чтобы получать и изменять данные запросами.

  5. B-Tree индекс и его производные в PostgreSQL

    Чтобы получать и изменять данные запросами.

  6. Больше разработчиков должны знать это о базах данных

    Чтобы получать и изменять данные запросами.

  7. Здоровье индексов в PostgreSQL глазами Java-разработчика

    Чтобы получать и изменять данные запросами.

  8. TimescaleDB против всех: как база данных справляется с рядом сложных задач

    Чтобы получать и изменять данные запросами.

  9. Погружение в индексы PostgreSQL

    Чтобы получать и изменять данные запросами.

  10. Self-modifying SQL: динамическое изменение SQL-кода в процессе выполнения

    Чтобы получать и изменять данные запросами.

  11. Виды баз данных. Большой обзор типов СУБД

    Чтобы получать и изменять данные запросами.

  12. Распространённые ошибки изменения схемы базы данных PostgreSQL (Николай Самохвалов)

    Чтобы получать и изменять данные запросами.

REST API и работа с данными

  1. JSON:API 一 это не JSON API

    Чтобы передавать структурированные данные между системами.

  2. Валидация тела ответа с помощью JSON-Schema

    Чтобы передавать структурированные данные между системами.

  3. REST API на котиках

    Чтобы проектировать понятные и стабильные API.

  4. Принципы построения REST JSON API

    Чтобы передавать структурированные данные между системами.

  5. Проектирование REST API: спорные вопросы с проектов и собеседований на системного аналитика (и не только)

    Чтобы проектировать понятные и стабильные API.

  6. JSON API – работаем по спецификации

    Чтобы передавать структурированные данные между системами.

  7. Безопасность REST API от А до ПИ

    Чтобы проектировать понятные и стабильные API.

  8. Как проектировать качественные API

    Чтобы проектировать понятные и стабильные API.

  9. Создание RESTful API с помощью Django и Django REST Framework

    Чтобы проектировать понятные и стабильные API.

  10. Полный набор gRPC, RESTful JSON API, WS и Swagger из одного proto файла. От введения до нюансов и тонкостей grpc-gateway

    Чтобы передавать структурированные данные между системами.

  11. Json api сервис на aiohttp: middleware и валидация

    Чтобы передавать структурированные данные между системами.

  12. Как написать свою первую спецификацию на REST API. С какими ошибками может столкнуться аналитик и как их избежать?

    Чтобы проектировать понятные и стабильные API.

Git, Linux и командная строка

  1. Linux: Файлы, навигация и поиск

    Чтобы контролировать изменения и работать в команде.

  2. Linux: Процессы

    Чтобы контролировать изменения и работать в команде.

  3. Linux для начинающих: WSL — это читерство. Как Microsoft дал нам Linux без головной боли

    Чтобы контролировать изменения и работать в команде.

  4. Git для самых маленьких. От первой команды до настройки SSH

    Чтобы контролировать изменения и работать в команде.

  5. Bash-скрипты, часть 3: параметры и ключи командной строки

    Чтобы контролировать изменения и работать в команде.

  6. Linux для начинающих: WSL — это читерство. Как Microsoft дал нам Linux без головной боли. Часть 2

    Чтобы контролировать изменения и работать в команде.

  7. SSH с высоты птичьего полёта, или разгребаем кучи ключей

    Чтобы контролировать изменения и работать в команде.

  8. Дисковая подсистема в ОС Linux

    Чтобы контролировать изменения и работать в команде.

  9. Linux: Права доступа

    Чтобы контролировать изменения и работать в команде.

  10. Скрытая сила терминала или почему всем нужно уметь работать через командную строку

    Чтобы контролировать изменения и работать в команде.

  11. Руководство по администрированию Linux для начинающих

    Чтобы контролировать изменения и работать в команде.

  12. Linux: Пользователи и группы

    Чтобы контролировать изменения и работать в команде.

Тестирование и отладка

  1. Как писать юнит-тесты, если совсем не хочется

    Чтобы находить ошибки до выпуска продукта.

  2. Как упростить себе жизнь: удобные юнит-тесты с JUnit и AssertJ

    Чтобы находить ошибки до выпуска продукта.

  3. От Jest к Vitest на backend тестах: как мы мигрировали тестовый фреймворк для ускорения CI и повышения стабильности

    Чтобы находить ошибки до выпуска продукта.

  4. Как провести нагрузочное тестирование правильно. Часть 1: как думать о тестировании производительности

    Чтобы находить ошибки до выпуска продукта.

  5. Как перестать беспокоиться и начать внедрять интеграционные тесты

    Чтобы находить ошибки до выпуска продукта.

  6. Гайд по автотестам, часть 2. Юнит-тесты

    Чтобы находить ошибки до выпуска продукта.

  7. Shift-Left тестирование с Testcontainers: ловим баги на ранних этапах локальными интеграционными тестами

    Чтобы находить ошибки до выпуска продукта.

  8. Единый формат тестовых данных. Или как ускорить разработку интеграционных тестов

    Чтобы находить ошибки до выпуска продукта.

  9. Record-and-Replay тестирование — сочетание достоинств юнит и интеграционных тестов

    Чтобы находить ошибки до выпуска продукта.

  10. Оценка тестового покрытия интеграционных тестов с помощью JaCoCo. Инструкция к применению

    Чтобы находить ошибки до выпуска продукта.

  11. Что такое pytest и как его использовать? Или как новичку начать автоматизировать тестирование?

    Чтобы находить ошибки до выпуска продукта.

  12. Инструментарий для анализа и отладки .NET приложений

    Чтобы находить ошибки до выпуска продукта.

Docker и первая публикация

  1. Основы Docker: контейнеризация, Dockerfile и Docker Compose. Часть 2

    Чтобы одинаково запускать приложение в любой среде.

  2. Docker изнутри: исчерпывающее руководство. Механизмы контейнеризации + примеры, эксперименты и реализация

    Чтобы одинаково запускать приложение в любой среде.

  3. Docker Fundamentals: что внутри compose.yaml и как там всё устроено

    Чтобы одинаково запускать приложение в любой среде.

  4. Docker Compose: Фичи, которые ускорят вашу разработку

    Чтобы одинаково запускать приложение в любой среде.

  5. Управление временем контейнера с помощью docker-compose и faketime

    Чтобы одинаково запускать приложение в любой среде.

  6. Пишем простой docker-compose.yml для контейнеризации приложения (React, Spring Boot, PostgreSQL, pgAdmin)

    Чтобы одинаково запускать приложение в любой среде.

  7. Настройка cервера с помощью docker для простых проектов. Часть вторая: docker-compose

    Чтобы одинаково запускать приложение в любой среде.

  8. Как я реализовал Blue-Green деплой с нулевым даунтаймом на Docker Compose

    Чтобы одинаково запускать приложение в любой среде.

  9. Шаблон backend сервера на Golang — часть 3 (Docker, Docker Compose, Kubernetes (kustomize)

    Чтобы одинаково запускать приложение в любой среде.

  10. Зачем рассказывать про контейнеризацию в 2023 году

    Чтобы одинаково запускать приложение в любой среде.

  11. Docker для новичков — #3 Что нужно знать о Docker compose

    Чтобы одинаково запускать приложение в любой среде.

  12. Быстрый запуск PostgreSQL через Docker Compose

    Чтобы одинаково запускать приложение в любой среде.

Безопасность серверного приложения

  1. Азбука безопасности в Kubernetes: аутентификация, авторизация, аудит

    Чтобы снизить риски и защитить систему.

  2. Пишем gRPC сервис на Go — сервис авторизации

    Чтобы снизить риски и защитить систему.

  3. Простой сервис аутентификации и авторизации по JWT на основе фильтров SpringSecurity

    Чтобы снизить риски и защитить систему.

  4. Как правильно хешировать пароли в высоконагруженных сервисах. Опыт Яндекса

    Чтобы снизить риски и защитить систему.

  5. SmartFlow: «В начале был пароль…» или новая аутентификация VK ID

    Чтобы снизить риски и защитить систему.

  6. Соль и перец в безопасности паролей

    Чтобы снизить риски и защитить систему.

  7. Всё, что вы хотели знать о безопасном сбросе паролей. Часть 1

    Чтобы снизить риски и защитить систему.

  8. OWASP ZAP для начинающих: как провести аудит безопасности веб-приложений

    Чтобы снизить риски и защитить систему.

  9. Анализ безопасности хранения и хеширования паролей при помощи алгоритма MD5

    Чтобы снизить риски и защитить систему.

  10. Обзор OWASP ZAP. Сканер для поиска уязвимостей в веб-приложениях

    Чтобы снизить риски и защитить систему.

  11. Идентификация, Аутентификация, Авторизация. В чем же разница?

    Чтобы снизить риски и защитить систему.

  12. Taneleer на смену Thanos – как мы поменяли подход к обнаружению скомпрометированных паролей

    Чтобы снизить риски и защитить систему.

Организация работы

  1. Декомпозиция целей и задач

    Чтобы превращать цели в понятные задачи.

Все подборки для Backend-разработчика →