Files
svc-api-x-naeel/analysis/cleanup-worklog-2026-04-29.md
T

315 lines
16 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Рабочий журнал по задаче очистки и компоновки svc-api-x
## Статус
- Дата и время начала журнала: 2026-04-29 20:33:49 +0400
- Текущая рабочая ветка: `naeel`
- Репозиторий уже отвязан от исходного origin и перенаправлен в пользовательскую репу
- Пуш в оригинальный репозиторий не выполняется
## Исходная постановка задачи
Нужно:
- очистить исходники `deck/svc-api`
- делать работу по этапам
- фиксировать каждый этап отдельным коммитом
- не торопиться и действовать аккуратно
- в конце собрать оглавление и единый документ со всеми исходниками
- после выполнения подготовить уточняющие вопросы заказчику
Дополнительное текущее указание:
- документировать все действия отдельно в папке `analysis`
- журнал должен показывать понятный ход мыслей и действий
## Что уже сделано до начала основной зачистки
### 1. Проверен git-контекст
Проверено:
- текущий origin
- текущая ветка
- upstream ветки
- направление push
- отсутствие submodule
Результат:
- репозиторий обычный, без подмодулей
- origin перенастроен на пользовательскую репу
- создана и запушена рабочая ветка `naeel`
### 2. Проверен размер и состав репозитория
Проверено:
- общий размер рабочей директории
- размер `.git`
- примерный объем данных по файлам
Это было нужно, чтобы понимать масштаб последующей склейки исходников в единый документ.
### 3. Выполнен анализ истории проекта
Созданы отдельные файлы анализа:
- `analysis/project-history-analysis.md`
- `analysis/project-history-analysis-careful-2026-04-29.md`
В результате установлено:
- проект является внутренним backend-сервисом `deck`
- технологическая база: Lucee + CFML + Taffy + PostgreSQL
- вендорный framework Taffy хранится внутри репозитория в `v1/taffy`
- история проекта выглядит как импорт готового внутреннего кода с последующей эволюцией
## Рабочие выводы перед зачисткой
### 1. Задача рискованная
Причины:
- нужно удалять комментарии и закомментированный код
- часть комментариев может содержать архитектурный контекст
- часть файлов может выглядеть неиспользуемой, но реально участвовать в runtime через динамическое подключение или convention-based маршрутизацию Taffy
- в проекте есть вендорный код framework, backup-файлы и исторические артефакты
### 2. Без уточнений заказчика нужно действовать консервативно
Текущая стратегия по умолчанию:
- не удалять `cfm/cfc`-файлы автоматически на первом проходе
- сначала чистить только явно безопасные вещи:
- закомментированные фрагменты кода
- старые version-header комментарии
- комментарии-размышления
- английские комментарии, которые можно перевести без потери смысла
- вендорный Taffy не трогать до отдельного решения
- список подозрительных на удаление файлов собирать отдельно, но не удалять автоматически без дополнительной уверенности
### 3. Результат лучше собирать в Markdown
Причины:
- Markdown проще генерировать и поддерживать
- его легче диффить по коммитам
- он подходит для последующей конвертации в docx при необходимости
- для восстановления проекта он лучше, чем непрозрачный бинарный формат Word
## План исполнения
### Этап A. Подготовка рабочего контура
Сделать:
- зафиксировать рабочую ветку
- зафиксировать текущее состояние файлов
- собрать список `cfm/cfc/sql`-файлов
- отдельно отметить вендорный код и прикладной код
Ожидаемый результат:
- понятная карта того, что именно можно и нельзя чистить автоматически
### Этап B. Инвентаризация комментариев и закомментированного кода
Сделать:
- определить типовые паттерны комментариев в `cfm/cfc`
- выделить:
- закомментированный код
- комментарии-рассуждения
- старые version-history блоки
- полезные технические комментарии
- английские комментарии, пригодные для перевода
Ожидаемый результат:
- набор правил для безопасной массовой чистки
### Этап C. Первая безопасная зачистка
Сделать:
- удалить закомментированные фрагменты кода там, где это однозначно код, а не документация
- удалить старые version-header комментарии
- удалить очевидные комментарии в формате внутренних рассуждений
Ожидаемый результат:
- первый чистовой проход без изменения прикладной логики
### Этап D. Перевод оставшихся комментариев
Сделать:
- перевести оставшиеся английские комментарии на русский
- сохранить технический смысл формулировок
- не добавлять новых рассуждений от себя в код
Ожидаемый результат:
- единообразный русскоязычный комментарийный слой там, где комментарии реально остаются
### Этап E. Сводный документ
Сделать:
- собрать оглавление всех файлов с путями
- собрать все итоговые исходники в единый `md`
- сохранить структуру так, чтобы проект можно было теоретически восстановить
Ожидаемый результат:
- единый комплект исходников в одном документе
### Этап F. Коммиты и вопросы заказчику
Сделать:
- оформить поэтапные локальные коммиты
- подготовить список вопросов по неоднозначным местам
- отдельно указать, какие решения были приняты по умолчанию без уточнения заказчика
## Принятые допущения на текущий момент
1. Работу нужно вести в отдельной ветке, а не в `dev`.
2. Пуш в пользовательскую репу допустим позже, после локальной проверки.
3. Удаление файлов `cfm/cfc` пока не выполняется автоматически.
4. Вендорный код `v1/taffy` пока считается отдельным слоем и не чистится без крайней необходимости.
5. Итоговая сборка будет делаться в `md`, если позже не будет явного требования о `docx`.
## Что сделать следующим шагом
Следующий практический шаг:
- собрать полный список `cfm`, `cfc`, `sql`-файлов
- отделить прикладной код от framework/vendor и backup-артефактов
- начать инвентаризацию комментариев и закомментированного кода
## Примечание
Этот журнал не является скрытым chain-of-thought. Это внешний рабочий лог: решения, допущения, шаги и причины действий, достаточные для понимания хода работы.
## Обновление: первая инвентаризация файлов и комментариев
Дата фиксации: 2026-04-29 20:35:23 +0400.
### Что проверено
- собран список всех `cfc`, `cfm`, `sql`-файлов
- отдельно замечено, что `git status` в этом окружении периодически подвисает, поэтому для дальнейшей работы лучше опираться на прямой обход файлов и точечные git-команды
- выполнен поиск по типовым признакам проблемных комментариев и закомментированного кода
### Что найдено по структуре
Слои репозитория сейчас выглядят так:
1. Прикладной код:
- `v1/Application.cfc`
- `v1/lib/*`
- `v1/resources/*`
- `health.cfm`
- `v1/index.cfm`
2. Явные backup/исторические артефакты:
- `v1/etc/bk/*`
- `v1/resources/bk/*`
3. Вендорный framework и его примеры/тесты:
- `v1/taffy/core/*`
- `v1/taffy/bonus/*`
- `v1/taffy/dashboard/*`
- `v1/taffy/examples/*`
- `v1/taffy/tests/*`
- `v1/taffy/verify/*`
### Промежуточный вывод
Нельзя делать одну общую массовую чистку по всем `cfc/cfm` подряд.
Причины:
- внутри репозитория есть собственный код и внешний Taffy
- есть backup-каталоги, которые могут быть кандидатами на удаление, но это уже отдельный шаг и отдельный риск
- часть английских комментариев относится к Taffy и их перевод без отдельного решения заказчика может быть ошибкой
### Первые hotspot-файлы по комментариям
Наиболее насыщенные неоднозначными комментариями и закомментированными фрагментами:
- `v1/Application.cfc`
- очень много рассуждений, временных пояснений, костылей, TODO и закомментированных блоков
- смешение русского и английского
- есть куски, унаследованные или переписанные из Taffy
- `v1/lib/field_set.cfm`
- большой header с version-history
- технические пояснения и опасения автора по реализации
- `v1/lib/filter_build.cfm`
- version-history в начале
- плотный инлайновый комментарийный слой
- есть фрагменты в стиле “закомментированная логика в потоке шаблона”
- `v1/lib/rest_api_helper.cfc`
- version-history в начале
- смешанные русско-английские комментарии по поведению API и фильтрации
- `v1/resources/svc_default.cfc`
- рассуждения по зависимости и закомментированные альтернативные строки
### Рабочее решение после первой инвентаризации
1. Вендорный `v1/taffy` пока не чистить.
2. Backup-каталоги пока не удалять автоматически.
3. Первый реальный этап чистки делать только по прикладному слою:
- `v1/Application.cfc`
- `v1/lib/*`
- `v1/resources/*`
- за исключением `v1/resources/bk/*`
4. Перед массовыми правками создать отдельную cleanup-ветку.
### Следующий шаг
- создать отдельную ветку под зачистку
- собрать более узкую выборку только по прикладным `v1/lib` и `v1/resources`
- начать безопасную зачистку с наиболее очевидных header-version комментариев и закомментированных фрагментов
## Обновление: выделена отдельная cleanup-ветка и выполнен первый безопасный проход
Дата фиксации: 2026-04-29 20:39:57 +0400.
### Ветка
Создана отдельная рабочая ветка:
- `cleanup/svc-api-package`
Смысл:
- история аналитики отделена от истории самой зачистки
- дальше можно делать поэтапные коммиты именно под задачу заказчика
### Что сделано на первом проходе
Первый проход был намеренно консервативным. Убраны только:
- старые version-history комментарии в начале файлов
- явные закомментированные альтернативные строки и блоки, не влияющие на текущую логику
Изменены файлы:
- `v1/lib/field_set.cfm`
- `v1/lib/filter_build.cfm`
- `v1/resources/svc_default.cfc`
- `v1/lib/rest_api_helper.cfc`
- `v1/lib/field.cfm`
- `v1/lib/order_build.cfm`
### Что сознательно не трогалось на этом этапе
- `v1/Application.cfc`
- файл большой и содержит смесь прикладной логики, Taffy-override и спорных комментариев
- крупные `v1/resources/*.cfc`
- сначала нужен более точный проход по типам комментариев
- `v1/taffy/*`
- vendor layer
- backup-каталоги
- `v1/etc/bk/*`
- `v1/resources/bk/*`
### Проверка
После правок проверены измененные файлы на ошибки.
Результат:
- синтаксических ошибок в этих шести файлах не обнаружено
### Вывод по этапу
Подход с малыми безопасными правками подтвержден: можно убирать исторические version-header блоки и закомментированные альтернативы без риска немедленно сломать синтаксис.
### Следующий шаг
- сделать второй проход по прикладным файлам
- удалить комментарии в формате рассуждений там, где они явно не нужны для понимания текущей логики
- отдельно обработать `v1/Application.cfc` как специальный случай