Maj
15
2009

Jak wybrać obiekty?

Słowa kluczowe: , | Kategorie: Projektowanie
No Gravatar

Dzisiaj odejdę trochę od głównego nurtu bloga i zajmę się projektowaniem systemów informatycznych. W pracy rozpoczynamy właśnie tworzenie nowej aplikacji i już na samym początku pojawiło się wiele wątpliwości związanych z tym zagadnieniem. Nie będę się zagłębiał w szczegóły założeń projektu, gdyż nie mają one nic wspólnego z tematem wpisu (pomijając tajemnicę firmy), ale zajmę się abstrakcyjnym wymiarem problemu.

Bardzo dużo czasu zajęło nam podjęcie decyzji, czy zastosować klasyczny model obiektowy, czy też wypróbować podejście dziedzinowe. Okazuje się, że największym problemem nie jest brak wiedzy dotyczącej tego drugiego rozwiązania (teorię większość z nas przyswoiła sobie w dość krótkim czasie). Wątpliwości pojawiały się podczas omawiania projektowania dziedzinowego (ang. DDD), ale – jak się potem okazało – dotyczyły także analizy obiektowej.

Pytanie, które sprowokowało przedłużającą się dyskusję, zawarłem w tytule. W jaki sposób mamy zdecydować, które obiekty będą występowały w modelu? Jakie reguły pozwolą nam wskazać prawidłowy wybór?

I od razu muszę odpowiedzieć, że pytanie jest źle postawione. Projektowanie to nie matematyka, gdzie wystarczy nauczyć się paru zasad, żeby rozwiązać wszystkie zadania na klasówce. Choć może to być trudne do przełknięcia, to pisanie programów przypomina raczej język polski – wszystkie reguły możemy podzielić na trzy grupy:

Natomiast jeżeli chodzi o treść, to zależy ona wyłącznie od kontekstu i interpretacji projektantów (właśnie dlatego jestem zdania, że większa liczba osób biorących udział w procesie projektowania zawsze wpłynie pozytywnie na efekt końcowy – no… prawie zawsze). Zatem wybór obiektów – pomijając stylistykę – będzie czysto subiektywny.

Ponieważ widzę, iż analiza obiektowa sprawia programistom więcej problemów niż wykorzystywana technologia, w najbliższym czasie zamierzam napisać na ten temat trochę więcej (oczywiście nie zapomnę o JBoss Seam). Uprzedzę tylko, że moje podejście może stać w sprzeczności z przekonaniami osób o ściśle matematycznych umysłach.

Napisz Komentarz

*