109 статей для Senior Fullstack-разработчика: большая подборка
Инженерные разборы сложных приложений: архитектура, распределённые системы, SSR, высокая нагрузка, события, наблюдаемость, безопасность, платформы и технический долг.
Архитектура системы
- Верхнеуровневая архитектура фронтенда. Лекция Яндекса
Чтобы принимать устойчивые архитектурные решения.
- Архитектура фронтенда и какой она должна быть
Чтобы принимать устойчивые архитектурные решения.
- Domain-Driven Design: чистая архитектура снизу доверху
Чтобы принимать устойчивые архитектурные решения.
- Как создать архитектуру фронтенд-приложения, если ее нет от слова «совсем»
Чтобы принимать устойчивые архитектурные решения.
- Архитектура фронтенда, к которой мы пришли
Чтобы принимать устойчивые архитектурные решения.
- Чистая архитектура фронтенд приложений. Часть первая
Чтобы принимать устойчивые архитектурные решения.
- Итоги двадцати лет работы — технический долг и неподдерживаемый код
Чтобы принимать устойчивые архитектурные решения.
- Технический долг захватил глобальную экономику
Чтобы принимать устойчивые архитектурные решения.
- Как я пришел от architecture as code к живой архитектурной модели
Чтобы принимать устойчивые архитектурные решения.
- Что будет, если скрестить конструирование компиляторов, DDD и Clean Architecture? Опыт HydraScript
Чтобы принимать устойчивые архитектурные решения.
- Архитектура микросервисов
Чтобы принимать устойчивые архитектурные решения.
- Когда технический долг и legacy-системы тянут CIO вниз
Чтобы принимать устойчивые архитектурные решения.
Распределённость и границы приложений
- Микрофронтенды в hh.ru
Чтобы разделять систему и контролировать связи сервисов.
- Микровселенная безумия, или Как устроены микрофронтенды в Dodo
Чтобы разделять систему и контролировать связи сервисов.
- Микрофронтенды с Module Federation: истории внедрения в готовый проект и создания с нуля
Чтобы разделять систему и контролировать связи сервисов.
- Микрофронтенды — универсальное решение всех проблем или просто удобный подход?
Чтобы разделять систему и контролировать связи сервисов.
- Готовим микрофронтенды на чистом JS без фреймворков
Чтобы разделять систему и контролировать связи сервисов.
- Гайд по микрофронтендам на single-spa, или Как уже наконец-то уйти от монолита во фронтенде
Чтобы разделять систему и контролировать связи сервисов.
- Алгоритмы консенсуса Paxos, Raft и Zab в распределённых системах
Чтобы разделять систему и контролировать связи сервисов.
- Во что обойдется линеаризуемость в распределенной системе
Чтобы разделять систему и контролировать связи сервисов.
- Кот Шрёдингера без коробки: проблема консенсуса в распределённых системах
Чтобы разделять систему и контролировать связи сервисов.
- Распределённая конференция о распределённых системах: анонс Hydra 2021
Чтобы разделять систему и контролировать связи сервисов.
- Распределённые транзакции в микросервисах: от SAGA до Two‑Phase Commit
Чтобы разделять систему и контролировать связи сервисов.
- О ключах идемпотентности
Чтобы разделять систему и контролировать связи сервисов.
SSR, API и микросервисы
- Производительность фронтенда: большое приложение на реактивном SSR-топливе
Чтобы ускорить первую загрузку и улучшить SEO.
- Масштабирование SSR-приложений
Чтобы ускорить первую загрузку и улучшить SEO.
- CSR, SSG, SSR — про рендеринг приложений на примерах
Чтобы ускорить первую загрузку и улучшить SEO.
- Утечки памяти в SSR: причины, поиск, устранение
Чтобы ускорить первую загрузку и улучшить SEO.
- Собираем свою библиотеку для SSR на React. Роутинг
Чтобы собирать интерфейс из переиспользуемых компонентов.
- Заметки теоретика. Платформенная инженерия: Как выбрать тип платформы для вашей компании?
Чтобы ускорить первую загрузку и улучшить SEO.
- Разбираемся в проектировании микросервисов. Основные паттерны (Часть 1)
Чтобы ускорить первую загрузку и улучшить SEO.
- Библиотека разработчика микросервисов. Полезные книги на русском языке
Чтобы ускорить первую загрузку и улучшить SEO.
- Распутывание микросервисов или балансировка сложности в распределенных системах
Чтобы ускорить первую загрузку и улучшить SEO.
- Как мы в ПСБ с монолита на микросервисы переходили: шаблоны, нюансы, чек-листы от команды системных аналитиков
Чтобы ускорить первую загрузку и улучшить SEO.
- Что такое платформенная инженерия: как она связана с DevOps и SRE?
Чтобы ускорить первую загрузку и улучшить SEO.
- Архитектурные антипаттерны в микросервисах и способы их избежания
Чтобы ускорить первую загрузку и улучшить SEO.
Производительность и высокая нагрузка
- Управление памятью
Чтобы выдерживать рост трафика и данных.
- Производительность веб-приложений в бизнесе
Чтобы выдерживать рост трафика и данных.
- Оптимизация производительности фронтенда. Часть 1. Critical Render Path
Чтобы выдерживать рост трафика и данных.
- Долг оптимизацией красен: как мы в МойОфис объединили борьбу с легаси и увеличение производительности таблиц
Чтобы выдерживать рост трафика и данных.
- Производительность React‑приложений: от лишних ререндеров до виртуализации списков
Чтобы собирать интерфейс из переиспользуемых компонентов.
- Используем JS Self-Profiling API для профилирования фронтенда на клиентах
Чтобы выдерживать рост трафика и данных.
- Балансировка нагрузки и масштабирование долгоживущих соединений в Kubernetes
Чтобы выдерживать рост трафика и данных.
- NSX Advanced Load Balancer – умный автомасштабируемый балансировщик нагрузки. Часть 1: архитектура и особенности
Чтобы выдерживать рост трафика и данных.
- Первый HighLoad Cup: как мы это пережили
Чтобы выдерживать рост трафика и данных.
- Введение в современную сетевую балансировку и проксирование
Чтобы выдерживать рост трафика и данных.
- Балансировка нагрузки: проблемы, решения, практические рекомендации
Чтобы выдерживать рост трафика и данных.
- Сравнение алгоритмов балансировки нагрузки: Round Robin vs. Least Connections vs. IP Hash
Чтобы выдерживать рост трафика и данных.
Данные, очереди и события
- Целостность данных в микросервисной архитектуре — как её обеспечить без распределенных транзакций и жёсткой связности
Чтобы обрабатывать задачи асинхронно и надёжно.
- Горизонтальное масштабирование базы данных. Репликация. Партицирование. Шардирование
Чтобы обрабатывать задачи асинхронно и надёжно.
- Как правильно выбрать базу данных для разработки: понимание моделей репликации
Чтобы обрабатывать задачи асинхронно и надёжно.
- Оптимизация реляционных баз данных без даунтайма на примере самой нагруженной БД в Badoo
Чтобы обрабатывать задачи асинхронно и надёжно.
- Репликация в PostgreSQL: Write-Ahead Logging (WAL) и Logical Replication
Чтобы обрабатывать задачи асинхронно и надёжно.
- CDC и логическая репликация для баз данных, реализованных на стеке open source-решений
Чтобы обрабатывать задачи асинхронно и надёжно.
- Авторизация в Kafka: управление изменениями, когда у тебя тысячи клиентов и миллионы RPS
Чтобы обрабатывать задачи асинхронно и надёжно.
- Как подключить Kafka UI к кластеру Kafka в DBaaS
Чтобы обрабатывать задачи асинхронно и надёжно.
- Apache Kafka в гарантиях или как надежно доставить сообщение
Чтобы обрабатывать задачи асинхронно и надёжно.
- Kafka для начинающих: работа с Kafka транзакциями на практике — когда они нужны, а когда только вредят?
Чтобы обрабатывать задачи асинхронно и надёжно.
- Kafka для начинающих: Гарантии доставки на практике и идемпотентность
Чтобы обрабатывать задачи асинхронно и надёжно.
- Микросервисы на основе событий с Kafka Streams и Spring Boot
Чтобы обрабатывать задачи асинхронно и надёжно.
Наблюдаемость и эксплуатация
- Строим систему для мониторинга качества frontend-проектов
Чтобы быстро находить причины сбоев.
- Как и зачем проводить интегральный мониторинг SSR-приложений
Чтобы быстро находить причины сбоев.
- Сбор данных мониторинга из Frontend JS приложений используя Grafana Faro
Чтобы быстро находить причины сбоев.
- Мониторинг и SLA на фронтенде: где брать метрики и как не высасывать из пальца SLI
Чтобы быстро находить причины сбоев.
- SLO-Scout: AI для автоматического создания SLO и SLA в SRE
Чтобы быстро находить причины сбоев.
- «Цель SRE — надёжная система». Обзор основных метрик SRE
Чтобы быстро находить причины сбоев.
- Практические истории из наших SRE-будней. Часть 6
Чтобы быстро находить причины сбоев.
- Как Лёха стал инженером по SRE: выдуманная история про невыдуманные проблемы
Чтобы быстро находить причины сбоев.
- CNCF White Paper по observability: инструменты, виды, стратегии и проблемы
Чтобы быстро находить причины сбоев.
- 6 практических историй из наших SRE-будней
Чтобы быстро находить причины сбоев.
- Наблюдаемость сетевой инфраструктуры Kubernetes. Часть первая
Чтобы быстро находить причины сбоев.
- Инцидент-менеджмент с нуля: практический гайд для растущих команд
Чтобы быстро находить причины сбоев.
Безопасность и доступность
- Браузер на страже API-запросов: строим безопасное общение фронтенда с бэкендом
Чтобы интерфейсом могли пользоваться все.
- Памятка и туториал по HTTP-заголовкам, связанным с безопасностью веб-приложений
Чтобы интерфейсом могли пользоваться все.
- Веб-безопасность 201
Чтобы интерфейсом могли пользоваться все.
- Веб-безопасность 202
Чтобы интерфейсом могли пользоваться все.
- Frontend Security: о чем вы хотели бы забыть, но не сможете
Чтобы интерфейсом могли пользоваться все.
- Подробная настройка Content Security Policy (CSP)
Чтобы интерфейсом могли пользоваться все.
- Как работает безопасность, когда никто никому не доверяет — Zero Trust на пальцах
Чтобы интерфейсом могли пользоваться все.
- От Threat Modeling до безопасности AWS: 50+ open-source инструментов для выстраивания безопасности DevOps
Чтобы интерфейсом могли пользоваться все.
- Cloud Trust vs Zero Trust: стандарты безопасности в гибридном окружении
Чтобы интерфейсом могли пользоваться все.
- Zero Trust для подрядного доступа: четыре слоя Identity, Device, Access и Monitoring
Чтобы интерфейсом могли пользоваться все.
- Актуальные угрозы безопасности в Large Language Model Applications
Чтобы интерфейсом могли пользоваться все.
- От защиты периметра к Zero Trust. Как NAC-системы обеспечивают защиту и контроль доступа в корпоративной сети
Чтобы интерфейсом могли пользоваться все.
Платформа, сборка и доставка
- Разработка в монорепозитории. Доклад Яндекса
Чтобы стандартизировать сборку и доставку приложений.
- Как мы сетапили монорепозиторий с SSR и SPA для Otus.ru
Чтобы стандартизировать сборку и доставку приложений.
- Angular Libs как монорепозиторий: начало, настройка, работа с assets
Чтобы стандартизировать сборку и доставку приложений.
- Angular Libs как монорепозиторий 2: tree shaking и сборка клонов
Чтобы стандартизировать сборку и доставку приложений.
- Монорепозиторий с pnpm и typescript для фронтенда на React и бэкенда на Node.js
Чтобы собирать интерфейс из переиспользуемых компонентов.
- Обзор операторов PostgreSQL для Kubernetes. Часть 1: наш выбор и опыт
Чтобы стандартизировать сборку и доставку приложений.
- Как мы тестируем Kubernetes‑операторы в MWS Cloud Platform
Чтобы стандартизировать сборку и доставку приложений.
- Внедрение Kubernetes-операторов в корпоративных средах
Чтобы стандартизировать сборку и доставку приложений.
- DEVops: Разрабатываем свой Kubernetes оператор с кастомными ресурсами на Go
Чтобы стандартизировать сборку и доставку приложений.
- Разработка Kubernetes оператора с Operator Framework
Чтобы стандартизировать сборку и доставку приложений.
- Сказ о том, как мы Tarantool Kubernetes Operator писали
Чтобы стандартизировать сборку и доставку приложений.
- Операторы в Kubernetes
Чтобы стандартизировать сборку и доставку приложений.
Миграции, технический долг и ревью
- Миграция на Vue 3 начинается не с кода: как донести важность и подготовить проект
Чтобы обновлять кодовую базу без поломок.
- Бесшовная миграция монолитного фронтенда для критически важного бизнес-продукта
Чтобы обновлять кодовую базу без поломок.
- Typescript в hh.ru
Чтобы находить ошибки типов до запуска.
- Как перенести на TypeScript большую кодовую базу React UI-компонентов
Чтобы собирать интерфейс из переиспользуемых компонентов.
- Практики хорошего code review, или что такое code review за 15 минут. Доклад Никиты Соболева на DUMP в Казани
Чтобы обновлять кодовую базу без поломок.
- Code Review – зачем и как использовать в команде?
Чтобы обновлять кодовую базу без поломок.
- Code Review. 80 lvl
Чтобы обновлять кодовую базу без поломок.
- Code review: почему мы до сих пор его используем и какие альтернативы?
Чтобы обновлять кодовую базу без поломок.
- ADR (Architecture Decision Record) или Мы же теперь умные?
Чтобы обновлять кодовую базу без поломок.
- Архитектурные решения в backend: 5 практических приёмов, которые помогают держать баланс
Чтобы обновлять кодовую базу без поломок.
- Ловушка семантики и атрибутивных конструкций, или Почему architecture decision — это не архитектурное и не решение?
Чтобы обновлять кодовую базу без поломок.
- Технический долг как тетрис
Чтобы обновлять кодовую базу без поломок.
Техническое лидерство
- Что такое Загруженность команды: как использовать и для чего
Чтобы улучшить совместную работу и развитие команды.