Model i widok

Mój znajomy dzieli ludzi na takich, którzy lubią film Piąty element, oraz na takich, którzy go jeszcze nie widzieli. Przyznam, że zaliczam się do tej pierwszej kategorii.

Mój znajomy dzieli ludzi na takich, którzy lubią film Piąty element, oraz na takich, którzy go jeszcze nie widzieli. Przyznam, że zaliczam się do tej pierwszej kategorii.

Lubię grę Bruce'a Willisa, który w tym filmie pokpiwa ze swojego wizerunku twardziela; lubię czerwone włosy Milli Jovovich oraz jej nieustanne przebieranie w coraz bardziej fantazyjne stroje; Chris Tucker w roli prezentera radiowego doprowadza mnie do łez; ale najbardziej chyba podoba mi się Gary Oldman jako demoniczny Zorg. Jest w tym filmie fantastyczna scena, kiedy Zorg ma wyłączyć bombę zegarową. Podchodzi do licznika odliczającego ostatnie sekundy, wyłącza go na dziesięć sekund przed eksplozją, zadowolony odwraca się i... wtedy ze szkatułki wyskakuje następny licznik, odlicza do zera, a bomba wybucha.

Śmieszy mnie ta scena jako informatyka, bo niejako "od dziecka" nauczono mnie rozróżnienia między modelem (model), jego widokiem (view) i sterowaniem nim (controller). Rozróżnienie to, zwane paradygmatem MVC, jest opisane we wszystkich szanujących się podręcznikach do graficznego interfejsu użytkownika (GUI), a także np. pod adresemhttp://ootips.org/mvc-pattern.html . Zorg, wyłączając wyświetlacz odliczający sekundy, nie wyłączył samego licznika. Nie rozumiał - jak większość "normalnych" ludzi - rozróżnienia między widokiem a modelem.

Gogol zapytałby: z kogo się śmiejecie - z siebie się śmiejecie! Sam popełniłem kiedyś ten sam błąd. Budowałem aplikację internetową, gdzie w formularzu HTML podawało się pewne dane. Po zatwierdzeniu, były podsumowywane na następnej stronie w postaci, w której zapamiętała je baza danych. Niestety, zrobiłem to tak, że strona ta prezentowała dane w takiej formie, w jakiej wpisał je człowiek - nie zaś w takiej, w jakiej znalazły się w bazie. Problem polegał na tym, że przy pewnych warunkach brzegowych do bazy wchodziło coś innego niż zadeklarował użytkownik. Skutek był więc taki, że klient uzyskiwał potwierdzenie, że dane są dobre, gdy tymczasem w środku były złe. Oto skutki nieznajomości modelu MVC - dla mnie oznaczało to kilka godzin dodatkowych spędzonych na wyszukaniu tego błędu, a następnie usunięciu go i solidnym przetestowaniu aplikacji.

Prawię takie banały, ale przecież od paru tygodni oglądamy najgwałtowniejszy akt "wojny o widok", która aktualnie nazywa się "aferą Rywina". Grupy interesu w kraju kombinują, jak by tu przejąć kontrolę nad mediami elektronicznymi - przede wszystkim nad telewizją. Cel jest prosty: pokazywać świat takim, żeby był ładny, nie zaś takim, jaki jest w rzeczywistości.

Słowem, jakby tutaj pomanipulować widokiem, żeby zaczął pokazywać co innego niż jest naprawdę w modelu.

Nie chcę zanudzać Państwa polityką, której po uszy wszyscy mamy na co dzień. Ale ciśnie mi się na usta pytanie - czy odrobina znajomości teorii interfejsu użytkownika nie przydaje się w rozumieniu naszej krajowej rzeczywistości? Nasi decydenci zachowują się jak kiepski informatyk: zamiast naprawiać model, robią lifting widoku. Życie publiczne oglądane przez pryzmat modelu MVC wygląda po prostu jak marnie zaprojektowany system - tyle że społeczny, nie informatyczny. Obrazki oglądane przy okazji prac nad ustawą o mediach śmieszą niczym scena z Piątego elementu, w której Zorg co prawda wyłącza cyfrowy licznik, ale nie rozbraja bomby. Kto uczył się konstrukcji interfejsów użytkownika, wie, że to szkolny błąd. A kto oglądał Piąty element ten wie, jak to się skończy.


TOP 200