<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 176, comments - 240, trackbacks - 0, articles - 7

    Meta Generation

    Posted on 2007-01-21 18:11 canonical 閱讀(2525) 評論(5)  編輯  收藏 所屬分類: 設(shè)計理論
    ?????? 代碼生成現(xiàn)在已經(jīng)逐漸成為軟件開發(fā)中的一種標(biāo)準(zhǔn)技術(shù),在眾多的軟件領(lǐng)域都大大減輕了我們重復(fù)勞動的工作量。程序中總是存在著這樣那樣的隱蔽的關(guān)聯(lián),它們無法在通用的程序語言框架下得到明確的表達(dá),代碼生成是我們突破既定的語言和框架限制的一種重要手段。但是代碼生成也存在著嚴(yán)重的弊病,一方面一般的程序語言在設(shè)計時沒有考慮到和代碼生成工具的相互配合,因此生成代碼是一次性的,代碼生成工具無法以增量的方式修正已經(jīng)生成的代碼。另一方面,程序的結(jié)構(gòu)是復(fù)雜的,代碼生成工具一般基于某種簡化的通用的程序模型(例如CRUD)來產(chǎn)生代碼,它無法承載完整的程序結(jié)構(gòu),因此代碼生成后手工調(diào)整量仍然很大,有的時候甚至為了微小的界面調(diào)整,將生成的代碼修改的面目全非,無法發(fā)揮代碼生成的優(yōu)勢。
    ?????? 在witrix平臺中主要使用meta generation而不是code generation. meta實際上是對一種定制模型(model)的描述,它在某種意義上可以看作是完整程序的簡化版本,但它本身并不意味著最終的程序結(jié)構(gòu)。在witrix平臺各處meta的使用都是可選的, 特別是在多變的前臺頁面,我們可以選擇根據(jù)meta描述自動生成界面,也可以選擇通過<df:Field name="字段名"/>來引用單個字段的meta數(shù)據(jù). 在witrix平臺中, meta可以看作是系統(tǒng)運行的內(nèi)核, 它通過syncWithModel等屬性與設(shè)計工具發(fā)生耦合. 當(dāng)設(shè)計模型修改之后, 這種修改能夠以增量的形式通過可控制(修改)的信道傳播到系統(tǒng)各處.

    Feedback

    # re: Meta Generation  回復(fù)  更多評論   

    2007-01-21 21:27 by mixlee
    有witrix平臺的DEMO可以看嗎?非常感興趣

    # re: Meta Generation  回復(fù)  更多評論   

    2007-01-22 10:52 by Anders小明
    呵呵,公司里也做這樣的實踐!果然都是地球人,大家思路最后都差不多!

    # re: Meta Generation  回復(fù)  更多評論   

    2007-01-22 23:01 by CowNew開源團(tuán)隊
    呵呵,和我們CowNew的CowNewPIS平臺中的元數(shù)據(jù)引擎思想非常類似。http://www.cownew.com/CowNewPIS/

    # re: Meta Generation  回復(fù)  更多評論   

    2007-01-23 22:00 by canonical
    witrix中meta的思想與一般人的第一感覺還是有著本質(zhì)區(qū)別的。在witrix中,典型的開發(fā)過程是通過powerdesigner設(shè)計數(shù)據(jù)模型,然后自動生成meta數(shù)據(jù),此時對于數(shù)據(jù)庫的增刪改查就可以進(jìn)行了,包括對于one-to-one,one-to-many,many-to-many等關(guān)系的維護(hù),高級查詢條件的拼裝,導(dǎo)入導(dǎo)出功能等。這些設(shè)計因為基于ORM模型,因此并不是僅僅針對單表的,而是可以很方便的處理關(guān)聯(lián)表的情況。
    如果界面沒有特殊要求,一般最多調(diào)整一下meta中字段的屬性。如果完全要求定制布局,則在前臺通過<df:Field name="fieldName"/>等標(biāo)簽引入字段元數(shù)據(jù),增刪改界面可以共用一個定制頁面。而后臺依據(jù)meta對前臺提交數(shù)據(jù)進(jìn)行初步處理。在witrix的開發(fā)過程中,幾乎不需要調(diào)用get/set方法,也不需要調(diào)用session.save, session.update等方法,前臺也幾乎不編制完整的界面。

    to mixlee: 我們目前無意成為平臺軟件供應(yīng)商,因此不對外提供witrix的資料。

    # re: Meta Generation  回復(fù)  更多評論   

    2007-01-28 13:43 by Jie
    Template其實也可以看做是MetaData,只不過Template通常是基于某一個特定場景,描述的元信息的確是不夠豐富的,如果要足夠豐富,Template必定會加雜很多邏輯。
    而真正的元數(shù)據(jù)驅(qū)動的應(yīng)用,在軟件業(yè)也隨處可見。工作流程描述語言,頁面流程描述語言,HBM映射文檔都是元數(shù)據(jù)驅(qū)動,歸納起來,都是在運行時通過引擎渲染元數(shù)據(jù)摸板。嚴(yán)格分離Design time MetaData和Run time engine。這所帶來的益處也不是代碼生成能達(dá)到的。以下省略文字3000...

    還有一點我覺的非常重要,就是你的工具/平臺面向的群體。這會直接影響設(shè)計和實現(xiàn)的方式。以及是否考慮到了升級。希望有機(jī)會可以交流。
    主站蜘蛛池模板: 亚洲免费观看视频| 亚洲电影在线播放| 国产AV无码专区亚洲AV毛网站| 亚洲国产天堂久久综合网站 | **真实毛片免费观看| 日韩免费视频观看| 精品亚洲aⅴ在线观看| 新最免费影视大全在线播放| 国产1000部成人免费视频| 国产av无码专区亚洲av果冻传媒| 精品亚洲成在人线AV无码| 韩国免费A级毛片久久| 成人免费无码精品国产电影| 爱爱帝国亚洲一区二区三区| 国产成人免费高清激情明星| 超清首页国产亚洲丝袜| 亚洲狠狠婷婷综合久久蜜芽| 波多野结衣在线免费观看| 亚洲一级高清在线中文字幕| 四虎影视www四虎免费| 亚洲精品美女久久久久| 99在线精品免费视频九九视| 亚洲精品自偷自拍无码| 国产卡一卡二卡三免费入口| 亚洲综合久久1区2区3区| 成人免费a级毛片| 亚洲国产成人精品无码区在线秒播| 免费看少妇高潮成人片| 亚洲一区二区三区无码影院| 老司机午夜性生免费福利| 国产美女精品视频免费观看| 亚洲色无码专区一区| 最近2019中文字幕mv免费看| 日本亚洲精品色婷婷在线影院| 亚洲一区二区三区免费在线观看 | 亚洲一区动漫卡通在线播放| 国产精品免费综合一区视频| 黄色网站软件app在线观看免费| 亚洲人成免费电影| 亚洲А∨精品天堂在线| 四虎精品免费永久免费视频|