Jó reggelt. Tervezési módszertan:
nekünk az egyetemen volt első év
első félévében egy
tantárgyunk "bevezetés a
programozáshoz". Akkoriban senki nem
értette, hogy mi köze ennek a
"valódi programozás"-hoz, mert az
egész félév nem volt más mint
brutális halmazelméleti ömlengés,
méteres(!) definíciókkal és
tételekke. Utólag viszont abból
élek. Főbb fogalmak voltak:
állapottér, program, feladat, típus,
elemi programok, program, és
típuskonstrukciók, később ezekre
épülve néhány
általánosabb tétel: keresés,
rendezés, elemenkénti feldolgozás.
Mindez kizárólag halmazokkal,
definíciókkal és tételekkel.
Bizonyítani kellett a program
helyességét és teljességét.
Ehhez persze megtanultuk megfogalmazni a feladatot
halmazokkal: honnan akarunk hova eljutni. Aztán
egy "programot" kellett írni,
amiről beláttuk, hogy megoldja a feladatot.
A programban persze volt egy csomó nem
megengedett művelet, amit meg kellett
valósítani, ált itt kellett új
típusokat létrehozni, űj
műveletekkel. Lényeg a lényeg, nem
volt nagyon objektum-orientáltság (a
szó köznapi értelmében),
inkább típus-szemléletet mondanék.
Ami a legfontosabb: biztosnak kell lenned abban, hogy
amit csinálsz az jó. Nekem a legjobb
eszközt adták a kezembe: magát a
matematikai bizonyítást. Nem bizonyítok
persze mindent, amit csinálok, de úgy
tervezem, hogy könnyen bizonyítható
legyen. És itt van a tervezés lényege
elásva: a lehető legegyszerűbb
elemekkel oldani meg a lecsupaszított
problémát. Mihelyst valami kezd egy kicsit
is átláthatatlanná válni, akkor
szétbontani. Vállalni bizonyos dolgok
többszöri újraírását.
Minél később elkezdeni kódolni.
Ennyi jutott most eszembe elsőre