Стек используемых технологий

Основной стек технологий

  • HTML, CSS, JavaScript, TypeScript.
  • PHP 8, MySQL, PostgreSQL.
  • Symfony, Laravel.
  • LESS, SASS, PostCSS.
  • БЭМ.
  • React (Next.js), Vue (Nuxt.js).
  • OpenAPI.
  • Gitlab, Docker.

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

С примерами нашего кода и стандартами его написания можно ознакомиться на GitHub: Symfony Starter, Laraver Starter.

Используемые технологии и подходы

Бэкенд

  • Руководствуемся различными принципами разработки: KISS, DRY, SOLID, GRASP, YAGNI и другие.
  • PHP с применением паттернов проектирования.
  • Symfony для разработки, поддержки и дальнейшего масштабирования сложных проектов.
  • Laravel для разработки и быстрого старта небольших и средних проектов.
  • MySQL, PostgreSQL:
  • применяется нормализация, денормализация данных в зависимости от требований;
  • репликации;
  • применение индексов;
  • транзакции с указанием уровня изоляции, блокировки;
  • построение сложных запросов.
  • Системы контроля версий:
  • Git с различными моделями ветвления в зависимости от сложности проекта и требований по «time to market»;
  • GitLab, GitHub, Bitbucket.
  • Sphinx, Elasticsearch для полнотекстового морфологического поиска.
  • Другие технологии:
  • PHPUnit для модульных, функциональных тестов, покрытие кода;
  • Gitlab с полноценным CI/CD;
  • PHPStan, Psalm — статический анализ кода;
  • PHP CS Fixer — соблюдение стандартов оформления кода;
  • Rector — автоматизация рефакторинга;
  • Deptrac — контроль зависимостей слоев и модулей;
  • Redis, RabbitMQ — кеширование и сервер очередей;
  • Docker — разработка, развертывание на серверах;
  • и многое другое.

Фронтенд

Разрабатываем как клиентские, так и серверные приложения, используя библиотеки React (Next.js), Vue (Nuxt.js):

  • Модульная архитектура.
  • SPA / SPA + SSR.
  • Nuxt.js — развиваем и разрабатываем проекты на второй и третьей версиях.
  • Composition API.
  • Строгое описание типов с помощью Typescript.
  • Интеграция сторонних сервисов.
  • Взаимодействуем с сервером через классический REST API или GraphQL.
  • WebSocket.
  • Автоматическая проверка стиля кода инструментами Stylelint и ESLint.
  • Компонентные / Unit / E2E тесты.

Оптимизируем производительность проектов:

  • сокращение количества запросов к серверу путем правильной сборки зависимостей;
  • постепенная загрузка не критичных компонентов страницы;
  • управление отображением содержимого в процессе загрузки страницы;
  • правильное использование различных форматов графики и ее оптимизация.

Стандартизируем процессы frontend разработки:

  • написание методологий разработки;
  • разработка библиотеки используемых компонентов Storybook / Bit;
  • разработка стайлгайда для проекта;
  • рефакторинг и обновление проектов.

Верстаем макеты с использованием технологий HTML, CSS, JS, TS:

  • принципы БЭМ и разделение интерфейса на компоненты;
  • CSS-анимации и JS-интерактив;
  • адаптивность;
  • кроссбраузерность;
  • семантика и валидность html разметки;
  • доступность для людей с ограниченными возможностями;
  • использование микро-разметки opengraph и schema.org;
  • UI Kits для быстрой разработки прототипов.

Дизайн

  • Узкоспециализированные специалисты: графический дизайн, иллюстрация, видео, моушн-дизайн, анимация, иконографика, типографика, 3D.
  • Документирование дизайна.
  • Системы масштабирования проектов, руководство правил по использованию UI элементов.

Аналитика и проектирование

  • Интервьюирование клиента, погружение в предметную область и бизнес-процессы.
  • Формирование модульной системы и схем бизнес-процессов посредством Event Storming. Метод позволяет синхронизировать бизнес и разработку. В качестве инструмента реализации методологии применяем Miro.
  • Концептуальное видение проекта.
  • Анализ конкурентного поля и другая аналитика.
  • Построение информационной архитектуры проекта, детализация функциональных модулей, отслеживание взаимосвязей.
  • Проработка интерфейсных решений и их обоснование.
  • Разработка прототипов с адаптивом в виде схем-макетов, либо интерактивных страниц.
  • Подготовка технической документации к прототипам.
  • Результатом становится:
  • Документация: описание проекта (техническая спецификация), схемы в виде графической структуры набора модулей и взаимосвязей, сценарии поведения (схемы процессов).
  • Адаптивные интерактивные прототипы, документация к ним.

Коммуникации внутри команды

  • Redmine и Slack, их тесная интеграция, кастомизированная под наши нужды.
  • Сервисы Google.