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

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


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

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

Gem NestedArray преобразует плоский массив иерархических данных во вложенную структуру и помогает отображать деревья формируя HTML или псевдографику.

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

Преобразует имя Ruby-класса в путь к файлу и обратно.

Удобен:
* для навигации между кодом и файловой структурой Rails;
* когда нужно создать файл, имея имя класса;
* определить имя класса по пути.

github

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