Андрей Ганичев - Архитектурные тесты
Vložit
- čas přidán 28. 08. 2023
- Ближайшая конференция - DotNext 2024, 10 - 11 сентября, Москва + online
Подробности и билеты: jrg.su/x2GKnA
- -
Когда речь заходит о более или менее сложной системе, для которой предполагается длительное существование, а главное, развитие, вопрос архитектуры становится крайне важным. Но как в процессе жизни системы контролировать правила, которые предполагает та или иная архитектура?
Спикер рассмотрит различные варианты и подробно остановится на одном из них - архитектурных тестах.
С точки зрения реализации, архитектурные тесты - это автоматические тесты, написанные с использованием привычных фреймворков для юнит-тестирования. Архитектурные тесты обладают всеми достоинствами автотестов: быстрый фидбек, наглядная фиксация правил в тестах и возможность встраивания в CI-пайплайн. В докладе обсудим саму идею, поговорим о том, что именно можно тестировать, и рассмотрим существующие OS-инструменты. - Věda a technologie
Примечание. 45:24: «open source», в общем случае, не значит автоматом «бесплатно для коммерческого использования».
5:41 - происходит подмена понятий. Мартин Фаулер в статье (из которой и взят слайд) говорит не об «архитектуре», а о «качестве кода» (в чём бы оно не измерялось»). При этом, почему-то докладчик даёт своё определение «архитектуры» и потом 1-в-1 подставляет его вместо «качества кода» Фаулера.
Спорный тезис, что архитектурные тесты - это «живая документация». То что «живая» - это понятно. Но «документация»: ок, у нас задекларировано, что одни проекты не могут зависеть от других. Открываю я тест: там написано «нельзя». А почему нельзя? А когда можно? А у кого спросить? Ничего этого нет. У нас есть лишь декларация намерений. Без пояснений.
То, что обычные модульные тесты, при должном старании, - это документация, это факт. Я открываю тест и мне показано, как «дёргать» код. При этом «быть документацией» - вполне себе небинарная характеристика тестов. Она может быть высокой или низкой.
Запрет на публичные сеттеры не абсолютен, а больше является красным флагом. Если домен реально поддерживает операцию установки свойства, то сеттер может быть публичен, но да, в 99% случаев, операции прямой установки свойства в домене не существует.