Size: a a a

Software Design/Architecture/Zen

2021 May 26

Ш

Шура in Software Design/Architecture/Zen
Слышали. Но не всегда ее соблюдают. В этом проблема. И в таком случае лучше их оставлять.
источник

SP

Sergey Protko in Software Design/Architecture/Zen
так, вы не то обсуждаете. Никто не говорит что юнит тесты не нужны. Суть в том что проблема и польза тестов прямо пропорциональна дизайну системы. Если система хуево спроектирована то есть тесты или нет тестов - на качество внешнее это не повлияет.

За внешним качеством следят приемочные тесты
источник

NF

Nikita Fedorov in Software Design/Architecture/Zen
так-то юниты и должны быть хрупкими, обратное было бы странно
источник

SP

Sergey Protko in Software Design/Architecture/Zen
не должны они быть хрупкими. Если ты меняешь реализацию без изменений контрактов тест не должен упасть
источник

SP

Sergey Protko in Software Design/Architecture/Zen
иначе цикл red-green-refactoring становится ненадежным (тебе надо править и тест и реализацию и ты не поймешь сломалась реализация или надо тест поправить)
источник

Ш

Шура in Software Design/Architecture/Zen
Я что-то под вечер уже торможу.. но что такое хрупкие тесты?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
которые ломаются при рефакторинге
источник

SP

Sergey Protko in Software Design/Architecture/Zen
рефакторинг - это когда реализация меняется а контракт сохраняется
источник

Ш

Шура in Software Design/Architecture/Zen
аа.. догадался что такое хрупкие
источник

SP

Sergey Protko in Software Design/Architecture/Zen
сайд эффекты - это часть контракта. На всякий случай
источник

Ш

Шура in Software Design/Architecture/Zen
я понял.. спасибо :)
источник

NF

Nikita Fedorov in Software Design/Architecture/Zen
это довольно условное разделение, если взять тот же домен и юниты на сущности, то мы почти всегда меняем их контракты, но это все ещё могут быть рефакторинги, потому что поведение в целом не меняется
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ты про "добавляю доп методы"?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
это ты нарушаешь SRP скорее всего)
источник

SP

Sergey Protko in Software Design/Architecture/Zen
если у тебя контракты содержат вещи которые не влияют на поведение общее
источник

SP

Sergey Protko in Software Design/Architecture/Zen
и нет, лучше делить именно так. меняешь контракт - потенциально можешь поменять поведение - это не рефакторинг
источник

SP

Sergey Protko in Software Design/Architecture/Zen
иначе тебе надо будет дать определение "поведению"
источник

SP

Sergey Protko in Software Design/Architecture/Zen
вообще сложно придумать изменение контракта без изменения поведения
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ну вот разве что SRP нарушен, что "Обычное дело когда сущности в домене" ;)
источник

NF

Nikita Fedorov in Software Design/Architecture/Zen
ну да, ты прав, ты  прав
источник