Myślę, że wiele osób próbuje nad-inżynierować rozwiązania. Przyjmują podejście „Adam i Ewa”, gdy tylko nieco bardziej praktyczne uprościłoby sprawy o wiele.
Specjalistyczne klasy nie są złe, są naturalną konsekwencją dźwiękowego projektowania oprogramowania.
Moim zdaniem wielu programistów nie rozumie tego i nie znam żadnej książki, która by to wyjaśniała.
Inną rzeczą, która z pewnością pomaga, jest TDD, która pozwala zrozumieć „w jaki sposób” będziesz korzystać z zajęć w praktyce i może w wielu przypadkach uratować dzień, ponieważ pokazuje ewentualne problemy / ograniczenia na początku dnia.
Na koniec, kolejną BARDZO ważną rzeczą, której bym szukał, gdybym był tobą, są wzory. Wzorce projektowe to sposób, w jaki ludzie mądrzejsi od ciebie lub mnie rozwiązują problemy programistyczne. Pomysł na wzorce, zgadnij co ?, polega na tym, że nie można ich używać jako książek kucharskich, przepisów, które po prostu uderzasz tam, ale w zamyśleniu i przede wszystkim rozumiejąc domenę aplikacji.
Mądre użycie wzoru znacznie zmniejszy ilość szczegółów, którymi musisz zarządzać.
Dobra biblioteka wzorców projektowych zaprojektowana z myślą o twoich potrzebach okaże się bezcenna. Zobaczmy bardzo prosty przykład, aby umieścić rzeczy w kontekście:
wyobraź sobie, że masz formularz, w którym po naciśnięciu przycisku inne formularze muszą się zaktualizować. Jest to typowy wzorzec „obserwatora”. Masz podmiot i kilku obserwatorów, którzy rejestrują się w temacie. Dlaczego musisz wdrożyć interfejs? Możesz po prostu dodać metody, lub jeszcze lepiej, użyć interfejsu dla obserwatorów i ogólnej listy dla tematu. Teraz masz to, co najlepsze z obu światów: niezależność dla obserwatorów i brak bzdurnych rzeczy na ten temat.
Mam nadzieję, że ma to dla ciebie sens!
Andrea