Разработка сайтов и веб‑приложений на современых технологиях

Используем широкий стек технологий и платформ для разработки сайтов и веб‑приложений, это позволяет нам реализовывать проекты любой сложности и с различной функциональностью.

Широкий стек технологий

Мы используем широкий стек технологий и платформ для разработки сайтов и веб‑приложений. Это позволяет добиваться лучших результатов и обеспечивает более высокую сопровождаемость проектов. Мы очень внимательно подходим к вопросу выбора используемых технологий и платформ, так как в продолжительных и технически сложных проектах ошибки в подборе инструментов обходятся очень дорого.

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

  • В основном мы используем языки программирования Ruby, TypeScript и JavaScript. Фреймворки — Ruby on Rails и Next.js. Для фронтенд-разработки используем HTML5, CSS3 (SСSS/SASS), TypeScript (JavaScript) + библиотеки React и Tailwind. Для задач машинного обучения и анализа данных — Python, а для высоконагруженных сервисов — Go или Elixir.
  • СУБД, хранилища, очереди, кеширование и поиск — обычно это PostgreSQL, Redis, ElasticSearch; редко MySQL, MariaDB, Oracle, MS SQL, MongoDB, Memcached, ScyllaDB или Cassandra. Основной веб‑сервер — nginx. Серверные ОС — Linux: в основном AlmaLinux, реже Debian, Ubuntu & Astra Linux. Обычно используем виртуализацию на KVM/QEMU и контейнеризацию Docker. Работаем и с Kubernetes, но заметно реже.

Это далеко не полный список технологий, используемых в нашей компании.

Наш подход к архитектуре

На бэкенде в большинстве проектов мы используем фреймворк Ruby on Rails, в качестве слоя хранения — PostgreSQL, для очередей заданий и кеширования — Redis, а для поиска, фасеточной фильтрации и персонализации выборок — ElasticSearch. Интерфейсы разрабатываем на базе HTML5, CSS3 и TypeScript, чаще всего на связке Next.js + React, используя современные системы сборки и компонентную архитектуру.

Обычно мы реализуем бэкенд, работающий в режиме API, а фронтенд в виде Single Page Application с серверным (SSR) или гибридным (SSG + ISR + SSR) рендерингом для максимального соответствия SEO‑требованиям и для ускорения отрисовки страниц при первой загрузке.

В процессе разработки и дальнейшего сопровождения используем систему контроля версий Git (обычно в соответствии с методологией Trunk Based Development, реже работаем по GitFlow). Активно используем системы автоматического тестирования и линтеры в контуре непрерывной интеграцию на базе GitLab. Всегда автоматизируем процесс разворачивания (и через CI/CD GitLab, и изолированно от него), в большинстве проектов также используем от одного до нескольких пред‑продуктивных окружений (стейджинги).

Этот подход особенно хорошо зарекомендовал себя в разработке высоконагруженных и длительно сопровождаемых проектов в сфере электронной коммерции, в создании корпоративных систем и бизнес‑приложений со сложной логикой обработки данных и высокими требованиями к информационной безопасности.

Критерии выбора технологий

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

С технической точки зрения при выборе технологий мы ориентируемся на соответствие выбранного стека уровню задач (забивать гвозди микроскопом — это плохой путь), на стабильность предлагаемых решений, на дальнейшую сопровождаемость, на информационную безопасность и на скорость разработки.

С юридической и финансовой точек зрения — обычно ориентируемся на открытое программное обеспечение, которое можно как использовать в коммерческих целях без каких‑либо лицензионных отчислений и без возникновения обязательств по раскрытию программного кода реализуемого продукта. А также подбираем те платформы, которые не имеют сложностей и проблем в работе на территории Российской Федерации.

Начнём проект вместе

Давайте познакомимся, обсудим цели проекта и способы их достижения. Просто напишите или позвоните нам:
Написать на электронную почтуTelegramWhatsAppПозвонить
или вы можете
БрифЗаполнить бриф