Когда я начинаю новый проект, я часто сразу начинаю думать о деталях реализации. «Где я собираюсь поместить DataBaseHandler? Как я должен его использовать? Должны ли классы, которые хотят его использовать, выходить из какого-то абстрактного суперкласса? .. Должен ли я использовать интерфейс? Какой уровень абстракции я собираюсь использовать в своем классе, который содержит методы отправки запросов и анализа данных?
Я заканчиваю тем, что остановился в течение долгого времени, потому что я хочу закодировать для расширяемости и возможности повторного использования. Но я чувствую, что почти невозможно забыть о том, как реализовать идеально.
И потом, если я попытаюсь просто сказать «винт это, просто сделай это!», Я довольно быстро ударился о кирпичную стену, потому что мой код не организован, я смешал уровни абстракций и т. Д.
Какие у вас есть методы / методы для запуска в новом проекте, а также для настройки логической / модульной структуры, которая будет хорошо масштабироваться?
- - РЕДАКТИРОВАТЬ - -
Ну, это уже тот тип вопроса, на который трудно принять ответ, но он хотел получить больше отзывов, посмотреть, есть ли какой-то консенсус. TDD звучит очень круто, и, честно говоря, я намеревался научиться использовать JUnit и т. Д. В то же время, что думают фанаты TDD о том, что одна законная точка в отношении TDD решает мою проблему? Особые проблемы заключаются в том, что TDD на самом деле не решает вопрос дизайна. Конечно, я согласен с тем, что TDD поможет мне определить, что я хочу делать, и затем я смогу постепенно проработать «как», но есть много различных общих шаблонов / структур проектирования, которые все могут пройти модульное тестирование. Вот и все: он тестирует отдельные ЕДИНИЦЫ. Я думаю, я немного смущен ... Я не знаю. Может я'
Благодарность!