Ведущий 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.
Часто данные о древовидной структуре приходят из базы данных в виде обычного списка, по шаблону Adjacency List (список смежности). Для построения интерфейсов удобнее работать с вложенной структурой.
Gem NestedArray преобразует плоский массив иерархических данных во вложенную структуру и помогает отображать деревья формируя HTML или псевдографику.
Пакет для автоматической генерации текста-заполнителя и изображений, позволяет во время разработки сохранить чистоту HTML структуры.
Для вставки изображений используется сервис picsum.photos.
Создайте многоуровневые вложенные списки UL в виде деревьев и добавьте раскрытие дочерних элементов.
Позволяет сортировать как простые так и вложенные списки (например списки на основе гема closure_tree).
Основная задача гема — инкапсулировать задачу сортировки:
# Установить следующий приоритет — после 2 следует 1:
Section.priority_after(2, 1) # От класса
# Переместить элемент 1 в начало:
Section.find(1).priority_after(nil) # От экземпляра класса
Sublime предоставляет настройки для исключения путей из процесса индексации, а также настройки для исключения путей из боковой панели (из проекта). Однако нет настроек для исключения путей из «поиска по файлам проекта».
Проект может содержать логи или другие файлы данных, которые должны присутствовать в проекте, но их не следует искать, так как файлы большие или мы хотим искать только по коду.
Пакет позволит настроить исключения отдельно для каждого проекта.
Преобразует имя Ruby-класса в путь к файлу и обратно.
Удобен:
* для навигации между кодом и файловой структурой Rails;
* когда нужно создать файл, имея имя класса;
* определить имя класса по пути.