Сегодня попробовал инструмент Dusk с открытым исходным кодом — и один результат меня удивил.
Гипофиз (pituitary), созданный, чтобы ловить, когда документы, спецификации и код перестают совпадать. Указываете ему на репозиторий — он индексирует спецификации и decision records, помечает расхождения, которые противоречат уже принятому. Прогнал его на тестовом diff, который явно ломал существующую спецификацию.
Проверка не упала. Подумал, что это баг.
Не было. Инструмент ищет комментарий с обоснованием рядом с изменением — WHY, HACK и подобные маркеры. Если кто-то уже отметил отклонение как намеренное, он направляется по другому маршруту, чем простое случайное «поплывшее» несоответствие.
Вот в чём реальный разрыв. Противоречие и нарушение — это не одно и то же здесь. Спецификация говорит одно, код — другое; всё равно это логируется, а не валится, если человек уже объяснил разрыв.
Спецификация написана и проиндексирована, код расходится, diff проходит check-doc-drift, обнаруживается противоречие, инструмент ищет рядом строки с этим маркером: намеренные отклонения идут по одному пути, необъяснённые — валят сборку.
Но никто не проверяет, всё ли ещё значит что-то этот маркер. Ничто не мешает кому-то написать WHY, чтобы просто заткнуть флаг, и ничто не проверяет, верно ли по-прежнему исходное обоснование старого.
Что будет с этим соглашением в сотнях PR в неделю, когда оно будет стоять между регрессией и тихим успешным проходом? 👍
#dusk $DUSK @Dusk
Гипофиз (pituitary), созданный, чтобы ловить, когда документы, спецификации и код перестают совпадать. Указываете ему на репозиторий — он индексирует спецификации и decision records, помечает расхождения, которые противоречат уже принятому. Прогнал его на тестовом diff, который явно ломал существующую спецификацию.
Проверка не упала. Подумал, что это баг.
Не было. Инструмент ищет комментарий с обоснованием рядом с изменением — WHY, HACK и подобные маркеры. Если кто-то уже отметил отклонение как намеренное, он направляется по другому маршруту, чем простое случайное «поплывшее» несоответствие.
Вот в чём реальный разрыв. Противоречие и нарушение — это не одно и то же здесь. Спецификация говорит одно, код — другое; всё равно это логируется, а не валится, если человек уже объяснил разрыв.
Спецификация написана и проиндексирована, код расходится, diff проходит check-doc-drift, обнаруживается противоречие, инструмент ищет рядом строки с этим маркером: намеренные отклонения идут по одному пути, необъяснённые — валят сборку.
Но никто не проверяет, всё ли ещё значит что-то этот маркер. Ничто не мешает кому-то написать WHY, чтобы просто заткнуть флаг, и ничто не проверяет, верно ли по-прежнему исходное обоснование старого.
Что будет с этим соглашением в сотнях PR в неделю, когда оно будет стоять между регрессией и тихим успешным проходом? 👍
#dusk $DUSK @Dusk

