cleanup: remove debug artifacts from notification flows

This commit is contained in:
“Naeel”
2026-04-29 21:40:40 +04:00
parent 5952a4e344
commit 7808083a08
4 changed files with 121 additions and 20 deletions
+51
View File
@@ -722,3 +722,54 @@
- синтаксических ошибок в `v1/resources/instance_default.cfc` не обнаружено - синтаксических ошибок в `v1/resources/instance_default.cfc` не обнаружено
- синтаксических ошибок в `v1/resources/svc_default.cfc` не обнаружено - синтаксических ошибок в `v1/resources/svc_default.cfc` не обнаружено
- синтаксических ошибок в `v1/resources/instance_operation_default.cfc` не обнаружено - синтаксических ошибок в `v1/resources/instance_operation_default.cfc` не обнаружено
## Обновление: выбран bugfix-adjacent этап по debug-артефактам
Дата фиксации: 2026-04-29.
### Выбранные файлы
- `v1/resources/notification_ls.cfc`
- `v1/resources/instance_operation_default.cfc`
### Цель этапа
- убрать живые debug-артефакты, которые сейчас влияют на поведение ресурса
- сохранить общий контракт ответов и не трогать остальную бизнес-логику
- оформить это отдельным коммитом, а не смешивать с чисто косметическим cleanup
## Обновление: правило по спорным смысловым комментариям
Дата фиксации: 2026-04-29.
Уточнена трактовка исходного задания.
Решение на дальнейшую работу:
- явный закомментированный код, debug-хвосты и комментарии-рассуждения удалять
- спорные смысловые комментарии, где неочевидно, имелась ли в виду их обязательная зачистка, пока оставлять в коде
- не добавлять в исходники новые пометки вида `TODO удалить потом`, чтобы не создавать новый мусор
- вести отдельный внешний список кандидатов на удаление в `analysis/comment-removal-candidates-2026-04-29.md`
Это позволяет не терять спорные места и при этом не засорять исходники новыми временными комментариями.
### Результат bugfix-adjacent этапа
Изменены файлы:
- `v1/resources/notification_ls.cfc`
- `v1/resources/instance_operation_default.cfc`
Что сделано:
- удален живой тестовый возврат `Проверка связи 3` из ветки `invalidParamValue` в `notification_ls.cfc`
- убран сопутствующий закомментированный debug-слой вокруг этого ресурса
- в `instance_operation_default.cfc` удален `cfdump/cfabort` при ошибке десериализации стейта
- вместо аварийного останова оставлен безопасный fallback на пустые структуры
Дополнительно:
- создан внешний список спорных смысловых комментариев: `analysis/comment-removal-candidates-2026-04-29.md`
### Проверка
Измененные файлы проверены на ошибки.
Результат:
- синтаксических ошибок в `v1/resources/notification_ls.cfc` не обнаружено
- синтаксических ошибок в `v1/resources/instance_operation_default.cfc` не обнаружено
@@ -0,0 +1,64 @@
# Спорные кандидаты на удаление комментариев
Дата создания: 2026-04-29.
Назначение файла:
- фиксировать комментарии, которые могут подпадать под удаление по исходному заданию
- не размечать эти места внутри исходников новыми `TODO`
- оставить возможность позже быстро пройтись и удалить их одним отдельным этапом, если будет подтверждение
## Статус правила
- явный закомментированный код и debug-хвосты удаляются сразу
- спорные смысловые комментарии временно оставляются в коде
- кандидаты на последующее удаление записываются сюда
## Кандидаты
### 1. `v1/resources/instance_operation_default.cfc`
Оставлены пока что:
- комментарий про получение параметров из свежего стейта
- комментарии вокруг `formatter`, `value_list`, `default_compute`, `nested_ref_data`
- комментарии о частичном дублировании и временности некоторых решений
Почему спорно:
- часть комментариев выглядит как внутренние рассуждения автора
- часть при этом все еще помогает понять, зачем код делает нетривиальные вещи
Рекомендация:
- при отдельном подтвержденном этапе можно удалить большую часть комментариев-оценок и оставить только технические пояснения к формату данных
### 2. `v1/resources/instance_default.cfc`
Оставлены пока что:
- технические комментарии вокруг структуры шаблона экземпляра и вызова генерации имени
Почему спорно:
- часть уже очищена, остаток невелик и не мешает, но при строгом чтении задания может быть сокращен еще сильнее
Рекомендация:
- если потребуется максимально сухой код, пройтись повторно и убрать остаточные пояснения, не влияющие на понимание API-контракта
### 3. `v1/resources/notification_ls.cfc`
Оставлены пока что:
- короткие технические комментарии про фильтрацию и сортировку
Почему спорно:
- они не являются рассуждениями, но при очень агрессивной зачистке тоже могут считаться лишними
Рекомендация:
- удалять только если решено доводить list-resource до почти полного отсутствия комментариев
### 4. `v1/resources/instance_operation_cfs_param_ls.cfc`
Ожидаемо спорный файл для будущего этапа:
- содержит большой пласт рассуждений автора, предупреждений и объяснений по валидации, уникальности и доступу
Почему вынесено заранее:
- файл крупный и неоднозначный
- лучше разбирать отдельным этапом, чем смешивать с обычной зачисткой компактных ресурсов
Рекомендация:
- перед правкой сначала отделить чистый commented-out код от действительно полезных пояснений к ограничениям параметров
+2 -1
View File
@@ -57,7 +57,8 @@
<cfset var currentState = deserializeJson(local.qState.instance_data)/> <cfset var currentState = deserializeJson(local.qState.instance_data)/>
<cfset local.instanceDataParams = deserializeJson(local.qState.params)/> <cfset local.instanceDataParams = deserializeJson(local.qState.params)/>
<cfcatch type="ANY"> <cfcatch type="ANY">
<cfdump var=#cfcatch#/><cfabort/> <cfset currentState = {}/>
<cfset local.instanceDataParams = {}/>
</cfcatch> </cfcatch>
</cftry> </cftry>
</cfif> </cfif>
+4 -19
View File
@@ -2,7 +2,7 @@
<cfsilent> <cfsilent>
<cfimport prefix="m" taglib="../lib"/> <cfimport prefix="m" taglib="../lib"/>
<cfset this.helper=CreateObject("component","lib.rest_api_helper")/><!---*** странно, почему мы его видим?---><!---вынести в апп?---> <cfset this.helper=CreateObject("component","lib.rest_api_helper")/>
</cfsilent> </cfsilent>
<!---спецификация полей, пригодных для фильтрации (?и сортировки)---> <!---спецификация полей, пригодных для фильтрации (?и сортировки)--->
@@ -25,19 +25,18 @@
<cfargument name="page" type="string" hint="type:integer" default="1"/> <cfargument name="page" type="string" hint="type:integer" default="1"/>
<cfargument name="orderBy" type="string" hint="type:string, description:comma-separated list of fields to sort by, example:fld1.ASC,fld2.DESC,fld3.ASC" default=""/> <cfargument name="orderBy" type="string" hint="type:string, description:comma-separated list of fields to sort by, example:fld1.ASC,fld2.DESC,fld3.ASC" default=""/>
<cftry> <!--- отладка на время проблемы 404 ---> <cftry>
<cfset local={}/> <cfset local={}/>
<!---parse and validate request parameters---> <!---разбор и проверка параметров запроса--->
<cftry> <cftry>
<cfset this.helper.validateField(arguments, "pageSize", "integer")/> <cfset this.helper.validateField(arguments, "pageSize", "integer")/>
<cfset this.helper.validateField(arguments, "page", "integer")/> <cfset this.helper.validateField(arguments, "page", "integer")/>
<!---мы мирно игнорируем поля, отсутствующие в спецификации, что позволяет не делать исключения для orderBy и т.п.---> <!---мы мирно игнорируем поля, отсутствующие в спецификации, что позволяет не делать исключения для orderBy и т.п.--->
<cfset var filter=this.helper.parseFilterParams(this.fieldsSpec)/> <cfset var filter=this.helper.parseFilterParams(this.fieldsSpec)/>
<!--- <cfset var order=this.helper.parseOrderBy(this.fieldsSpec, arguments.orderBy)/> --->
<cfcatch type="invalidParamValue"><cfreturn representationOf("Проверка связи 3")> <cfcatch type="invalidParamValue">
<cfreturn representationOf(this.helper.formatBadRequestError(cfcatch)).withStatus(400)/> <cfreturn representationOf(this.helper.formatBadRequestError(cfcatch)).withStatus(400)/>
</cfcatch> </cfcatch>
<cfcatch type="any"> <cfcatch type="any">
@@ -49,8 +48,6 @@
<cfset var maxrows=arguments.pageSize*arguments.page/> <cfset var maxrows=arguments.pageSize*arguments.page/>
<cfset var startrow=arguments.pageSize*(arguments.page-1)+1/> <cfset var startrow=arguments.pageSize*(arguments.page-1)+1/>
<!--- <cfset request.locateIamService()/> --->
<cfquery name="local.qRead" result="local.result"> <cfquery name="local.qRead" result="local.result">
select select
<m:field_set titleMapOut="local.titleMap" lengthOut="local.fieldCount"> <m:field_set titleMapOut="local.titleMap" lengthOut="local.fieldCount">
@@ -61,11 +58,8 @@
<m:field>n.timeout_sec</m:field> <m:field>n.timeout_sec</m:field>
<m:field>n.contragent_id</m:field> <m:field>n.contragent_id</m:field>
<m:field>k.external_uid</m:field> <m:field>k.external_uid</m:field>
<!--- <m:field><cfqueryparam cfsqltype="cf_sql_other" value=#arguments.companyUid#/> as arguments_company_uid</m:field> --->
<m:field>to_char(n.dt_show_from, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_show_from</m:field> <m:field>to_char(n.dt_show_from, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_show_from</m:field>
<m:field>to_char(n.dt_show_to, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_show_to</m:field> <m:field>to_char(n.dt_show_to, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_show_to</m:field>
<!--- <m:field>to_char(n.dt_created, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_created</m:field>
<m:field>to_char(n.dt_updated, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_updated</m:field> --->
</m:field_set> </m:field_set>
from notification n from notification n
left outer join contragent k on (n.contragent_id=k.contragent_id) left outer join contragent k on (n.contragent_id=k.contragent_id)
@@ -74,11 +68,8 @@
AND (n.dt_show_to >= CURRENT_TIMESTAMP OR n.dt_show_to IS NULL) AND (n.dt_show_to >= CURRENT_TIMESTAMP OR n.dt_show_to IS NULL)
AND (k.external_uid = <cfqueryparam cfsqltype="cf_sql_other" value=#arguments.companyUid#/> OR n.contragent_id IS NULL) AND (k.external_uid = <cfqueryparam cfsqltype="cf_sql_other" value=#arguments.companyUid#/> OR n.contragent_id IS NULL)
order by dt_show_from desc order by dt_show_from desc
<!--- <m:order_build sortCollection=#this.helper.parseNumericOrder(local.titleMap, arguments.orderBy)# fieldCount=0/>--->
limit #maxrows# limit #maxrows#
</cfquery> </cfquery>
<!--- <cfdump var=#local.qRead#/><cfabort/> --->
<cfquery name="local.qTotal"> <cfquery name="local.qTotal">
select count(*) as cnt select count(*) as cnt
@@ -107,7 +98,6 @@
<cfset "out.size"=#arrayLen(resultCollection)#/> <cfset "out.size"=#arrayLen(resultCollection)#/>
<cfset "out.results"=#resultCollection#/> <cfset "out.results"=#resultCollection#/>
<cfset "out.runDurationMs"=getTickCount()-request.startTickCount/> <cfset "out.runDurationMs"=getTickCount()-request.startTickCount/>
<!---<cfset "out.sql"=#local.result.sql#/>--->
<cfreturn representationOf(out)/> <cfreturn representationOf(out)/>
<cfcatch type="any"> <cfcatch type="any">
@@ -116,9 +106,4 @@
</cftry> </cftry>
</cffunction> </cffunction>
<!--- <cffunction name="get" hint="проверка">
<cfreturn representationOf("Проверка связи")/>
</cffunction> --->
</cfcomponent> </cfcomponent>