Ведущий backend-разработчик. Специализируюсь на проектировании архитектуры веб‑приложений, разработке API и настройке инфраструктуры сервисов. Основные типы проектов — интернет-магазины, форумы и внутренние сервисы компании.
Опыт: проектирование баз данных и реализация бизнес-логики компании, интеграция с 1С — двусторонний обмен данными (номенклатура, скидки, заказы, акции), настройка серверов и автоматизация деплоя на GitHub Actions и GitLab CI, разработка административной части сервисов (backend и frontend), взаимодействие с командами фронтенда, мобильной разработки и 1С.
Технологии: Ruby on Rails от версии 5 до 8, PostgreSQL, Docker, Redis, Sidekiq, Bash, JavaScript (ES5, ES6, ESM, jQuery, Underscore, jsTree, Chart.js), SCSS, Bootstrap, Git.
Инструменты и библиотеки: Closure Tree, Pundit, Composite Primary Keys, ActiveRecord Import, Carrierwave, Elasticsearch, Rswag, Blueprinter, Devise, Devise JWT, Capistrano.
Позволяет преобразовать плоский массив данных древовидной структуры во вложенный массив, а так же помогает отобразить деревья формируя HTML вёрстку или псевдографику.
Древовидная структура должна быть описана по шаблону Списка смежности (Adjacency List), то есть в каждом узле указан предок.
Пакет для автоматической генерации текста-заполнителя и изображений, позволяет во время разработки сохранить чистоту HTML структуры.
Для вставки изображений используется сервис picsum.photos.
Создайте многоуровневые вложенные списки UL в виде деревьев и добавьте раскрытие дочерних элементов.
Позволяет сортировать как простые так и вложенные списки (например списки на основе гема closure_tree).
Основная задача гема — инкапсулировать задачу сортировки:
# Установить следующий приоритет — после 2 следует 1:
Section.priority_after(2, 1) # От класса
# Переместить элемент 1 в начало:
Section.find(1).priority_after(nil) # От экземпляра класса
Sublime предоставляет настройки для исключения путей из процесса индексации, а также настройки для исключения путей из боковой панели (из проекта). Однако нет настроек для исключения путей из «поиска по файлам проекта».
Проект может содержать логи или другие файлы данных, которые должны присутствовать в проекте, но их не следует искать, так как файлы большие или мы хотим искать только по коду.
Пакет позволит настроить исключения отдельно для каждого проекта.
В коде выделяем Api::V1::Catalogs::CatalogSerializer
→ плагин преобразует имя в путь (api/v1/catalogs/offer_serializer
) и копирует в буфер обмена.