добро пожаловать

максим златов


Ведущий 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.


1.
NestedArray
ruby gem
1.
NestedArray
ruby gem

Позволяет преобразовать плоский массив данных древовидной структуры во вложенный массив, а так же помогает отобразить деревья формируя HTML вёрстку или псевдографику.

Древовидная структура должна быть описана по шаблону Списка смежности (Adjacency List), то есть в каждом узле указан предок.

github

2.
ILorem
npm
2.
ILorem
npm

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

Для вставки изображений используется сервис picsum.photos.

3.
NestedUl
npm
3.
NestedUl
npm

Создайте многоуровневые вложенные списки UL в виде деревьев и добавьте раскрытие дочерних элементов.

4.
Prioritize
ruby gem
4.
Prioritize
ruby gem

Позволяет сортировать как простые так и вложенные списки (например списки на основе гема closure_tree).

Основная задача гема — инкапсулировать задачу сортировки:

# Установить следующий приоритет — после 2 следует 1:
Section.priority_after(2, 1) # От класса

# Переместить элемент 1 в начало:
Section.find(1).priority_after(nil) # От экземпляра класса
5.
FindAndReplace ByProject WithExclusions
sublime text plugin
5.
FindAndReplace ByProject WithExclusions
sublime text plugin

Sublime предоставляет настройки для исключения путей из процесса индексации, а также настройки для исключения путей из боковой панели (из проекта). Однако нет настроек для исключения путей из «поиска по файлам проекта».

Проект может содержать логи или другие файлы данных, которые должны присутствовать в проекте, но их не следует искать, так как файлы большие или мы хотим искать только по коду.

Пакет позволит настроить исключения отдельно для каждого проекта.

6.
RailsClassToPath
sublime text plugin
6.
RailsClassToPath
sublime text plugin

В коде выделяем Api::V1::Catalogs::CatalogSerializer → плагин преобразует имя в путь (api/v1/catalogs/offer_serializer) и копирует в буфер обмена.

1.
Git-Flow
git
1.
Git-Flow
git
2.
«Rails magic»
Ruby on Rails
2.
«Rails magic»
Ruby on Rails