Начать проект

Обсудим проект?

Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь с политикой конфиденциальности.

Отправлено!

Спасибо за заявку, мы свяжемся с вами в ближайшее время!

Стек технологий для разработки: как выбрать

Стек технологий — фронтенд, бэкенд, базы данных и инфраструктура

Заказчику приходит предложение: «сделаем на Node.js и MongoDB» — и проверить это нечем, кроме доверия. А через год выясняется, что разработчика, который всё это писал, заменить некем, а данные, которые оказались строго табличными, живут в базе, не рассчитанной на такие связи. Мы в Code Pilots делаем продукты под процесс заказчика больше десяти лет и знаем: технологии редко бывают плохими сами по себе — они бывают выбранными не под задачу.

Если совсем коротко. Стек технологий — набор языков, фреймворков, баз данных и инфраструктуры, на которых работает продукт. Выбирают его по задаче, доступной команде и рынку найма, а не по новизне.

Практические ориентиры: под контентные и e-commerce проекты берут PHP-стек, под данные и ML — Python, под высокие нагрузки и сервисы — Go, под мобильное — Flutter или нативную разработку. Обязательные ограничения в России 2026 — локализация персональных данных и требования реестра отечественного ПО для госзаказа и КИИ.

Что такое стек технологий и из чего он состоит

Стек — это все технологии, на которых продукт написан и работает. Слово прижилось потому, что технологии складываются слоями: каждый опирается на предыдущий.

Фронтенд — то, что видит пользователь: HTML, CSS, JavaScript или TypeScript и фреймворк вроде Vue, React или Angular. Для мобильных приложений сюда же относится Flutter или нативные Swift и Kotlin.

Бэкенд — серверная логика: язык (PHP, Python, Go, Java, Node.js) и фреймворк (Symfony, Laravel, Django, Spring). Здесь живут бизнес-правила, интеграции и всё, что нельзя доверить браузеру.

Хранение данных — реляционные СУБД (PostgreSQL, MySQL), нереляционные (MongoDB), кеш и очереди (Redis, RabbitMQ, Kafka), аналитические хранилища (ClickHouse).

Инфраструктура — где и как это запускается: сервер или облако, Docker, оркестрация, CI/CD, мониторинг, резервное копирование.

Отдельная деталь, которую при обсуждении «стека» обычно упускают: инфраструктура и процессы влияют на итог не меньше выбора языка. Продукт на идеальном стеке без нормального деплоя и мониторинга ломается ровно так же, как продукт на устаревшем.

Кто выбирает стек и когда это решают

Здесь кроется первая системная ошибка. Стек часто выбирает тот разработчик, который первым взялся за проект, — по своему опыту и интересу. Решение получается техническим по форме и случайным по сути.

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

Заказчику при этом не нужно разбираться в синтаксисе. Ему нужно понимать логику решения и уметь задать три вопроса: почему именно эти технологии для нашей задачи, кого мы сможем найти на поддержку и что будет, если нагрузка вырастет в десять раз. Если внятных ответов нет, стек, скорее всего, выбран по привычке исполнителя.

Менять стек по ходу дорого: это переписывание, а не настройка. Поэтому решение принимают один раз и осознанно — и пересматривают только тогда, когда продукт упёрся в реальное ограничение, а не в чью-то усталость от технологии.

Стек выбирают под задачу, команду и рынок найма — в этом порядке.

Семь критериев выбора

Набор вопросов, который закрывает большую часть решений. Порядок важен: первые три сильнее остальных.

Критерий Что смотреть Чем грозит ошибка
Тип и логика продукта Контентный сайт, e-commerce, портал, highload-сервис, мобильное приложение, ML-продукт Стек упирается в потолок на первой же нетиповой задаче
Нагрузка и данные Пользователи в пике, объём данных, требования к отклику Переписывание под нагрузку через год после запуска
Рынок найма Кого реально найти и заменить в вашем городе и бюджете Продукт зависит от одного человека
Скорость и сроки Есть ли готовые решения и библиотеки под задачу Полгода на то, что делается за месяц
Стоимость владения Лицензии, инфраструктура, поддержка, обновления Смета сходится, а эксплуатация — нет
Требования и регулирование 152-ФЗ, реестр отечественного ПО, отраслевые нормы Готовый продукт нельзя ввести в эксплуатацию
Совместимость с существующим Что уже работает: 1С, учётные системы, легаси-код Интеграции дороже самой разработки

