Не существует единственного «правильного способа сделать это». Тем не менее, я думаю, что разработка через тестирование (TDD) поможет в вашем случае. Я считаю, что написание тестов сначала помогает сформировать API и делает код чище. Когда вы сначала пишете тесты, вы сначала думаете о том, как будет вызываться код (интерфейс или «что это должно делать»), прежде чем думать о реализации («как я должен это делать»).
Например, представьте себе создание модуля CRM. Вы можете подумать, что первое, что нужно сделать, это получить клиента, который потратил больше всего денег. Итак, вы бы написали тест:
Assert.AreEqual (Customer1, crm.GetMostValuableCustomer (), «самый ценный клиент не такой, как ожидалось»);
Затем вы можете добавить что-то вроде:
Assert.AreEqual (новый клиент [] {клиент1, клиент2, клиент3}, crm.GetCustomerByValue (), «GetCustomersByValue () не так, как ожидалось»);
Итак, дело в том, что вы думаете о коде с другой точки зрения (как потребитель, а не как производитель). Я верю, что это помогает мне писать намного более чистый код, и мне не нужно потом возвращаться и создавать регрессионные тесты позже. Хотелось бы, чтобы у меня был лучший пример, но, надеюсь, вы увидите, как работа с этим методом может реально помочь вам на этапе создания прототипа.