docs: сняты проверки над проверками
- Из «Любой узел» в review.md убраны три свойства о годности самих проверок: мутация теста, мутация оракула критерия, требование без сценария. - Из go-linters.md снята «Лестница механизации», ссылки на неё переписаны в конвенциях, их индексе и журнале дефектов.
This commit is contained in:
+9
-20
@@ -69,22 +69,11 @@
|
||||
|
||||
- изменённое место покрыто хоть одним **проходящим** тестом. Тест, который
|
||||
никогда не был зелёным, обнуляет сигнал всего пакета: настоящий отказ в нём
|
||||
становится неотличим от привычного шума (журнал, запись 2026-08-10);
|
||||
- проверка **способна упасть**. Утверждение, разбирающее ответ в ту же
|
||||
структуру, чьи теги и составляют проверяемый контракт, меняется вместе с ним
|
||||
и никогда не ловит поломку; такое судят по сырому виду ответа. Признак ищется
|
||||
мутацией: сломай проверяемое свойство и убедись, что тест краснеет (журнал,
|
||||
запись 2026-08-11);
|
||||
- **то же и об оракуле критерия приёмки, не только о тесте.** Критерий, чей
|
||||
единственный оракул — молчание линтера, годится ровно тогда, когда линтер
|
||||
краснеет на **всех** негодных реализациях; проверяется той же мутацией.
|
||||
Прецедент: «отказ `Close` не теряется молча» принимался молчанием `errcheck`,
|
||||
а тот пропускал `_ = conn.Close()` — реализацию, теряющую отказ целиком
|
||||
(журнал, запись 2026-08-11 про недостижимую норму; закрыто
|
||||
[решением](adr/ADR-2026-08-11-errcheck-check-blank.md));
|
||||
- **требование без сценария не имеет оракула** и потому не может быть нарушено
|
||||
заметно. Норма, которую нечем уронить, расходится с кодом молча — и расходится
|
||||
тем вернее, чем убедительнее написана (журнал, запись 2026-08-11).
|
||||
становится неотличим от привычного шума (журнал, запись 2026-08-10).
|
||||
|
||||
Свойств о годности самих проверок здесь больше нет: требования мутировать тест,
|
||||
оракул критерия приёмки и норму сняты 2026-08-13 решением владельца — проверка
|
||||
над проверкой стоит внимания каждого прогона и отвечает редко.
|
||||
|
||||
### Типовые ложноположительные
|
||||
|
||||
@@ -357,10 +346,10 @@ API и имя не откатываются обратной правкой по
|
||||
которого писали. Мутация была, но одна — нужна была по одной на каждую форму
|
||||
- **Что меняем:** правило судит по типу приёмника (`analyze-types`,
|
||||
`httptest.ResponseRecorder.Header` и `.HeaderMap`) и ловит все шесть форм;
|
||||
проверено мутацией по каждой. Отсюда же строка в
|
||||
docs/conventions/go-linters.md, «Лестница механизации»: запрет по имени,
|
||||
обходимый лишней строкой, требует ступени тест-сканера, хотя выглядит запретом
|
||||
по имени
|
||||
проверено мутацией по каждой. Урок записи: запрет по имени, обходимый лишней
|
||||
строкой, свойства не держит — такому свойству нужен тест-сканер. Строка об этом
|
||||
стояла в `docs/conventions/go-linters.md`, разделе «Лестница механизации»;
|
||||
раздел снят 2026-08-13, урок остался здесь
|
||||
|
||||
## 2026-08-12 — закрыли поверхность так, что войти не мог никто [пойман ревью]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user