Отдельно про модность. Технология из свежих обзоров и конференций может быть отличной — но у неё, как правило, меньше готовых библиотек, меньше специалистов и меньше опыта эксплуатации в продакшене. Для внутреннего эксперимента это допустимо, для продукта, который должен работать пять лет, — риск, который стоит осознавать.

Критерии выбора стека: задача, срок жизни, найм

Найм: критерий, о котором молчат

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

Логика простая. Продукт живёт годами, разработчики меняются. Если стек распространён, замену находят за недели и она вливается в проект по знакомым правилам. Если стек экзотический, поиск растягивается на месяцы, ставки выше, а знания живут в голове одного человека — и его отпуск становится риском для бизнеса.

В российских реалиях 2026 года широкий рынок специалистов — это PHP, Python, Java, JavaScript и TypeScript, Go набрал массу и уверенно растёт. Экзотика вроде Elixir, Scala или Haskell даёт технически элегантные решения и очень узкий рынок найма: такие проекты живут, пока в них есть тот, кто их начал.

Практический вывод для заказчика: спросите у подрядчика не только «на чём сделаете», но и «сколько людей на рынке смогут это поддерживать, если мы с вами расстанемся». Ответ на второй вопрос честнее показывает риск, чем любая таблица сравнения фреймворков.

Проверим стек до подписания договора

Разберём предложение подрядчика и скажем, под задачу выбран стек или под резюме исполнителей.

Обсудить проект

Фронтенд: Vue, React, Angular

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

React — самый большой рынок и экосистема, много готовых решений, широкий выбор специалистов. Цена — свобода в архитектуре: одинаковых проектов на React не бывает, и качество сильно зависит от команды, которая задала правила.

Vue — более цельный и предсказуемый: в нём меньше способов сделать одно и то же, порог входа ниже, код разных команд похож. Именно поэтому Vue и TypeScript — наш продуктовый выбор: на длинных проектах предсказуемость дороже гибкости.

Angular — самый структурированный и тяжёлый, со встроенными решениями почти на всё. Уместен в крупных корпоративных системах с большими командами и долгим жизненным циклом.

Отдельно вопрос, который влияет на SEO и скорость: рендеринг. Классическое одностраничное приложение (SPA) отдаёт браузеру пустую страницу и собирает её скриптом — для внутренних систем нормально, для публичного сайта с поисковым трафиком нужен серверный рендеринг или предгенерация страниц. Это решается на уровне выбора стека, а не «потом оптимизируем».

Бэкенд: PHP, Python, Go, Node.js, Java — под какие задачи

Здесь больше всего мифов. «PHP умер», «Go для всего», «Node.js потому что один язык на фронте и бэке». Реальность прозаичнее: у языков разные сильные стороны, и выбор диктует задача.

Язык / стек Где силён Что учесть
PHP (Symfony, Laravel) Веб-продукты, e-commerce, порталы, админки, интеграции; огромная экосистема и рынок найма Не для тяжёлых вычислений и не для ML
Python (Django, FastAPI) Данные, аналитика, ML и AI-функции, быстрые сервисы и прототипы Медленнее на высоких нагрузках без оптимизации
Go Высоконагруженные сервисы, шлюзы, обработка потоков, микросервисы Меньше готовых библиотек под прикладную логику
Node.js Реальное время (чаты, уведомления), API-шлюзы, единый язык с фронтендом Тяжёлые вычисления блокируют обработку
Java / Kotlin Крупные корпоративные системы, банки, долгий жизненный цикл Дороже и медленнее в разработке на малых задачах

Про PHP отдельно, потому что вокруг него больше всего снобизма. Современный PHP восьмой версии с Symfony или Laravel — это строгая типизация, зрелые инструменты и очень большой рынок специалистов. На нём работает значительная часть российского веба, включая нагруженные проекты. Он действительно не для машинного обучения и не для обработки миллионов событий в секунду — для этого в стек добавляют Go или Python, а не переписывают всё.

