青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 27,  comments - 68,  trackbacks - 0
模板引擎(Template engine)是實現(xiàn)模型和視圖分離的一個重要手段。如果你從未接觸過模板引擎可以看看Wiki的介紹。模板引擎的流行最初是因為網(wǎng)站開發(fā)的需要,象比較重要的幾個模板引擎:SMARTYVelocityStringTemplate都是來源于網(wǎng)頁設(shè)計的。當(dāng)然,除了網(wǎng)頁設(shè)計,模板引擎還可以應(yīng)用于其他領(lǐng)域,而我主要將其應(yīng)用與代碼生成器的設(shè)計中。

有關(guān)模板引擎,我推薦StringTemplate的作者
Terence Parr 寫的一篇英文論文。Terence Parr是一個大學(xué)教授,寫的文章自然學(xué)術(shù)性比較強,較難懂,但是很有參考價值。借助這篇文章的分析,我們可以發(fā)現(xiàn)當(dāng)前模板引擎有著兩種不同的思路:一種是嚴(yán)格將模型和視圖分開的,設(shè)計模板系統(tǒng)時往往提供的模板語言比較簡單,避免在模板語言中加入運算符號等,另一種是提供強大的模板語言功能,模板語言具有類似高級語言的功能,如各種條件判斷語句,甚至數(shù)學(xué)運算能力。顯然從模板編寫者的角度看,后者具有更強大的功能,幾乎無所不能,但是安全性不如前者,模板的編寫者更容易利用系統(tǒng)漏洞做模板系統(tǒng)設(shè)計者沒有想到的事情。這個問題仁者見仁,智者見智,好在由很多的模板系統(tǒng)可以選擇。

絕大多數(shù)模板引擎都是支持Java、PHP、Python的,這當(dāng)然和模板引擎的應(yīng)用領(lǐng)域相關(guān)。我的代碼生成器是用C++寫的,而且必須支持Windows平臺,所以選擇的范圍就比較有限了,從網(wǎng)絡(luò)上搜索了一下,似乎只有TengCT++Google CTemplate可以使用了。我對3個系統(tǒng)進行了簡單的評估,并實際使用過CT++和CTemplate,現(xiàn)在總結(jié)一下自己的心得,希望對大家有一些幫助。

1、操作系統(tǒng)的支持
我的主要工作是在Windows上的,而模板引擎絕大多數(shù)是面向Unix/Linux的,這和我的需求有一定距離。當(dāng)初曾經(jīng)下載過Teng,但是折騰了半天也沒有能夠讓其在Visual Studio 2003下成功編譯,所以就放棄了,后來將CT++ 1.8簡單地處理了一下就可以跑了,很開心。而Google CTemplate更提供了完全的Windows支持,這對于我這樣的用戶當(dāng)然是非常省心了。

2、軟件開發(fā)的活躍度
這些軟件都是開源的,軟件開發(fā)的活躍度當(dāng)然是我關(guān)心的,有的工具剛開始用的時候很開心,但是后來開發(fā)者沒有興趣不玩了,而又沒有人接手,BUG也無法更新了,就比較苦了,典型的象TurboPower。Teng似乎已經(jīng)很長時間不更新了,CT++一直在更新,但是開發(fā)者是俄羅斯人,全部文檔是俄文的,包括程序注釋,以前1.8還有英文文檔,從2.0以后就沒有了,雖然最近承諾2.4以后會報告英文文檔,但是我擔(dān)心他哪天不高興就不玩了,所以最后下定決心轉(zhuǎn)到CTemplate去了。CTemplate雖然是Google的,而且據(jù)說Google內(nèi)部也在使用,但是在模板引擎領(lǐng)域的名氣卻不大,好像作者的熱情仍然很高,持續(xù)更新,而且可能很快要升級到1.0版本了,這給我很大的信心。

3、模板語言的功能
在我看來,模板語言的功能越強,提供的函數(shù)越多,它可能越受模板編寫者的歡迎,但是可能不符合模型和視圖嚴(yán)格分離的原則。Teng和CT++都屬于模板語言功能強的一類,象Teng甚至提供了大量的運算符,而CTemplate顯然是嚴(yán)格按照模型和視圖分離原則設(shè)計的,它甚至沒有提供if/else這樣在其他模板系統(tǒng)中都有的功能。如前所述,這個問題仁者見仁,智者見智,不爭論了。下面簡單地列個表比較一下。由于CT++ 2沒有英文文檔,一直就沒有使用過,可能會遺漏一些新功能。

