Kódgenerálást, fejlesztés

Kódgenerálást, fejlesztés

„Programok programok írása” - fekete féltékenység fogott el, amikor olvastam ezt az ötletet könyvében „pragmatikus programozó”. Ez annyira egyértelmű, hogy lehet írni egy programot, amely kiírja a program maga! Miért nem jött össze ez a banalitás. Ez egy programozó álma! Felébredsz, majd a reggeli órákban a 13., akkor jön a munkahelyen, dönthető padló kabátot, és fakó szemek láttál a képernyőn gomb „kódot generál” zhmakat és mindent - akkor menj vissza aludni, a munkanap vége.

Beszéljünk egy kicsit a forráskód generátor, vagy inkább azt fogja mondani, hogy milyen mértékben kell alkalmazni, és (a saját kockázatára), hogy megosszák példákat forráskódját.

Melyek a generátorok

  • Passzív - időt takarít meg a gépelést, lehet különböző mintákat a Forráskódfájlok például Visual Studio mindig akkor létrehoz egy új fájlt a beírt az alapértelmezett névtér, üres osztály, stb
  • Active - felhasználni, hogy az egyik típusú egy másik tudás. Nos, például, akkor az adatbázis alapján metaadatok, hogy létrehoz egy tárolt mintavételi eljárást, vagy ha az egész készlet szifilisz.

Véleményem a megosztás meglehetősen relatív - mindkét esetben azt kódot generál, amit hozzá kell adni a projekt és állította össze.

Mi oszcillátor használják

Én elsősorban részt a műsorban, amely köré egy adatbázist, így elkezdtem írni a generátorok kapcsolatban ezen a területen. Automatizálás a tevékenység általában kezdődik az a tény, hogy észre magukat, hogy a századik alkalommal írsz egy és ugyanazt a szerkezetet. És akkor még és rendeletek.

Itt például, egy ilyen helyzetben. Van egy tábla egy relációs adatbázis három mezővel. Azt akarja, hogy részt vesz a program bemutatása volt a felvétel formájában a tárgy. Nos, ez teszi a szerkezet három mezővel és néhány virágos nevek, mint a „NazvanieTablitsyRecord”. Aztán itt van egy fertőzés, úgy dönt, hogy átnevezni egy oszlop. Ön apologétának szép kódot, akkor mászni szerkezetük és változtatni a nevét, az ingatlan. Kompiliruesh. Ezután adjunk hozzá még egy oszlopot a táblázatban. Ön mászni annak szerkezetét, és adjunk hozzá egy új tulajdonság. Kompiliruesh. (Nos, mennyit tud?). Fejlesztő adatbázis eltávolítja a második oszlopban. Ön mászni a szerkezete, és távolítsa el tulajdonságait. Kompiliruesh. (Lehet elég?!). Egy barátja Péter, nézi a kódot, azt mondja: „Hmm, nézd, és te itt egy levél rossz, a második oszlop kezdődik az A betű ...» (@@ №% !!).

Térj a lényegre

Ez két fő dolog számomra, hogy hozzon létre egy generátor - a tárolt eljárások és osztályok, amelyek esetében rekordot a táblázatból. A kód generálódik metaadatok alapján az MS SQL tálaljuk ezt a nézetet. amelyek kezdve SystemView és INFORMATION_SCHEMA. Erre information_schema MySql adatbázist. A kivont metaadat információkat az oszlop nevét, az adattípusok, méretben, linkek és forráskód alapján generált őket. Mint látható, tetszőleges nyelven.

A legfontosabb dolog

1. Amikor létre a kliens kódot, például egy osztály, amely képviseli az egyik rekordot a táblázatban, fontos megérteni, hogy meg kell generálni ugyanazt a mintát, és ez viszont függ a választott architektúra. Ez lesz «Active Record» vagy «Value Object»? Ez attól függ, építészeti és design megoldásokat, amelyek a projektben használt. Ezért szerezte a döntő általános írási generátor száz feladatot, és írjunk kis programok, alapul véve egy működő generátor.

2. Az ifjúsági, még nem fáradt, hogy írjon százszor egy kódrészletet, az elven alapul, a „veszett kutya és hét versztányira nem horog”, harcolni fog apait-anyait használata a generátorok. Felajánlottam egy sorstársai mérni, hogy mennyi elhagyja ideje írni betét eljárások és a mintavételt, és az osztály «Value Object». Beletelt több mint 40 perc, a generátor zabombit egy pár másodpercig. És még mindig nem győzte meg az ő használja a generátor. És nem ez az egyetlen eset.

következtetés

A gyakorlatban olyan régi, mint kódgenerálást. Több száz évvel ezelőtt láttam az egyik Rational Software termékek, mint például alapján még az adatbázis sémáját, és még nagyobb, Infological modell szerint. keletkezett az adatbázis séma alatt egy halom nyelvjárások előállított formanyomtatványokat egy halom nyelven. (Azt hiszem, ez a termék), és akkor is lehet generálni, hogy a szíve vágyik. Amint látni fogja a forráskódot, hogy én már lefektetett például vannak tárolt eljárások szifilisz + GetById. kliens kódot a tároló, a «Value Object», a kód, hogy hívja a tárolt eljárások a mi adathozzáférés könyvtárban. Általában autó és a kis teherautó. Még mindig GUI generáció - és egy prototípus alkalmazás készen áll. Egy pár másodpercig.

Hát nem fantasztikus?

Ui Generátor, amit használni nem szünteti meg a válogatás, de ez alkalommal is automatizálható.
P.P.S. Kódgenerátor nagyon egyszerű - procedurális, néha még govnokod (szükséges valahol pihenni!?)
P.P.S.S. Saját kódgenerátor tűnik, hogy illeszkedjen a meghatározása „Skafolding”

Kapcsolódó cikkek