Нормальная практика на сложных продуктах — не один язык, а разделение по ролям: прикладная логика и админка на PHP, тяжёлый поток данных на Go, ML-часть на Python. Как эти части устроены внутри и почему их разделяют, мы разбирали в материале про серверную часть продукта.

Бэкенд под задачу: PHP, Python, Go, Java

Базы данных: не «SQL против NoSQL»

Постановка «выбрать между SQL и NoSQL» устарела: в реальном продукте обычно есть и то и другое, каждое под свою задачу.

Тип хранилища Для чего Примеры
Реляционная СУБД Основные данные со связями: заказы, клиенты, документы, деньги PostgreSQL, MySQL, Postgres Pro
Документная Гибкие структуры без жёсткой схемы: логи событий, каталоги с разными атрибутами MongoDB
Кеш и очереди Ускорение чтения, фоновые задачи, развязка сервисов Redis, RabbitMQ, Kafka
Аналитическое хранилище Отчёты и аналитика по большим объёмам ClickHouse
Поиск Полнотекстовый поиск, фасеты, подсказки OpenSearch, Elasticsearch

Практическое правило: основа почти всегда реляционная. Данные бизнеса связанные — заказ принадлежит клиенту, позиция заказа ссылается на товар, — и целостность здесь важнее гибкости. Мы по умолчанию используем PostgreSQL: он бесплатный, зрелый, есть российская сертифицированная сборка Postgres Pro для проектов с требованиями к реестру.

Типичная ошибка — взять документную базу «для гибкости» под строго табличные данные. Через год в приложении появляется собственный самописный контроль связей, который в реляционной СУБД работал бы из коробки.

Мобильный стек: Flutter или нативная разработка

Для мобильных приложений выбор сводится к двум путям, и разница здесь не вкусовая, а экономическая.

Нативная разработка — Swift для iOS и Kotlin для Android. Максимальный доступ к возможностям платформы и предсказуемое поведение, но две кодовые базы: две команды, два бюджета, двойные правки на каждое изменение.

Кроссплатформенная разработка на Flutter — одна кодовая база на обе платформы, интерфейс неотличим от нативного, скорость выше. Это наш основной мобильный стек; нативные вставки добавляем там, где нужны специфические возможности устройства.

Подробный разбор с плюсами, минусами и случаями, когда нативка действительно оправдана, — в отдельном материале про нативную, гибридную и кроссплатформенную разработку. Коротко: если у вас не приложение уровня системной утилиты или тяжёлой графики, Flutter закрывает задачу дешевле при том же качестве.

React Native и Kotlin Multiplatform на рынке есть, и мы честно говорим, что не работаем с ними: держать глубокую экспертизу в трёх кроссплатформенных технологиях одновременно нельзя, а поверхностная в продакшене опаснее её отсутствия.

Инфраструктура, 152-ФЗ и реестр: что ограничивает выбор

Технический выбор в России ограничен не только задачей. Два ограничения нужно проверять до проектирования, а не после.

Локализация персональных данных. Данные российских пользователей должны обрабатываться на серверах в России. Практически это означает: основное хранилище — в российском облаке или на своём железе в РФ. Зарубежные облака в контуре продукта с персональными данными — прямой юридический риск.

Реестр отечественного ПО. Для госкомпаний, объектов КИИ и части закупок нужны решения из реестра Минцифры, а требования к нему в 2026 году ужесточились. Это влияет на выбор СУБД (Postgres Pro), операционных систем (Astra Linux, РЕД ОС) и отдельных компонентов инфраструктуры.

Из российских облаков в проектах обычно фигурируют Yandex Cloud, VK Cloud и Cloud.ru — они закрывают базовые потребности: виртуальные машины, управляемые базы, объектное хранилище, Kubernetes.

Инфраструктурный минимум, который стоит требовать в любом проекте независимо от стека: Docker для повторяемого окружения, автоматический деплой через CI/CD, мониторинг с алертами, регулярные бэкапы с проверкой восстановления. Отсутствие последнего пункта обнаруживается всегда в один и тот же момент.