Teng CT++ CTemplate
變量 支持 支持 支持
函數(shù) 支持 支持 支持(Modifier)
包含 支持 支持 支持
條件語句 支持 支持 不支持
循環(huán) 支持 支持 支持
計算 支持 不支持 不支持
賦值 支持 不支持 不支持
注釋 支持 支持 支持
安全性設(shè)計 不支持 不支持 支持
用戶定義函數(shù) 不支持 支持 支持

4、C++ API
基本的API幾個軟件都差不多,我覺得CTemplate更完善一些,特別喜歡它的調(diào)試功能。

總體來說,我對CT++還是有些難舍,但是綜合考慮之后還是決定轉(zhuǎn)到CTemplate上。
posted on 2008-09-17 21:42 zealsoft 閱讀(2701) 評論(2)  編輯 收藏 引用 所屬分類: 編譯器設(shè)計

FeedBack:
# re: 基于C++的模版引擎
2008-09-22 11:58 | 唐新發(fā)
還有一個可以考慮一下:ClearSilver
  回復(fù)  更多評論
  
# re: 基于C++的模版引擎
2008-09-22 16:03 | zealsoft
@唐新發(fā)
ClearSilver 也是一個不錯的選擇。  回復(fù)  更多評論
  

<2005年9月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

常用鏈接

留言簿(13)

隨筆分類(28)

隨筆檔案(27)

搜索

  •  

