cleanup: remove debug artifacts from notification flows
This commit is contained in:
@@ -722,3 +722,54 @@
|
||||
- синтаксических ошибок в `v1/resources/instance_default.cfc` не обнаружено
|
||||
- синтаксических ошибок в `v1/resources/svc_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 код от действительно полезных пояснений к ограничениям параметров
|
||||
@@ -57,7 +57,8 @@
|
||||
<cfset var currentState = deserializeJson(local.qState.instance_data)/>
|
||||
<cfset local.instanceDataParams = deserializeJson(local.qState.params)/>
|
||||
<cfcatch type="ANY">
|
||||
<cfdump var=#cfcatch#/><cfabort/>
|
||||
<cfset currentState = {}/>
|
||||
<cfset local.instanceDataParams = {}/>
|
||||
</cfcatch>
|
||||
</cftry>
|
||||
</cfif>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
<cfsilent>
|
||||
<cfimport prefix="m" taglib="../lib"/>
|
||||
<cfset this.helper=CreateObject("component","lib.rest_api_helper")/><!---*** странно, почему мы его видим?---><!---вынести в апп?--->
|
||||
<cfset this.helper=CreateObject("component","lib.rest_api_helper")/>
|
||||
</cfsilent>
|
||||
|
||||
<!---спецификация полей, пригодных для фильтрации (?и сортировки)--->
|
||||
@@ -25,19 +25,18 @@
|
||||
<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=""/>
|
||||
|
||||
<cftry> <!--- отладка на время проблемы 404 --->
|
||||
<cftry>
|
||||
<cfset local={}/>
|
||||
|
||||
<!---parse and validate request parameters--->
|
||||
<!---разбор и проверка параметров запроса--->
|
||||
<cftry>
|
||||
<cfset this.helper.validateField(arguments, "pageSize", "integer")/>
|
||||
<cfset this.helper.validateField(arguments, "page", "integer")/>
|
||||
|
||||
<!---мы мирно игнорируем поля, отсутствующие в спецификации, что позволяет не делать исключения для orderBy и т.п.--->
|
||||
<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)/>
|
||||
</cfcatch>
|
||||
<cfcatch type="any">
|
||||
@@ -49,8 +48,6 @@
|
||||
<cfset var maxrows=arguments.pageSize*arguments.page/>
|
||||
<cfset var startrow=arguments.pageSize*(arguments.page-1)+1/>
|
||||
|
||||
<!--- <cfset request.locateIamService()/> --->
|
||||
|
||||
<cfquery name="local.qRead" result="local.result">
|
||||
select
|
||||
<m:field_set titleMapOut="local.titleMap" lengthOut="local.fieldCount">
|
||||
@@ -61,11 +58,8 @@
|
||||
<m:field>n.timeout_sec</m:field>
|
||||
<m:field>n.contragent_id</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_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>
|
||||
from notification n
|
||||
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 (k.external_uid = <cfqueryparam cfsqltype="cf_sql_other" value=#arguments.companyUid#/> OR n.contragent_id IS NULL)
|
||||
order by dt_show_from desc
|
||||
<!--- <m:order_build sortCollection=#this.helper.parseNumericOrder(local.titleMap, arguments.orderBy)# fieldCount=0/>--->
|
||||
limit #maxrows#
|
||||
</cfquery>
|
||||
<!--- <cfdump var=#local.qRead#/><cfabort/> --->
|
||||
|
||||
|
||||
<cfquery name="local.qTotal">
|
||||
select count(*) as cnt
|
||||
@@ -107,7 +98,6 @@
|
||||
<cfset "out.size"=#arrayLen(resultCollection)#/>
|
||||
<cfset "out.results"=#resultCollection#/>
|
||||
<cfset "out.runDurationMs"=getTickCount()-request.startTickCount/>
|
||||
<!---<cfset "out.sql"=#local.result.sql#/>--->
|
||||
<cfreturn representationOf(out)/>
|
||||
|
||||
<cfcatch type="any">
|
||||
@@ -116,9 +106,4 @@
|
||||
</cftry>
|
||||
|
||||
</cffunction>
|
||||
|
||||
<!--- <cffunction name="get" hint="проверка">
|
||||
<cfreturn representationOf("Проверка связи")/>
|
||||
</cffunction> --->
|
||||
|
||||
</cfcomponent>
|
||||
Reference in New Issue
Block a user