Jeg har flere indgange til designmønstre. Jeg har som gammel backendudvikler selvfølgelig læst Gang of Fours “Design Patterns“. Min skønne kone skrev endda speciale på datalogi-studiet om design patterns – foranlediget af at jeg i 1996 anbefalede hende at læse Dr. Dobbs som havde en artikel om emnet. Derudover har jeg læst flere af arkitekten Christopher Alexanders bøger – herunder “A Pattern Language“.
Det har dog altid slået mig at noget af den simple skønhed ved Alexanders ide går lidt tabt i den måde Gang of Four har defineret design patterns: Som abstrakte kodeprincipper der “gemmer” sig i kildekoden og således løser problemer for programmøren, men ikke ikke umiddelbart giver værdi for brugeren. Alexanders ambition var jo netop at ved at vise visuelle eksempler på arkitekturens delelementer, kunne “allow anyone, and any group of people, to create beautiful, functional, meaningful places.”.
Skal vi overføre Alexanders vision til softwareudvikling kommer man derfor ikke udenom at designmønstre skal vise konkrete visuelle implementeringer, og dermed må designmønstre nødvendigvis afbilde brugergrænsefladen.
Flere har forsøgt sig udi dette, men jeg mangler stadig at finde den side som virkelig formår at gøre dette på en overbevisende måde. Her er de eksempler jeg er stødt på ind til videre:
En gammel ressource som desværre virker bedaget, mest fordi dens eksempler er screenshots fra rigtige applikationer – og disse kommer selvfølgelig efter nogle år til at virke – ja: Bedagede.
Har et rimeligt overbevisende design, men lige så snart man dykker ned i eksemplerne ser man manglerne. Et eksempel er “dropdown” – hvis man virkelig har ambitioner om at være en go to ressource må man vise mere end tre virkeligt intetsigende visuelle eksempler hvor man faktisk bliver i tvivl om hvor dropdownen egentlig gemmer sig. Dropdowns kan være rimeligt komplekse f.eks. i flere niveauer, men her er der kun vist meget simple dropdowns med meget få elementer i. Der er ingen ledsagetekst som måske kunne have kompenseret for dette.
Lidt spøjst med en hjemmeside der omhandler design, men efter min mening, ikke selv glimrer ved et specielt kønt design. Man har tydeligvis forsøgt at skabe overskuelighed ved hjælp af specialdesignede ikoner i mange farver, men det fungerer i min optik ikke.
Hvad kan vi lære og hvor skal vi hen?
Dette indlæg omhandler behovet for at vi indenfor softwareudvikling får et katalog af illustrerede eksempler på designmønstre. En sporadisk gennemgang af ressourcer der forsøger sig med dette viser i mine øjne at vi har et stykke vej endnu.
Jeg bilder mig ind at jeg kunne lave noget der fungerer bedre – i hvert fald sammenlignet med de eksempler jeg har gennemgået ovenfor. Jeg tænker at jeg vil bruge lidt kræfter på dette i den nærmeste fremtid.