積分與排名

  • 積分 - 58618
  • 排名 - 398

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久精品导航| 另类春色校园亚洲| 国产亚洲欧美一级| 国产精品久久久99| 国产精品免费久久久久久| 欧美性猛交xxxx乱大交退制版| 久久五月天婷婷| 麻豆成人av| 欧美久久久久久| 国产精品久久精品日日| 韩国三级在线一区| 亚洲欧洲偷拍精品| 亚洲视频一区二区免费在线观看| 亚洲在线观看免费视频| 篠田优中文在线播放第一区| 久久久蜜臀国产一区二区| 欧美成人精精品一区二区频| 亚洲久久一区二区| 午夜精品一区二区三区在线视| 久久天堂成人| 国产精品海角社区在线观看| 合欧美一区二区三区| 亚洲人成在线观看网站高清| 亚洲专区免费| 欧美mv日韩mv亚洲| 亚洲少妇自拍| 夜夜嗨av一区二区三区网页| 亚洲视频碰碰| 久久午夜精品一区二区| 亚洲精品国产精品国自产观看浪潮 | 亚洲国产精品悠悠久久琪琪| 国产一区二区三区精品久久久| 在线观看欧美黄色| 一本色道久久综合亚洲精品按摩| 午夜精品一区二区三区四区| 欧美高清视频在线播放| 亚洲专区国产精品| 欧美日本不卡高清| 1024欧美极品| 久久精品国语| 亚洲性色视频| 欧美日韩一区二区免费视频| 伊人精品成人久久综合软件| 性做久久久久久免费观看欧美| 亚洲激情小视频| 久久青草久久| 国产一二三精品| 亚洲宅男天堂在线观看无病毒| 欧美国产日本高清在线| 99精品黄色片免费大全| 久久久最新网址| 亚洲欧美影音先锋| 国产精品v片在线观看不卡 | 久久久久一区二区| 国产亚洲精品一区二区| 欧美一级久久久久久久大片| 99视频有精品| 欧美日韩视频不卡| 日韩天堂av| 亚洲精品乱码久久久久久久久| 狂野欧美激情性xxxx欧美| 蜜臀久久99精品久久久画质超高清 | 麻豆成人在线播放| 精品成人国产在线观看男人呻吟| 久久狠狠亚洲综合| 久久高清福利视频| 在线日韩av| 欧美激情一区二区三区不卡| 欧美a级一区二区| 亚洲精选中文字幕| 日韩视频一区二区三区在线播放| 欧美久久久久免费| 亚洲欧美日产图| 午夜精品999| 激情国产一区| 亚洲国产精品专区久久| 欧美日产一区二区三区在线观看 | 国产在线高清精品| 欧美一级电影久久| 欧美一区二区三区在线视频| 国产伦精品一区二区三区高清版| 欧美揉bbbbb揉bbbbb| 一本色道久久综合狠狠躁的推荐| 亚洲激情社区| 欧美视频中文一区二区三区在线观看| 亚洲图中文字幕| 午夜精品美女自拍福到在线| 国产午夜亚洲精品羞羞网站 | 毛片基地黄久久久久久天堂| 亚洲国产综合在线| 一本色道久久88亚洲综合88| 国产毛片精品国产一区二区三区| 久久在线观看视频| 欧美日本精品一区二区三区| 欧美一区不卡| 免费影视亚洲| 亚洲综合精品| 久久久久免费| 亚洲一区二区三区激情| 久久国产精品久久精品国产 | 韩国亚洲精品| 亚洲精品一区在线观看| 国产午夜精品理论片a级大结局| 欧美电影免费观看高清| 国产精品视频一区二区高潮| 欧美电影在线免费观看网站| 国产精品热久久久久夜色精品三区 | 免费观看成人网| 欧美视频在线播放| 免费在线国产精品| 国产精品三区www17con| 亚洲第一区中文99精品| 国产欧美丝祙| 亚洲欧美国内爽妇网| 老妇喷水一区二区三区| 亚洲欧美国产精品va在线观看 | 欧美不卡一卡二卡免费版| 欧美性猛交xxxx乱大交蜜桃 | 夜夜精品视频| 另类人畜视频在线| 久久黄色影院| 欧美性理论片在线观看片免费| 欧美激情综合| 欧美一区=区| 性欧美暴力猛交另类hd| 欧美日韩国产亚洲一区| 欧美福利视频网站| 一区二区三区亚洲| 性欧美在线看片a免费观看| 亚洲自拍三区| 欧美色网一区二区| 亚洲每日在线| 一区二区三区视频在线 | 亚洲精品久久久久久久久久久久| 曰本成人黄色| 久久精品中文| 麻豆成人在线| 亚洲电影成人| 噜噜噜躁狠狠躁狠狠精品视频| 老司机67194精品线观看| 狠狠色丁香久久婷婷综合_中| 亚洲一区二区四区| 久久综合久久综合久久| 亚洲欧美国内爽妇网| 久久aⅴ乱码一区二区三区| 久久精品国产77777蜜臀| 国产精品一卡| 性色av一区二区三区红粉影视| 蜜臀av一级做a爰片久久| 国产精品亚洲综合一区在线观看 | 久久久久国产精品厨房| 欧美伊人久久大香线蕉综合69| 国产精品电影在线观看| 亚洲影院免费观看| 久久九九全国免费精品观看| 国产一区二区三区四区在线观看| 欧美在线观看一区二区三区| 久久亚洲捆绑美女| 亚洲高清二区| 欧美日韩美女| 欧美一区二区精品久久911| 欧美~级网站不卡| 亚洲福利视频在线| 欧美日韩另类在线| 性欧美videos另类喷潮| 欧美成人在线影院| 亚洲午夜精品久久久久久app| 国产乱码精品一区二区三区av| 久久精品国产亚洲aⅴ| 亚洲激情在线激情| 欧美在线观看一区二区| 91久久亚洲| 国产精品亚洲欧美| 欧美岛国激情| 性做久久久久久| 亚洲激情图片小说视频| 欧美在线免费视屏| 亚洲美女免费视频| 国产一区二区三区免费在线观看| 欧美成人精品h版在线观看| 亚洲无吗在线| 亚洲国产一区二区三区青草影视| 亚洲女女女同性video| 在线观看欧美黄色| 国产精品实拍| 欧美国产日韩一二三区| 性色av一区二区三区在线观看| 一区二区欧美日韩| 国产精品自在在线| 欧美精品乱码久久久久久按摩| 午夜激情一区| 亚洲视频免费| 亚洲精品视频免费观看| 蜜臀av一级做a爰片久久| 欧美伊人久久| 亚洲欧美韩国| 亚洲视频专区在线| 亚洲欧洲另类| 在线精品亚洲| 精品999网站|