2010-12-17

Precz z płaskimi jak deska!

Pamiętasz menu Start z czasów Windows 98? Pamiętasz z czasów Windows XP? Widziałeś obecne (Windows 7) menu start? Miałeś okazję widzieć menu "Programs" w Ubuntu 10.10? Jeśli któryś z punktów nie jest spełniony - uzupełnij, dzisiejszy odcinek porówna niektóre z aspektów tworzenia interfejsów do kobiet ;-)

Na sam początek weźmy dowolnego Linuksa. Otwórzmy katalog /etc - co tam mamy? Pliki. W gruncie rzeczy - listę plików. Otwórzmy losowy z nich, niech będzie... services. Przeglądamy plik - a tam... lista różnych wpisów. Fakt, posortowana, spójna, ale jakaś taka... płaska. Fakt, przy krótkim kontakcie może się to wydać dobre i wygodne, jednak na dłuższą metę - coś jest nie tak. Ta płaskość zaczyna przeszkadzać - od pewnego momentu przypomina kartkowanie książki bez spisu treści.

Tym razem przesiadmy się na Windows. Proszę uruchomić program regedit.exe, a następnie podać sposób dostania się do... informacji o ikonie dla plików .bmp. Ścieżka ma dużo (jeśli nie bardzo dużo) kroków po drodze. Podobnie wygląda 75% XMLi konfiguracyjnych. Windowsowy rejestr jest - w przeciwieństwie do /etc - bardzo nie-płaski ;-) Nawigacja w każdej z warstw tej bazy danych momentami może przyprawić o zawrót głowy. Pół biedy jeszcze, gdyby dwa sąsiednie elementy były symetryczne - jednak "każdy sobie" i dosłownie sąsiednie wpisy mogą mieć kompletnie różną wielkość i budowę. Momentami mam wrażenie, że czytelniejsze i bardziej liniowe są niektóre przepisy.

Jak zwykle, najlepsza struktura to "złoty środek". Czyli struktura półpłaska symetryczna, dostosowana do potrzeb. Dobrym przykładem jest organizacja workspace Symbianowego - każdy projekt ma identyczną strukturę katalogów. Podobnie z Javą (przynajmniej w edycji Android), linuksową strukturą katalogów (nieszczęsne /etc pomińmy), budową torrent metadata file (po ludzku: plik .torrent). Rozłożenie takie, jak być powinno, głębokość odpowiednia, symetria, ładny układ - w ten sposób każda struktura, która może być przez użytkownika (nawet jeśli użytkownikiem jesteś tylko Ty) ruszona, powinna być zbudowana. Od budowy plików konfiguracyjnych (na wszystkie buildy, NIE używaj XMLa bez potrzeby!), poprzez strukturę kodu i zasobów projektu, układ zasobów w tworzonej przez Ciebie grze aż po podłączenie i konfigurację komputerów w rozległej sieci. Płaskość jest zła, choć ma silną konkurencję w postaci asymetrycznej bardzo-nie-płaskości ;-)

1 komentarz: