🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.objects
Article #13670

Bajka o żołnierzu, krawcach i frędzlach, czyli dylematy związane z łączeniem wzorca Pattern z ideą MVC (model-view-controler)

#13670
From: Filip Sielimowicz
Date: Wed, 30 Nov 2005 20:31
135 lines
8063 bytes
Pewien generał był bardzo zajęty tworzeniem nowoczesnej armii.
Generał ten genialny szeroką miał wizję a i w szczegółach był mocarz jakich 
mało.
Ale nade wszystko brał bardzo poważnie względy ekonomiczne ...

I policzył sobie: jeśli moja armia ma się składać z tysięcy żołnierzy,
nad którymi ktoś potem będzie musiał zapanować... Myśl była prosta:
żeby żołnierza okiełznać, trza go wpasować. Trza wyznaczyć jakiś
wzór żołnierza i pracować nad tym, by w czasie szkolenia żołnierz
przynajmniej przypominał wyznaczony model, a generał będzie sobie na planszy
przestawiał statystycznie się zachowujace grupki modeli, nie musząc się
zastanawiać nad tym, że jeden z nich musi siusiu raz na 1h. Jak żołnierz
stoi w szeregu, to ma w ten szereg pasować. Ma wiedzieć, kto go z jednej 
bodzie
kolbą i ma wiedzieć, kogo sam bodzie kolbą z drugiej. Ma wiedzieć, kto mu 
depcze
po piętach i bez żenady deptać po piętach temu, co przed nim. Żołnież
ma być twardy: ma mieć twardą kolbę i twarde pięty, coby żaden ścisk nie był
mu straszny. I ma mieć woreczek schowany, jeśli już naprawdę musi co 1h.

Postawił wiec sobie generał zadanie nakreślenia modelu. W czasie kreślenia
szybko okazało się, że różne VIP'y zupełnie inaczej rozumieją pojęcie
żołnierza. Niektórzy myśleli, że to taki koleś, co idzie wystrojony po ulicy
i wali w bęben albo kręci kijem trzymanym w jednej ręką ręce. Najważniejsze
było, by miał fajną czapkę z jaskrawymi frędzlami i nimi mocno potrząsał.

Trudno więc było jeden model stworzyć, ale generał bardzo gęsto czytał
branżową literaturę i tam dowiedział się, że istnieje coś takiego, jak
Model-View-Controler. Generał szybko sobie sprawę uprościł i wyszło mu, że 
aby
jeszcze bardziej sobie uprościć, powinien projektować oddzielnie wygląd 
zewnętrzny
żołnierza, a oddzielnie jego zachowanie i zawartość plecaka. Dzięki temu to 
mógł bez
ostrzeżenia wchodzić w środku nocy do namiotu, zrywać żołnierza na baczność
a potem wypychać na dwór - choćby i nago - i ćwiczyć jego inteligencję,
tudzież muskuły w świetle księżyca, w którym to i tak znaczenia żadnego
nie miało, czy to kolba zmęczonemu żołnierzowi tak luźno dynda, czy ...

W każdym bądź razie krawcy szyjący na żołnierza wdzianko nie musieli 
niewyspanego
w dzień wypożyczać i męczyć w przymierzalni. A zdarzało się onegdaj często
i gęsto, że tacy krawcy to pierwsze co zabierali się do poprawiania plecaka,
przyszywania na trwałe wyposażenia, coby nie latało luźno, doszywania 
przegródek
na przybory krawieckie... Zdarzało się nawet, że z pomocą nożyczek, igły i 
nitki
"poprawiali muskulaturę" lub nawet, o zgrozo, próbowali zaszywać braki w 
inteligencji
żołnierza ! Absurd - każdy pomyśli, ale to parszywi krawcy lubili właśnie 
najbardziej
- grzebać igłą tam, gdzie nie powinni. Było to tym bardziej ważne, że 
generała
generalnie szlag trafiał, kiedy pojawiali się krawcy od prezydenta i chcieli
wypożyczać jego chłopców na czas szycia fatałaszków na paradę z okazji, 
dajmy na to,
dnia dziecka - bo prezydent miał właśnie dziecko, więc parada prezydencka 
musiała być.

Udało się więc generałowi zrzucić z siebie ciężar wiecznego patrzenia 
krawcom na ręce
- dostali kamienny model z wyrzeźbioną docelową muskulaturą, wrzeźbionym 
plecakiem
i ograniczony przydział nożyczek i igieł - coby uważali, by ich darmo nie 
tępić.
Trudno było ten model zmusić, by trząsł czapką z frędzlami, ale ...

