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

  • LAMP/LEMP/FAMP/FEMP.
  • HTML, JavaScript, CSS.
  • Yii 2, Kohana 3, Symfony 4.
  • jQuery.
  • LESS, SASS, PostCSS.
  • Gulp, Webpack, Babel.
  • БЭМ.
  • React, Vue, Angular.
  • Git, Subversion, Mercurial.
  • CI Jenkins, Gitlab.

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

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

Бэкенд

  • Руководствуемся принципами SOLID для обеспечения гибкой и адаптивной разработки программного обеспечения.
  • Используем концепцию MVC.
  • Языки PHP и Go (для высоконагруженных проектов) с применением паттернов проектирования.
  • Фреймворк Yii2 для крупных проектов:
    • применяется компонентная, модульная архитектура;
    • версионность БД посредством миграций;
    • с помощью интернализации i18n реализуем мультиязычность;
    • применяется интеграция с различными сторонними сервисами типа Sphinx, Codeception и т. д.
  • Фреймворк Yii1 для сопровождения и развития готовых сторонних проектов.
  • В качестве реляционной базы данных используем PostgreSQL, MySQL:
    • применяется нормализация, денормализация данных в зависимости от требований;
    • репликации;
    • применение индексов;
    • транзакции с указанием уровня изоляции, блокировки;
    • построение сложных запросов.
  • В качестве документарной базы данных используем MongoDB. Применяется в узкоспециализированных случаях, например для хранения «потока данных».
  • Системы контроля версий:
    • Основной инструмент — Git с моделью ветвления master, stable, develop, task.
    • GitLab, GitHub, Bitbucket.
    • Большой опыт работы с Subversion, Mercurial.
  • Организация релевантного морфологического поиска:
    • Sphinx, Elasticsearch.
    • «Родная» поддержка полнотекстового поиска для MySQL, с частичным использованием алгоритма «Стеммер Портера».
    • «Родная» поддержка полнотекстового поиска для PostgreSQL.
    • Zend Search Lucene — для реализации полнотекстового поиска средствами PHP.
  • Другие технологии:
    • менеджер пакетов и зависимостей Composer;
    • автоматизация тестирования основана на Codeception;
    • CI Server — Jenkins, Gitlab;
    • анализаторы кода phpcpd, phpmd, а также phploc для фиксирования метрик;
    • применяется проверка стандартов написания кода с помощью phpcs;
    • Redis — кеширование и сервер очередей;
    • Docker — разработка и тестирования препродакшена.

Фронтенд

  • Верстаем макеты с использованием технологий HTML, CSS, JavaScript:
    • принципы БЭМ и разделение интерфейса на абсолютно независимые компоненты;
    • css анимации и js интерактив;
    • адаптивность;
    • кроссбраузерность IE8+;
    • семантика и валидность html разметки;
    • использование микро-разметки opengraph и schema.org;
    • twitter bootstrap для быстрой разработки интерфейсов.
  • Настраиваем сборку frontend:
    • организация системы задач с Gulp;
    • компиляция препроцессоров LESS, SASS;
    • постпроцессинг стилей с PostCSS;
    • настройка гибкого, модульного JavaScript с Webpack, с возможностью писать на новом стандарте ES6, транслируя код в ES5 с помощью Babel;
    • автоматическая оптимизация графики с построением системы иконок на PNG спрайтах или SVG;
    • автоматическая проверка стиля кода инструментами Stylelint и ESLint.
  • Оптимизируем производительность проектов:
    • сокращение количества запросов к серверу, путем правильной сборки зависимостей;
    • постепенная загрузка не критичных компонентов страницы;
    • управление отображением содержимого в процессе загрузки страницы;
    • правильное использование различных форматов графики и ее оптимизация.
  • Стандартизируем процессы frontend разработки:
    • написание методологий разработки;
    • разработка библиотеки используемых компонентов;
    • разработка стайлгайда для проекта.
  • Разрабатываем SPA:
    • используем для разработки фреймворки React, Vue, Angular;
    • контролируем сложность состояния приложения с Redux.

Дизайн

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

Проектирование и коммуникации

  • Интервьюирование клиента, при необходимости погружение на стороне клиента.
  • Построение схем бизнес-процессов BPMN, EPC, IDEF0.
  • Концептуальное виденье проекта.
  • Анализ конкурентного поля и другая аналитика.
  • Информационная архитектура проекта.
  • Адаптивные интерактивные прототипы.

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

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