Legacy Code: Note 1

Nikita Vaniasin | Apr 27, 2015 min read
1 Юнит тесты не являются таковыми, если:
1) они медленные (лезут в БД, сеть или на диск)
2) нужно что-то настраивать чтобы их запустить
2 In memory DB
3 Можно немного портить код, если разделив зависимости, можно будет написать тест.
Это как шрам после хирургической операции
4 fit.c2.com — Тулза для превращения спеки в Юнит тесты и обратно. Устарела, но возможно есть аналоги
5 Если совсем всё плохо — каждый день убирайте глобальную переменную из кода
6 Просто напоминалка: Command/Query Separation
7 Если пишите тесты — не усердствуйте с final, т.к. он в 99% случаев затрудняет тестирование
8 Scratch Refactoring
9 Naked CRC
10 В каждой команде должен быть человек или набор людей которые отвечают за архитектуру, а не так что все пишут что хотят.
11 Архитектуру каждого проекта нужно описать коротким описанием: Story
12 Очевидный способ протестировать сложный нетестируемый метод:
вынести тело в объект и тестировать его
13 Feature Sketch: какие поля используются в методах ? — Разделение responsibilities
14 Pair programming: правка Legacy Code это как операция. А хирурги никогда не оперируют в одиночку