стек технологий
на чем работает Брайт тех

Технологический стек (Technology Stack) — это набор технологий, инструментов и платформ, используемых для разработки сайтов, веб-приложений и программных продуктов. Стек состоит из нескольких слоев, каждый из которых выполняет определенные функции и взаимодействует с другими компонентами.
Наиболее известные примеры компонентов технологического стека:
  • языки программирования Java, JavaScript и Python;
  • база данных MySQL;
  • фреймворки React и Angular;
  • серверное программное обеспечение Node.js и Nginx;
  • прочие инструменты и сервисы.
Выбор правильного технологического стека зависит от целей разработки, требований проекта, опыта команды разработчиков и оценки надежности конкретных инструментов.
Почему важно знать, с каким стеком работает подрядчик
Владельцам продуктов или собственникам бизнеса, которые обращаются за заказной разработкой, стоит узнать заранее, с какими технологиями и инструментами работает команда подрядчика.
  • Во-первых, чтобы оценить потенциальную производительность и возможность масштабирования вашего продукта в будущем.
  • Во-вторых, чтобы удостовериться в их совместимости с текущей инфраструктурой и технологиями продукта, если такой есть.
  • В-третьих, чтобы убедиться: ваша будущая команда разработки не застряла во времени, специалисты осваивают актуальные языки и инструменты, а не сидят годами на проверенном, но морально устаревшем стеке.
Языки программирования
Для разработки веб-приложений мы используем следующие языки программирования:
  • HTML5 — язык разметки, который используется для создания структуры веб-страниц. Он определяет содержимое страницы: текст, изображения, ссылки и т. д.
  • PHP 7.4 и PHP 8.2 — язык программирования, используемый для создания серверной части веб-приложений.
  • CSS3 — язык используется для описания внешнего вида веб-страниц. Он определяет стили элементов на странице: цвета, шрифты, отступы и т. д.
  • JavaScript — мощный язык, который используется для создания интерактивных элементов. Он позволяет создавать динамичные страницы с интерактивными элементами UI, которые меняются в ответ на действия пользователя.
Помимо этого, используем различные фреймворки и библиотеки, которые лучше отвечают требованиям проекта.

Фреймворки, библиотеки и CMS
Фреймворк — это набор инструментов, библиотек и структурных компонентов, который облегчает и ускоряет процесс разработки продукта. Фреймворк дает готовые решения для общих задач, таких как управление базами данных, обработка HTTP-запросов, роутинг, аутентификация и многое другое. На базе фреймворка можно собрать кастомную CMS и доработать ее под задачи проекта (чаще всего мы так и делаем).
Наши фавориты:
  • Yii2 — бэкенд-фреймворк для разработки веб-приложений на языке программирования PHP. Он предоставляет мощный набор инструментов и компонентов для ускорения разработки. Например, в Yii2 также встроена поддержка фреймворка Bootstrap для быстрой отрисовки интерфейсов.
  • Laravel и Symfony — PHP-фреймворки бэкенда с архитектурой MVC (Model-View-Controller). Используются, когда нужно разделить логику приложения для аутентификации пользователей и управления правами доступа в приложении.
  • React/Redux и ReactJS — фронтенд-фреймворки для создания пользовательского интерфейса веб-приложений. Они позволяют создавать компоненты, которые можно дублировать и использовать повторно. К их основным преимуществам можно отнести удобное управление состоянием, эффективное отображение данных и удобную отладку.
  • Vue.js — прогрессивный JavaScript-фреймворк, используется для создания интерактивных пользовательских интерфейсов и одностраничных приложений (SPA) на фронтенде. Легко интегрируется с другими проектами и библиотеками.
  • 1С-Bitrix — популярный бэкенд-фреймворк для создания корпоративных веб-приложений и интернет-магазинов. Он обладает широкими возможностями для разработки и интеграции.
Базы данных и СУБД
Как правило, в рамках одного продукта используются комбинации различных баз данных и СУБД. Это позволяет обеспечить оптимальную производительность, масштабируемость и надежность системы. В их основе чаще всего:
  • PostgreSQL— это свободно распространяемая объектно-реляционная система управления базами данных (СУБД) с открытым исходным кодом, написанном на языке C. Это самая популярная система управления базами данных в мире. Об этом говорят не только результаты опросов разработчиков и предпринимателей, но и количество вакансий, в которых владение ею указывается среди необходимых навыков.
  • MySQL — реляционная база данных, которая используется для хранения структурированных данных и выполнения SQL-запросов. MySQL чаще всего используется там, где требуется хранение и обработка большого объема данных в табличной форме.
  • MongoDB — популярная документо-ориентированная база данных с открытым исходным кодом. Она предназначена для хранения и управления документами в формате JSON-подобных документов. Широко используется для разработки веб-приложений, аналитики данных, IoT и других сценариев.
Среды разработки
Среда разработки (IDE — Integrated Development Environment) — программное обеспечение, которое создает интегрированную среду для разработки. С помощью IDE специалисты могут создавать, отлаживать, тестировать и развертывать приложения в удобной и эффективной среде. Мы пишем веб-приложения в Visual Studio Code, PHPStorm, Webstorm, мобильные — в Android Studio и Xcode.

Системы контроля версий
Системы контроля версий (Version Control Systems, VCS) — инструменты, которые позволяют отслеживать изменения в исходном коде и управлять версиями файлов в рамках проекта. С их помощью можно одновременно работать над кодом, отслеживать историю изменений, вносить правки, а также делать откат к предыдущей версии, когда это необходимо. Чаще всего используем одну из самых популярных и эффективных систем контроля версий — Git. В отдельных проектах и задачах работаем с Bitbucket, Gitlab, Github.

Серверная и облачная инфраструктура
При создании продукта с нуля важно правильно настроить серверную и облачную инфраструктуру. Чаще всего мы обращаемся к технологиям Docker и Docker Compose для упаковки и развертывания приложений в контейнерах. Это позволяет обеспечить изолированное окружение для приложения, упростить его развертывание на разных серверах и обеспечить консистентность работы приложения в различных средах.
Когда работаем с уже существующими продуктами — масштабируем, дорабатываем функционал или осуществляем техподдержку — разворачиваемся и в других средах: Nginx, PHP-FPM, Apache и т. д.

Made on
Tilda