Одно из важнейших решений по поводу кодовой базы (также предписанных методологией ХР) состояло в том, что весь код должен проходить модульное тестирование. Модульное тестирование обладает многими преимуществами; в частности, оно позволяет изменять часть кода, не беспокоясь о том, что это нарушит работу всех остальных частей. Некоторые области внутренней структуры Архитектурного городка подвергались весьма радикальной переработке, и модульные тесты давали нам уверенность в том, что в остальных областях системы ничего не «сломается». Например, принципиальные изменения были внесены в потоковую модель и интерфейс подключения к аудиоконвейеру. Это были серьезные архитектурные изменения, вносимые на относительно поздней стадии разработки подсистемы, но остальной код, взаимодействующий с аудиоблоком, продолжал работать идеально. Модульные тесты дали нам возможность изменять архитектуру.
Со временем Архитектурный городок становился все более зрелым проектом, и подобные «крупные» изменения происходили все реже. После переработки архитектуры ситуация стабилизировалась, и в дальнейшем происходили лишь небольшие архитектурные изменения. Система развивалась быстро, по итеративному принципу. В ходе каждого этапа архитектура совершенствовалась, пока не пришла к относительно стабильному состоянию.
Примечание
Хороший набор автоматизированных тестов для вашей системы позволяет вносить фундаментальные архитектурные изменения с минимальным риском. Он создает пространство для вашей работы.
Related posts: