Основной стек технологий
- LAMP/LEMP/FAMP/FEMP.
- HTML, CSS, JavaScript, TypeScript.
- PHP 7, MySQL.
- Symfony, Laravel, Zend Framework, Yii, Kohana.
- LESS, SASS, PostCSS.
- Gulp, Webpack, Babel.
- БЭМ.
- React (Next.js), Vue (Nuxt.js), Angular.
- Git, Mercurial.
- Jenkins, Gitlab.
Стек не полный, поэтому если вам необходима другая технология, фреймворк или CMS — обращайтесь.
Используемые технологии и подходы
Бэкенд
- Руководствуемся различными принципами разработки (KISS, DRY, SOLID, GRASP и другие базводры).
- Языки PHP и Go (для высоконагруженных проектов) с применением паттернов проектирования.
- Symfony, Laravel, Zend Framework для разработки и развития новых проектов.
- Yii и Kohana для развития готовых сторонних и собственных проектов.
- В качестве реляционной базы данных используем MySQL:
- применяется нормализация, денормализация данных в зависимости от требований;
- репликации;
- применение индексов;
- транзакции с указанием уровня изоляции, блокировки;
- построение сложных запросов.
- В качестве документарной базы данных используем MongoDB. Применяется в узкоспециализированных случаях, например для хранения «потока данных».
- Системы контроля версий:
- Основной инструмент — Git с моделью ветвления master, stable, develop, task.
- GitLab, GitHub, Bitbucket.
- Организация релевантного морфологического поиска:
- Sphinx, Elasticsearch.
- «Родная» поддержка полнотекстового поиска для MySQL, с частичным использованием алгоритма «Стеммер Портера».
- Zend Search Lucene — для реализации полнотекстового поиска средствами PHP.
- Другие технологии:
- менеджер пакетов и зависимостей Composer;
- для тестов используется PHPUnit, Codeception;
- CI Server — Jenkins, Gitlab;
- анализаторы кода phpcpd, phpmd, а также phploc для фиксирования метрик;
- применяется проверка стандартов написания кода с помощью phpcs;
- Redis, Beanstalk — кеширование и сервер очередей;
- Docker — разработка, развертывание на серверах.
Фронтенд
- Разрабатываем SPA и SSR приложения, используя библиотеки React (Next.js), Vue (Nuxt.js), Angular. Взаимодействуем с сервером через классический REST API или GrahpQL.
- Верстаем макеты с использованием технологий HTML, CSS, JS, TS:
- принципы БЭМ и разделение интерфейса на компоненты;
- css анимации и js интерактив;
- адаптивность;
- кроссбраузерность;
- семантика и валидность html разметки;
- доступность для людей с ограниченными возможностями;
- использование микро-разметки opengraph и schema.org;
- ui kits для быстрой разработки прототипов.
- Настраиваем сборку frontend:
- автоматизация задач с Gulp;
- использование пре/пост-процессоров LESS, SASS, PostCSS;
- настройка гибкого, модульного JavaScript с Webpack, с возможностью писать на современном ES с помощью Babel;
- автоматическая оптимизация графики с построением системы иконок на PNG спрайтах или SVG;
- автоматическая проверка стиля кода инструментами Stylelint и ESLint.
- Оптимизируем производительность проектов:
- сокращение количества запросов к серверу, путем правильной сборки зависимостей;
- постепенная загрузка не критичных компонентов страницы;
- управление отображением содержимого в процессе загрузки страницы;
- правильное использование различных форматов графики и ее оптимизация.
- Стандартизируем процессы frontend разработки:
- написание методологий разработки;
- разработка библиотеки используемых компонентов;
- разработка стайлгайда для проекта.
Дизайн
- Узкоспециализированные специалисты: графический дизайн, иллюстрация, видео, моушн-дизайн, анимация, иконографика, типографика, 3D.
- Документация дизайна.
- Системы масштабирования проектов, руководство правил по использованию UI элементов.
Проектирование и коммуникации
- Интервьюирование клиента, при необходимости погружение на стороне клиента.
- Построение схем бизнес-процессов BPMN, EPC, IDEF0.
- Концептуальное видение проекта.
- Анализ конкурентного поля и другая аналитика.
- Информационная архитектура проекта.
- Адаптивные интерактивные прототипы.
Коммуникации внутри команды
- Redmine и Slack, их тесная интеграция, кастомизированная под наши нужды.
- Сервисы Google.