Соберём стек под требования и нагрузку

Реестр отечественного ПО, локализация данных, российские СУБД и облака — когда этого требует заказчик или закон.

Получить консультацию

Типовые стеки под типовые задачи

Готовые ориентиры, от которых можно отталкиваться в разговоре с подрядчиком.

Задача Разумный стек Почему так
Контентный сайт, лендинг PHP или готовая CMS, Vue при интерактиве Быстро, дёшево, много специалистов
Интернет-магазин PHP (Symfony/Laravel) + Vue + PostgreSQL + Redis Зрелая экосистема e-commerce, интеграции с 1С
Веб-приложение, портал, ЛК PHP или Python на бэкенде + Vue + PostgreSQL + Docker Сложная логика, роли, интеграции
Highload-сервис Go + PostgreSQL + Kafka + Kubernetes Держит поток, экономит на железе
MVP стартапа Один язык на всё (PHP или Python) + Vue Скорость важнее оптимальности
Мобильное приложение Flutter, нативка под особые задачи Одна кодовая база вместо двух
ML- и AI-функции Python + очередь + отдельный сервис Вся экосистема ML на Python
Enterprise-интеграции PHP/Java + брокер + интеграционный слой Много систем, гарантии доставки

Аббревиатуры вроде LAMP, MERN и JAMstack — это те же наборы под конкретные ниши, а не универсальные рецепты. Полезно помнить: почти любой серьёзный продукт со временем становится гибридом, где под каждую задачу используется подходящий инструмент.

Что делать с легаси: когда переписывать не нужно

Отдельный сюжет, с которым к нам приходят чаще всего: «у нас старый код, нам говорят переписать с нуля». Иногда это правда, чаще — нет.

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

Рабочая альтернатива — постепенное вытеснение: новые модули пишутся на новом стеке рядом со старым, трафик и функции переносятся частями, старая система постепенно теряет ответственность и в какой-то момент отключается. Дольше по календарю, безопаснее по риску, и продукт всё это время работает.

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

Переписать всё с нуля — самый дорогой способ получить те же проблемы через два года.

Наш стек и почему он такой

Мы не пытаемся уметь всё — держим глубокую экспертизу в ограниченном наборе и говорим об этом прямо.

Бэкенд — PHP с Symfony и Laravel как основной, Go для нагруженных сервисов, Python для ML-части и обработки данных. Фронтенд — Vue.js и TypeScript, с серверным рендерингом там, где нужен поисковый трафик. Мобильное — Flutter, нативные Swift и Kotlin под особые задачи. Данные — PostgreSQL как основа, Redis и очереди, ClickHouse под аналитику. Инфраструктура — Docker, CI/CD, российские облака.

Чего мы не берём: React как продуктовый стек (наш выбор — Vue), React Native и Kotlin Multiplatform, десктопные приложения на Electron — вместо них предлагаем PWA, — а также Bitrix в роли платформы для продукта. Это не оценка технологий, а честная граница компетенции.

Про деньги, чтобы разговор был предметным. Если выбор стека сам по себе — задача (нужно спроектировать решение, сравнить варианты или проверить смету другого подрядчика), это консалтинг: 300–900 тыс. ₽ в зависимости от объёма. Аудит существующего кода и архитектуры — 200–600 тыс. ₽. Разработка веб-продукта начинается от 1 млн ₽, продукта под сложный бизнес-процесс — от 1,7 млн ₽.

Точная сумма зависит от задачи, а оценка проекта у нас бесплатная и быстрая: опишите, что нужно сделать — вернёмся с архитектурным решением и сметой по этапам.

Ошибки при выборе стека

Выбирать по резюме исполнителя. Подрядчик предлагает то, что умеет сам. Это нормально, если его стек подходит задаче, и плохо, если задачу подгоняют под стек.

Гнаться за новизной. Технология с прошлогодней конференции может оказаться прекрасной — а может лишиться поддержки. Для продукта на годы важнее зрелость и размер сообщества.

Игнорировать найм. Стек, на котором в вашем регионе три специалиста, превращает команду в единственную точку отказа.

