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

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

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

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

Бэкенд

  • Руководствуемся различными принципами разработки (KISS, DRY, SOLID, GRASP и другие базводры).
  • Языки PHP и Go (для высоконагруженных проектов) с применением паттернов проектирования.
  • Symfony 4 и Zend Framework для крупных проектов.
  • Yii2 и Kohana для разработки средних проектов, сопровождения и развития готовых сторонних проектов.
  • В качестве реляционной базы данных используем MySQL:
    • применяется нормализация, денормализация данных в зависимости от требований;
    • репликации;
    • применение индексов;
    • транзакции с указанием уровня изоляции, блокировки;
    • построение сложных запросов.
  • В качестве документарной базы данных используем MongoDB. Применяется в узкоспециализированных случаях, например для хранения «потока данных».
  • Системы контроля версий:
    • Основной инструмент — Git с моделью ветвления master, stable, develop, task.
    • GitLab, GitHub, Bitbucket.
  • Организация релевантного морфологического поиска:
    • Sphinx, Elasticsearch.
    • «Родная» поддержка полнотекстового поиска для MySQL, с частичным использованием алгоритма «Стеммер Портера».
    • Zend Search Lucene — для реализации полнотекстового поиска средствами PHP.
  • Другие технологии:
    • менеджер пакетов и зависимостей Composer;
    • автоматизация тестирования основана на Codeception;
    • CI Server — Jenkins, Gitlab;
    • анализаторы кода phpcpd, phpmd, а также phploc для фиксирования метрик;
    • применяется проверка стандартов написания кода с помощью phpcs;
    • Redis, Beanstalk — кеширование и сервер очередей;
    • 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.

Дизайн

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

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

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

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

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