docs(ptica): шесть мест, где документация расходилась с кодом (#2464) #2968
No reviewers
Labels
No labels
Fable 5 ревью
GG-форсайт
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
feedback/max
generative
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
ИРД
вторичка
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#2968
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/2464-docs-vs-code"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Шесть пунктов эпика #2464 про расхождение документации с кодом. Каждый проверен против кода или прод-данных, а не переписан по впечатлению.
1.
macro_coefficient.py:99— сумма backed-весовКомментарий обещал
0.45. С #946inflationстал backed-каналом с весом 0.08:Сумму тогда не обновили.
2–3.
macro_series.py:305,sales_series.py:496— недостижимое поведениеОба обещали пустой результат «при
months_back < 0». Код клампит черезmax(0, months_back), поэтому сетка всегда содержит текущий месяц. Проверено прогоном:Документировалось поведение, которого нет.
4.
analytics_queries._velocity_baseline— ложное про словарь районовУтверждалось:
objective_corpus_room_month.districtmatchesdomrf_kn_objects.district_name. Соседний_elasticity_coefописывает ту же колонку правильно — это МИКРО-вокабуляр.Замер прода:
Из 8 админ-имён в микро-колонке встречаются 4, и с заметно меньшим объёмом: Ленинский 55 точек против 621 у Академического, Чкаловский и Верх-Исетский — ноль. Вызывающий передаёт сюда именно админ-имя.
Резолв admin→micros здесь не делаю — это отдельная задача с изменением живых показателей. Docstring лишь перестаёт утверждать обратное.
5.
nspd_denorm.denorm_dump— контракт транзакцииDocstring: «Caller отвечает за commit/close». Код на строке 373 вызывает
db.commit()сам. Вызывающий, понадеявшийся обернуть это в свою транзакцию, получил бы уже зафиксированные строки.6.
nspd_client.search_by_quarter— смета запросов занижена в 25–42 разаТри из пяти core-слоёв (
territorial_zones,red_lines,engineering_structures) и все zouit/risk идутget_features_in_bbox_gridприgrid_n=7— по 49 запросов каждый.Это не безобидно: по оценке «22 запроса, 13 секунд» слои включают не задумываясь, а объём запросов здесь — прямой фактор WAF-риска. Ср. #2956, где НСПД сейчас отдаёт 403 на IP VPS.
Гейт на два проверяемых числа
Прозаические пункты гейтом не закроешь, а два числа — да.
test_2464_docs_match_code.pyсверяет написанное с вычисленным из констант.0.45в комментарий6/11/22в сметуПлюс контроль на сам гейт: если
_GRID_WALK_LAYERSопустеет, расчёт совпал бы с любой мелкой цифрой тавтологически — тест это ловит.Прогоны