Grafikus felület létrehozása automatikusan
kriszo 2006.01.29. 18:54
Van-e olyan program, amely csak egy program, semmilyen adatokon nem dolgozik, semmilyen inputot nem igényel, és nincs semmilyen outputja sem. A válasz: nincs ilyen. Minden programnak van vmilyen inputja, lássuk csak:
v programindításkor paramétereket adunk meg parancsorban,
v a program bekéri az adatokat,
v adatbázisból olvas (hagyományos értelemben vett adatbázisból pl. access)
v az adatokat rendszer változókból veszi, pl. ls vagy dir parancs, amelynek látszólag nincs adatbázisa, de valójában az adatbázisához tartozik a teljes könyvtárstruktúra és az aktuális könyvtárpozíció is. Ennek eredményeképpen kilistázza az aktuális könyvtár tartalmát (ez már az output)
Output: ez még egyértelműbb, nem létezik olyan értelmes program, amely semmit nem csinál, semmi eredménye nincs.
Kíváncsi vagyok a véleményedre:
Szerintem nincs minden programnak adatbázisa ]
Egyetértek, még azt fűzném hozzá, hogy... ]
Ebből az egészből semmit sem értek! (írd le hogy mit nem) ]
Felvetődik még egy dolog: az időbeliség. Vagyis lehet-e azt mondani, hogy a kis nyúlfarknyi programoknak nincs adatbázisa, csak input, meg output adata. Szigorúan véve nekik is van, csak rövidebb ideig létezik, mint a hagyományos adatbázisok adatai. Végülis nincs olyan adatbázis, amely örökké létezik, előbb-utóbb az adatok megváltoznak, törlődnek. (pl. egy nagy forgalmú folyószla egyenlege akár másodpercenként is változhat)
Kíváncsi vagyok a véleményedre:
Ez az időbeliség egy hülyeség ]
Egyetértek, még azt fűzném hozzá, hogy... ]
Ebből az egészből semmit sem értek! (írd le hogy mit nem) ]
Ezzel csak azt akartam alátámsztani, hogy bármilyen nyúlfarknyi program egy adatbázison dolgozik. Adatbázis, így vagy úgy de mindig létezik.
Mégtovább megyek a programkód, amelyet a proci futtat, még az is adatbázisadat lehet, vegyünk adatáblát, amelynek oszlopai:
v azonosító (a programmodul azonosítója pl. 0001)
v forráskód pl.:
Sub Main()
'Adatbázis megnyitása.
Set db = OpenDatabase("C:\Documents and Settings\Hass2002.mdb")
'Grafikus szerkesztőfelület meghívása.
Call Gui
End Sub
v futtatható kód: erre most nem hozok példát, ez egy bináris adatsor
v dokumentáció: ez amit leginkább elfelejtenek a fejlesztők, de nagyon lényeges. Ha meg is van a dokumentáció, az külön adatbázisban vagy mondjuk egy pdf file-ban van és sok időt vesz igénybe a megfelelő leírást megkeresni.
Sok más egyéb oszlopot lehet felvenni egy ilyen adattáblába pl.:
v modulazonosító: annak a modulnak az azonosítója, amelyben a rutin található.
v filenév-azonosító: annak a file-nak az azonosítója, amelyben.
A fenti példákkal azt akartam elérni, hogy próbáljuk meg a számítógépes világot egyfajta "adatbázisszemüveg"-en keresztül nézni, hogy új dolgokat fedezhessünk fel.
Kíváncsi vagyok a véleményedre:
Nahát, hogy még az is adat, ami kód, hihetetlen... ]
Egyetértek, még azt fűzném hozzá, hogy... ]
Ebből az egészből semmit sem értek! (írd le hogy mit nem) ]
Problémafelvetés
Programfejlesztés
Aki már programozott, az tudja, hogy egy korrekt program elkészítése rendkívül összetett, idő- és munkaigényes feladat. Ha nem tartjuk be a megfelelő lépéseket, pl. elkezdünk vadul kódolni, akkor csak egy bizonytalan kódtömeget kaphatunk, amin egy idő múlva saját magunk sem igazodunk ki.
Én olyan kódot hekkelek két nap alatt... mi az a tervezés? ]
Egyetértek, még azt fűzném hozzá, hogy... ]
Ebből az egészből semmit sem értek! (írd le hogy mit nem) ]
Windows kritika
Sok oldalról lehetne kritizálni a Windows-t, én most a registry-t boncolgatnám. Néhány megállapítás, vélemény:
v a registry is egy adatbázis,
v a windows használata során a registry mérete folymatosan nő,
v minden program amelyet a windows élete során felinstalláltak nyomot hagy benne,
v senki sem érti igazából, hogy pontosan mit is tartalmaz (tudom vannak dokumentációk, amelyek folytonos keresése és kutatása egy életforma).
A registry egy olyan adatbázis, amelynek folyamatosan sérül a konzisztenciája. A problémát egyszerűen meg lehetne oldani, ha minden beállított sorhoz be lenne jegyezve, hogy melyik program hozta létre, így egy uninstallálás csak egy törlő adatbázis lekérdezést igényelne.
Sosem volt problémám a windows registry-vel ]
Sosem tudtam kiigazódni a registry-n ]
Ebből az egészből semmit sem értek! (írd le hogy mit nem) ]
Linux kritika
Előre bocsátom, nem vagyok egy linuxguru, így kérek mindenkit, ha nincs igazam sürgősen javítson ki. Legútobb, amikor egy Caldera linux-ra fel akartam telepíteni egy programot, sajna kudarcot vallottam.
Úgy gondolom, hogy ez nem csak az én hibám volt. Hosszú install text-et olvastatott velem a feltelepítendő program és be kellett volna állítanom különböző rendszerváltozókat, meg kellett volna adnom egy konfigurációs scriptben a modem nevét, stb. Tudom, ez nem a linux volt, csak egy program, amit fel akartam telepíteni, mindazonáltal általános jelenségnek tartom a linux világában.
Aki ilyet mond, az még nem foglalkozott linux-szal behatóbban ]
Ezzel a problémával már én is találkoztam. ]
Ebből az egészből semmit sem értek! (írd le hogy mit nem) ]
Elképzelések
A fent említett 3 probléma közül a programfejlesztésen gondolkodtam el és ezeket a gondolatokat szeretném megosztani. A lényeg, hogy pontos adatbázis tervezéssel a fejlesztő eszközbe bizonyos logika ültethető. Ha precízebben tervezzük meg az adatbázist, elképzelhető, hogy nem szükséges grafikus felület kialakításával foglalkozni.
Véleményem szerint ezt nem lehet leprogramozni ]
Én már találkoztam/hallottam ilyen programról ]
Látok benne fantáziát ]
Ebből az egészből semmit sem értek! (írd le hogy mit nem) ]
Főmenü struktúra
Egy windows-os program menürendszere szinte adja magát. A főmenü rendszerint Fájl, Szerkesztés, Nézet menüpontokkal kezdődik és Eszközök, Ablak, Súgó menüpontokkal végződik. Közben van 3-5 menüpont, amely a program sajátossága. Pl. MS-Word esetén Beszúrás, Formátum, Táblázat.
Igényesebb fejlesztőrendszerekben nem csak könnyen, és gyorsan lehet létrehozni a főmenüt és azok menüpontjait, hanem ún. menüsablon file-t is lehet használni, amely alapján létrehozott menüt szabadon lehet módosítani. Ezt a funkciót Delphi 4.0 alatt tapasztaltam először.
Ehelyett feltennék egy kérdést: lehetséges-e olyan algorimus, amely a kezelt adatokból elkészíti a főmenüt?
Véleményem szerint ezt nem lehet leprogramozni ]
Én már találkoztam/hallottam ilyen programról ]
Látok benne fantáziát ]
Ebből az egészből semmit sem értek! (írd le hogy mit nem) ]
Menüpont
Vegyünk pl. egy Word szövegszerkesztőt és menjünk végig a menüpontjain. Minden menüponthoz egy funkció tartozik, amelyeknek hatálya akár az egész programra is kiterjedhet pl. Fájl/Kilépés, de vonatkozhat arra szóra, amelyen a kurzor áll pl. Formátum/Betűtípus. Persze ne felejtsük el közben, hogy minden művelet a szövegszerkesztő adatábzisán hajtódik végre, vagyis az általa kezelt dokumentumokon.
Elemezzük ki egy kicsit ezt a dialógusablakot:
A Word által kezelt adatbázis adatmodellje az alábbiak szerint néz ki (itt majd lesz egy ábra)
Betű-> szó-> mondat-> bekezdés-> szakasz-> dokumentum.
A dialógusablakról látszik, hogy milyen típusú adatokat kezel a program és szerintem egy kód le tudná generálni ezt az űrlapot.
A 2. kérdés: lehetséges-e olyan algorimus, amely a kezelt adatokból elkészíti a program dialógusablakait?
Véleményem szerint ezt nem lehet leprogramozni ]
Én már találkoztam/hallottam ilyen programról ]
Látok benne fantáziát ]
Ebből az egészből semmit sem értek! (írd le hogy mit nem) ]
|