Собирать зоопарк. Пять языков в одном небольшом продукте означают пять компетенций в поддержке. Разделение по задачам оправдано на масштабе, а не на старте.

Забыть про требования закона. Локализация данных и реестр отечественного ПО — не бюрократия, а условия ввода в эксплуатацию. Проверять их надо до проектирования.

Считать только разработку. Лицензии проприетарных СУБД, инфраструктура, обновления и поддержка иногда стоят больше самой разработки за первые три года.

Вопросы, которые стоит задать подрядчику

Короткий чек-лист, чтобы проверить обоснованность предложенного стека, не будучи техническим специалистом:

  • Почему именно эти технологии для нашей задачи, а не более распространённые?
  • Сколько специалистов на рынке смогут поддерживать это, если мы расстанемся?
  • Что будет со стеком, если нагрузка вырастет в десять раз?
  • Какие лицензии платные и сколько стоит инфраструктура в год?
  • Где будут храниться персональные данные и подходит ли решение под требования реестра, если они к нам применимы?
  • Как вы обеспечите повторяемость окружения, деплой и бэкапы?
  • Что из существующих у нас систем и кода можно переиспользовать?

Если на большинство вопросов отвечают уверенно и с обоснованием — стек, скорее всего, выбран под задачу. Если ответы сводятся к «это современно и всем нравится», стоит попросить второе мнение.

Как проверить стек подрядчика: три вопроса

Обсудим ваш проект?

Предложим стек под задачу и объясним каждый выбор. Оценка и архитектурное решение — бесплатно.

Обсудить проект

Часто задаваемые вопросы

Это все технологии, на которых работает продукт: язык и фреймворк на сервере, фреймворк интерфейса, база данных, инфраструктура для запуска. Название пошло от того, что технологии складываются слоями. Для заказчика важна не сама аббревиатура стека, а три вещи: подходит ли он задаче, кого можно найти на поддержку и сколько стоит владение.

Универсально лучшего нет. Для большинства бизнес-приложений с логикой, ролями и интеграциями рабочий вариант — PHP с Symfony или Laravel либо Python, фронтенд на Vue или React, PostgreSQL как база, Redis для кеша и очередей, Docker для окружения. Если ключевое требование — очень высокая нагрузка, часть сервисов делают на Go.

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

Можно, но это переписывание, а не настройка: дорого и рискованно. Разумный способ — постепенное вытеснение: новые модули на новом стеке пишутся рядом со старым, функции переносятся частями, продукт всё это время работает. Переписывание с нуля оправдано, когда технология не поддерживается или её некому поддерживать.

Задайте пять вопросов: почему эти технологии для вашей задачи, сколько специалистов на рынке смогут это поддерживать, что будет при десятикратном росте нагрузки, какие лицензии и инфраструктура платные, где будут храниться персональные данные. Уверенные обоснованные ответы — хороший признак; «это современно» — повод получить второе мнение.

Разработка с Code Pilots

Code Pilots — студия заказной разработки полного цикла: веб- и мобильные продукты с нетривиальной бизнес-логикой, интеграциями и высокими нагрузками. Мы держим глубокую экспертизу в ограниченном наборе технологий — Symfony и Laravel, Go, Python, Vue.js, Flutter, PostgreSQL, Docker — и подбираем решение под задачу, а не задачу под свой стек. Там, где технология не наша, говорим об этом прямо.

Внутри — сильная in-house команда: аналитики с отраслевой экспертизой, продуктовые дизайнеры, разработчики, QA и DevOps. Мы начинаем не с нуля: часть каркасов, админ-панелей и решений по автоматизации уже готова, поэтому архитектурное решение и рабочий прототип появляются быстро — и на них видно, выдержит ли выбранный стек вашу задачу.

Расскажите, что нужно построить или что уже болит в существующем продукте, — предложим стек и оценим объём. Обсудить проект →

Обсудим проект?

Заполните форму или напишите нам
на airmail@code-pilots.ru
Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь с политикой конфиденциальности.

Спасибо!

Спасибо за сообщение, мы свяжемся
с вами в ближайшее время!
success