Разбить index.js — заменить if/else роутер на Map-диспетчер #53

Closed
opened 2026-06-17 19:39:30 +00:00 by NW · 1 comment
Owner

Проблема

src/index.js — 390 строк с 217-строчным if/else для callback queries (строки 158-375). Добавление нового callback требует редактирования монолита.

Решение

  • Создать src/router/callbackRouter.js — Map prefix → handler
  • Создать src/router/messageRouter.js — Map command → handler
  • Заменить if/else на router.dispatch(callbackData) или router.dispatch(msg)
  • Каждый handler регистрируется в роутере: router.register('admin_product_', createHandler)
  • index.js становится точкой входа (~50 строк): загрузка конфига, инициализация БД, запуск бота

Приоритет: ВЫСОКИЙ

## Проблема `src/index.js` — 390 строк с 217-строчным if/else для callback queries (строки 158-375). Добавление нового callback требует редактирования монолита. ## Решение - [ ] Создать `src/router/callbackRouter.js` — Map prefix → handler - [ ] Создать `src/router/messageRouter.js` — Map command → handler - [ ] Заменить if/else на `router.dispatch(callbackData)` или `router.dispatch(msg)` - [ ] Каждый handler регистрируется в роутере: `router.register('admin_product_', createHandler)` - [ ] index.js становится точкой входа (~50 строк): загрузка конфига, инициализация БД, запуск бота ## Приоритет: ВЫСОКИЙ
NW added this to the Phase 2: Architecture & Refactoring milestone 2026-06-17 19:39:30 +00:00
NW added the priority::hightype::refactorphase::2 labels 2026-06-17 19:39:30 +00:00
Author
Owner

Реализовано

  • callbackRouter.js (36 строк) — Map диспетчер: exact + prefix matching, longest-prefix-first
  • messageRouter.js (27 строк) — Map диспетчер: input handlers + text commands
  • routes.js (345 строк) — все 59 callback routes + 9 text commands + 7 input handlers
  • index.js (69 строк, было 394) — точка входа, 82% уменьшение

Коммит: d0b26da

## ✅ Реализовано - [x] `callbackRouter.js` (36 строк) — Map диспетчер: exact + prefix matching, longest-prefix-first - [x] `messageRouter.js` (27 строк) — Map диспетчер: input handlers + text commands - [x] `routes.js` (345 строк) — все 59 callback routes + 9 text commands + 7 input handlers - [x] `index.js` (69 строк, было 394) — точка входа, 82% уменьшение **Коммит**: d0b26da
NW closed this issue 2026-06-22 00:16:47 +00:00
Sign in to join this conversation.