Nahát... én mindig a falra szaladok fel attól, hogy "meghaladtuk" a Neumann-elveket...
Én úgy értelmezem, tőle jött az az ötlet, hogy az informatika "atomja" a bit, amely már tovább nem osztható, viszont minden adat ÉS a rajtuk végzett műveletek is ábrázolhatók bitek segítségével. Továbbá az, hogy problémákat megoldó gép helyett azonosítsuk azokat a független komponenseket, amelyek megfelelő összekapcsolásával tetszőleges probléma ellenőrizhető módon megoldható. Szerintem az informatika, mint fogalom létezése, valamint az informatikai eszközök elképesztő sebességű fejlődése és miniatürizálhatósága erre az alapra: az elsőre értelmetlennek és lassúnak tűnő szigorú elhatárolásra és absztrakcióra épül.
Azt pedig halkan teszem hozzá, hogy ez a szintű absztrakció, egyáltalán a felfogásának képessége mintha teljesen eltűnt volna abból, amit ma informatikának és programozásnak hívunk. Ezért tapsoljuk meg például a harmincadik korszakalkotó scriptnyelv, vagy a négyszázadik "legjobb GUI framework" megjelenését :-)
Jé, milyen morcos öregúr lettem... :-D
Mi a véleményed, vagy tapasztalatod a design patternekről / használatukról?
Szerinted érdemes ezekre építkezni, vagy más alapokon hatékonyabb a szoftverek fejlesztése?
"Már vártam ezt a kérdést" :-D
Viccet félretéve: válaszom egyértelmű és határozott IGEN: A GoF Design Patterns egyike azoknak a könyveknek, amelyeket nem lehet megkerülni, ha az ember valóban értékes munkát akar végezni és nem csak kódot lapátolni.
A dolog másik oldala, hogy a DP szerintem nem tankönyv, amit egyetemen el kell olvasni és annak alapján lehet programozni - éppen ellenkezőleg. Ahhoz, hogy az értékén tudd kezelni, évekig kell programozni úgy, hogy folyamatosan elemzed a saját kódodat, motivált vagy arra, hogy átkavard, mert nem tetszik, nyöszörgős, pár hónap fejlesztés után "megbüdösödik" (túl nagy, nehézkes, gányolt lesz). Keresed azokat a pontokat, módszereket, amelyekkel ez elkerülhető, igyekszel jól szegmentálni, tiszta és időtálló kódot készíteni, lassan felismered, hogy egy "jó" rendszernek van egy sajátos meta-szerkezete.
Na ekkor érdemes igazán megtalálni a DP-t, ugyanis olyan, mint mondjuk a rendszertan a biológiában. Ha felismerted, hogy az élővilág nem "csak úgy van", hanem vannak hasonlóságok, kategóriák, "szerepkörök" ; és érdekel, hogy ezek segítségével hogyan írható le egyszerűen egy addig ismeretlen faj (lefordítva: hogyan bontasz "eléggé időtálló" részekre egy új programozási feladatot). Ehhez jól jön egy alaposan végiggondolt struktúra és közösen használható nevezéktan.
Szerintem programozásban erre "elég jó" a GoF DP. A könyv (tapasztalatommal egyező) állítása, hogy a patternek nem kész, újrahasználható elemek, amelyekből építkezni lehet - viszont olyan vezérlési, szerkezeti, stb. minták, amelyeket ha felismersz az előtted álló feladatban, akkor tisztább, szegmentáltabb kódot tudsz létrehozni. Ráadásul egy "meta-nyelv", a fogalmai segítségével könnyebben tudod megbeszélni a szerkezetet, utánanézni mások tapasztalatainak.
[filozófia on, elvégre feladtad a labdát: Coping with infinity ]
Számomra [nagy arc bekapcs] igen komoly megerősítést jelentett a DP, mert "túl későn" találkoztam vele: a leírt minták jelentős részét éles környezetekben, nem kevés kínlódás után kitaláltam már. Így aztán külön öröm volt, hogy független úton lényegében azonos eredményre jutottam a "nagyokkal". Emiatt is mindenképpen ajánlom az átnézését, és örömmel beszélgetnék róla akár veled, akár irodai csacsogás keretében. Továbbá egy kis önreklám, egyszer tartottam egy előadást programozásról, nem kötelező, csak ha érdekel... viszont ha megnézed, érdekelne a véleményed.