Size: a a a

Software Design/Architecture/Zen

2021 May 23

SP

Sergey Protko in Software Design/Architecture/Zen
а так помимо TDD есть и другие техники со схожей идеей.
источник

SP

Sergey Protko in Software Design/Architecture/Zen
если в разрезе TDD - я например заставляю людей в тестах делать несколько ограничений:

- для зависимостей которые возвращают какой-то результат использовать стабы, моки только для void
- если ты подменяешь реализацию контракта - подменяй реализацию ВСЕХ методов согласно контракту. Пример - size и isEmpty у коллекций - если size = 0 то isEmpty  = true. Если тебе для этого приходится подменять 50 методов - значит ты нарушил ISP. И не важно что реализации только size нужен
- стабить можно только зависимости контракт которых ты контролируешь.
источник

SP

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

DT

Dmitriy Tkachenko in Software Design/Architecture/Zen
Взаимозаменяемые?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ну есть скажем контрактрое программирование (Design by Contract - не мог вспомнить), по факту вполне себе заменяет.
источник

DT

Dmitriy Tkachenko in Software Design/Architecture/Zen
Ну оно как бы и с тдд не конфликтует
источник

SP

Sergey Protko in Software Design/Architecture/Zen
просто избыточно юзать и то и то.
источник

SP

Sergey Protko in Software Design/Architecture/Zen
источник

DT

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

SP

Sergey Protko in Software Design/Architecture/Zen
источник

SP

Sergey Protko in Software Design/Architecture/Zen
тут важно просто понимать что TDD это про дизайн системы, а не про "тесты".
источник

SP

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

SP

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

DT

Dmitriy Tkachenko in Software Design/Architecture/Zen
Ну у архитектуры тоже есть требования для соответствия
источник

SP

Sergey Protko in Software Design/Architecture/Zen
"должно быть гибко должно быть охуенно". Такие требования?)
источник

DT

Dmitriy Tkachenko in Software Design/Architecture/Zen
Значит они тоже могут быть формализованы и могу быть нарушены (регресс)
источник

SP

Sergey Protko in Software Design/Architecture/Zen
или ты про нефункциональные?
источник

DT

Dmitriy Tkachenko in Software Design/Architecture/Zen
Вообще про явление тестов
источник

DT

Dmitriy Tkachenko in Software Design/Architecture/Zen
А не про конкретные
источник

SP

Sergey Protko in Software Design/Architecture/Zen
хз о чем ты тогда
источник