Так что может быть невозможно дать вам полный ответ о «лучших методах», не зная больше о вашем домене, но я могу вам сказать, что вы можете настраивать себя на случай катастрофы, подумав о деталях внедрения на ранней стадии. 1001 *
Если вы похожи на меня, то вас учили, что хороший OOD / OOP тщательно детализирован и включает в себя BDUF . Только позже в моей карьере я узнал, что это - причина , так что многие проекты становятся вопиюще неосуществимыми позже в будущем. Делаются предположения о том, как проект может работать, вместо того, чтобы позволить дизайну возникать естественным образом из того, как на самом деле будет использоваться код.
Проще говоря: вам нужно делать BDD / TDD (Поведение / разработка через тестирование).
- Начните с наброска приблизительной модели предметной области, но избегайте слишком большого количества деталей.
- Выберите функциональную область, с которой вы хотите начать. Предпочтительно в верхней части модели или с той, с которой пользователь будет взаимодействовать.
- Мозговой штурм ожидаемой функциональности, которая должна быть у устройства, и составление списка.
- Запустите цикл TDD на этом устройстве, а затем активно проводите рефакторинг.
То, что вы в итоге получите, это именно то, что вам нужно, и ничего, что вам не нужно (большую часть времени). Вы получаете дополнительное преимущество, имея полное покрытие тестами, поэтому вы можете проводить рефакторинг в будущем, не беспокоясь о поломках:)
Я знаю, что здесь я не дал вам никакого кода, но это потому, что все, что я вам даю, вероятно, будет неверным, и тогда вы застрянете с этим. Только вы знаете, как на самом деле будет использоваться код, и вам следует начать с написания кода таким образом. TDD фокусируется на том, как должен выглядеть код, а затем вы можете по мере необходимости заполнять детали реализации.
Полное объяснение этого выходит за рамки данного поста, но в Интернете доступно множество ресурсов, а также множество книг, которые являются отличными источниками для начала практики TDD. Эти два парня должны дать вам хорошее начало.