Szybko okazało się też że żołnierz żołnierzowi nierówny - jeden mały jest i 
nic
prawie nie znaczy, właściwie to ładuje tylko i strzela w przód. Inny zaś 
żołnierz
to się okazuje musi być parszywym potworem i w dodatku inteligentnym,
bo mu na barki wrzucają samodzielne duże zadania także organizacyjne.
Z tym ostatnim rodzajem żołnierza to nasz generał miał znów mnóstwo kłopotu.
Ciężko było takiego wyszkolić, bo problem był już z samymi podręcznikami.
Ale literatura branżowa pełna wzniosłych myśli i idei podpowiedziała: 
wzorzec
Strategy. Czyli: rozpisać docelowe środowisko działania żołnierza na wiele
kilka sytuacji, w każdej z nich stworzyć kompletny profil i stworzyć
kompleksowe szkolenie. Potem żołnierza wyszkolić, w każdym z tych profili
niezależnie i nauczyć, jak ma się sprawnie przełaczać między swoimi 
osobowościami
(psychiatrzy odwalili kawał dobrej roboty ...).

Wszystko było dość ładnie i pięknie, ale generał stanął przed pewnym 
dylematem.
A mianowicie żołnierz działajacy wg. wielu strategii często potrzebował na 
każdą
z nich inne wdzianko. Zazwyczaj też potrzebował inny plecak. Ba - nawet 
poszczególne
elementy wyposażenia plecaka miewały warianty.

I tu się generał nieco zafrasował, bo zaczęło wyglądać na to, że będzie 
musiał
pisać także podręczniki strategii dla krawców ...
Dużo bardziej ponętna wydawała mu się myśl, że krawcy uszyją ubiór 
inteligentny,
który sam będzie badał zawartość plecaka i się dostosowywał. Ba - już w 
głowie
generała zaświtała myśl, że w plecaku będzie takie inteligentne urządzenie,
które będzie potrafiło na podstawie informacji o aktualnej osobowości 
żołnierza
określić, które części garderoby mają być "aktywne", jaki mają mieć wariant
kolorystyczny itp. A do krawca będzie należało uszyć wdzianko z elementów,
które te informacje będą potrafiły odczytać i się dostosowywać ...

No i zadumał się generał ...
Bo sobie pomyślał: to urządzonko i komponenty będzie musiało chyba być
inteligentniejsze nawet niż krawcy, żołnierze i nawet ja - wszyscy razem
wzięci.
Kto mi to sfinansuje ?
Może prezydent zrobi prezent z okazji dnia dziecka ...
Trza się dobrze przyłożyć do tych frędzli w takim razie ...

...

A na koniec pytanie do szerokiego grona: czy takze spotkaliście się z 
dylematem
generała, czyli pojawił się problem dwóch niezależnych podziałów komponentów
systemu - jeden podług architektury - MVC, drugi podług funkcjonalności
(np. złożona formatka a za nią złożona logika biznesowa obsługująca wiele
wariantów "czegoś", co pierwotnie wydawało się dużo mniejsze), które 
powodują,
że komponenty zaczynają się bardzo mnożyć: każda nowa strategia jest 
rozszczepiana
przez podział architektoniczny i z teoretycznie jednego nowego elementu 
tworzy się
ich od razu kilka ?
Problem ten jest powiedzmy do udźwignięcia, dopóki nowymi elementami w 
systemie
są nowe oddzielne formatki (my to nazywamy interakcje), natomiast zaczyna 
być to
już mocno kłopotliwe, kiedy w ramach jednej interakcji-formatki pojawia się 
wiele
strategii. 
Technical Details
Message-ID: <dml264$286$1@news.onet.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!newsfeed.silweb.pl!news.onet.pl!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!newsfeed.silweb.pl!news.onet.pl!not-for-mail
From: "Filip Sielimowicz" <sielim@poczta.onet.pl>
Newsgroups: pl.comp.objects
Subject: Bajka o żołnierzu, krawcach i
 frędzlach, czyli dylematy związane z
 łączeniem wzorca Pattern z ideą MVC
 (model-view-controler)
Date: Wed, 30 Nov 2005 21:31:01 +0100
Organization: Onet.pl
Lines: 136
Message-ID: <dml264$286$1@news.onet.pl>
NNTP-Posting-Host: host-217-172-233-228.gdynia.mm.pl
Mime-Version: 1.0
X-Trace: news.onet.pl 1133382662 2310 217.172.233.228 (30 Nov 2005 20:31:02 GMT)
X-Complaints-To: usenet@news.onet.pl
NNTP-Posting-Date: Wed, 30 Nov 2005 20:31:02 +0000 (UTC)
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
X-Sender: HWuT3ZQ16+B3O4dnsZlCZgocIOkeW3FM
X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
X-Priority: 3
X-MSMail-Priority: Normal
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit