backend-cheats/README.md
2022-02-28 08:31:20 +03:00

8.5 KiB
Raw Blame History

Backend cheats

Данный репозиторий представляет собой наглядную шпаргалку по основным темам в области Backend-разработки. Весь материал разбит на темы и подтемы. Структура материала состоит из 3 частей:

  • Визуальная часть - различные изображения/таблицы для лучшего понимания (может отсутствовать). Все рисунки и таблицы сделаны с нуля, специально для этого репозитория.
  • Краткое описание - очень краткая выжимка информации, позволяющая понять лишь основную суть.
  • Ссылки на источники - ресурсы с полной информацией по конкретному вопросу. По возможности мы стараемся указывать максимально авторитетные источники, либо же те, которые предоставляют информацию максимально простым и понятным языком.

Содержание

Сеть и интернет

Интернет - это всемирная система объединяющая компьютерные сети со всего мира в единую сеть для хранения/передачи информации. К началу 2020 года количество пользователей в сети Интернет перевалило за 4.5 млрд человек.

Интернет — Википедия (wikipedia.org)

История Интернета — Википедия (wikipedia.org)

  • Как устроен Интернет

Ваш компьютер никогда не был связан с Интернетом напрямую. Вместо этого, он видит только свою локальную сеть, в которую проводным (Ethernet) или беспроводным (Wi-Fi, Bluetooth) путем подключены другие устройства.

Для связи с Интернетом в вашей локальной находиться специальный мини-компьютер - маршрутизатор. Далее этот маршрутизатор связывает вас с интернет-провайдером, который в свою очередь связан с другими провайдерами более высокого уровня. Таким образом, ваше сообщение, пройдя транзитом через сеть нескольких провайдеров, достигнет сеть назначения.

Как работает Интернет - MDN (mozilla.org)

Основы программирования. Как работают сети? - YouTube

  • Браузеры и как они работают

Большинство пользователей используют именно браузеры для работы в сети Интернет. Браузер - это клиент, с помощью которого можно отправлять запросы на сервер для получения файлов, которые впоследствии используются для отрисовки web-страниц.

Как работают браузеры - MDN (mozilla.org)

  • Что такое DNS

DNS (Domain Name System) - это децентрализованная система именования интернет-ресурсов, которая позволяет создавать удобные для человека буквеные наименования соответствующие числовым IP-адрессам, которые используются компьютерами.

DNS

Система доменных имен DNS | Курс "Компьютерные сети" - YouTube

DNS — Википедия (wikipedia.org)

  • Что такое доменное имя

  • Хостинг

  • TCP протокол

  • UDP протокол

  • Проблемы сети

  • IPv4 и IPv6

  • Трассировка маршрутов

Протокол HTTP

  • Формат протокола

  • Методы HTTP-запросов

  • Коды ответов

  • Заголовки

  • CORS

  • CSP

  • Безопасность (HTTPS)

  • Различия HTTP 1.0 и HTTP 1.1

  • HTTP 2

  • HTTP 3

  • Откладка сети в Chrome Dev Tools

  • Работа с HTTP через терминал

  • WebSockets

  • API форматы

  • Web сервера

    • NGNX

    • Apache httpd

Общие знания

  • Структуры данных

    • Хэш-таблицы

    • Очередь и стек

    • Связанные списки

    • Двусвязные списки

  • Форматы хранения данных

  • Текстовые

JSON, YAML, XML

  • Бинарные

Message Pack, BSON, ProtoBuf

  • Криптография

    • Хэши и хеш-функции

    • Цифровые подписи

    • Соль для подписей

    • Коллизия хэшей

Язык программирования

Выберите для изучения один из языков (спсиок составлен по моему личному мнению):

  • Базовые знания

    • Примитивные типы данных

    • Функции

    • Набор, массив, хеш-таблица, кортеж

    • Объекты/классы/структуры, прототипы/интерфейсы/миксины

    • Ссылки, указатели

    • Область видимости переменных

    • Сборщик мусора

    • Преобразование типов

    • Слабая/сильная типизация в коде

    • Битовые операции

    • Обработка ошибок

  • Распараллеливание

    • Процессы

    • Потоки

    • КоРутины

    • Проблемы распараллеливания

    • Атомарные операции

    • Блокировки

  • Пакетный менеджер

  • Отладчик

  • Запуск HTTP-сервера

  • Кэширование

  • Шаблонизация

  • Ввод / Вывод (IO)

Базовое ПО

  • Система контроля версий Git

  • Контейнеризация и Docker

  • Postman / Insomnia

Базы данных

  • Реляционные базы данных

  • Документоориентированные базы данных

  • Redis

  • Проблемы баз данных

Дополнительные материалы и источники