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

隨筆-341  評(píng)論-2670  文章-0  trackbacks-0

本來(lái)每年都要寫(xiě)一篇年經(jīng)帖來(lái)提高一下知名度的,但是最近因?yàn)樽鯣acUI太興奮,竟然把這件事情給忘了,實(shí)在是罪過(guò)。

如果要說(shuō)我2012年做過(guò)的什么事情最重要,那當(dāng)然要屬開(kāi)發(fā)了GacUI(Home Page, Codeplex, Github)和創(chuàng)建了粉絲群(啊哈哈)了吧。博客到現(xiàn)在還有三個(gè)坑沒(méi)填完,分別是那個(gè)已經(jīng)坑了好久、大家都要看、但是我卻不知道要寫(xiě)什么的《C++使用技巧》,還有兩個(gè)大家不怎么想看的《可配置語(yǔ)法分析器開(kāi)發(fā)紀(jì)事》和《GacUI與設(shè)計(jì)模式》。

關(guān)于
GacUI,我已經(jīng)在微博上做了許多廣告,也有一些人開(kāi)始嘗試使用它了。目前GacUI還處于一個(gè)湊合著能用的beta狀態(tài),我在接下來(lái)的很長(zhǎng)一段時(shí)間內(nèi)應(yīng)該會(huì)繼續(xù)update它。我的本意是要把WPF那么精妙的設(shè)計(jì)給山寨到C++上面來(lái),從而結(jié)束非得用MFC才能正常開(kāi)發(fā)GUI的日子。而且因?yàn)橹拔矣肅#的WinForm開(kāi)發(fā)IDE太蛋疼了,parser需要寫(xiě)兩遍(編譯器一遍,IDE一遍,語(yǔ)言還不一樣),所以我在設(shè)計(jì)GacUI的時(shí)候,質(zhì)量要求就是朝著Visual Studio看齊的。所以大家會(huì)看到我在做GacUI的時(shí)候,文本框就內(nèi)置了高速的著色系統(tǒng),還做了一個(gè)新的parser來(lái)產(chǎn)生嚴(yán)格的parser或者松散的parser,分別給編譯器和IDE使用。然后我用這個(gè)parser寫(xiě)了一個(gè)xml和json的庫(kù),最后在昨天還update了一下Linq to C++,把我看得不順眼的東西都干掉,于是我也擁有了一個(gè)Linq to Xml for C++的庫(kù)了。

但是GacUI還是有很多東西要做。我腦子里一直有一個(gè)清晰的路線圖,而且這個(gè)路線圖是直接朝著目標(biāo)前進(jìn)的:做一個(gè)C++的GUI庫(kù),順便給一個(gè)類似Expression Blend那樣子的東西,然后那個(gè)框架還可以為我以后開(kāi)發(fā)語(yǔ)言,或者給現(xiàn)有的語(yǔ)言做IDE。所以為了達(dá)到這個(gè)目標(biāo),我至少要給GacUI的控件和對(duì)象模型做反射。為了讓大家可以使用,我還得準(zhǔn)備一個(gè)看起來(lái)跟MSDN很像的文檔。因此路線圖就是(粗體的部分已經(jīng)完成了)

1. 開(kāi)發(fā)控件庫(kù)
2. 擁有一套生成Release的工具鏈,包括parser生成器、文檔生成器、各種代碼生成器等
3. 有一個(gè)小巧玲瓏簡(jiǎn)單好用的XML庫(kù)
4. 可以讀PDB把GacUI的對(duì)象聲明都拿到手
5. 利用PDB和GacUI的源代碼里面的XML注釋生成文檔
6. 用一個(gè)類似C#那樣子的語(yǔ)法來(lái)給GacUI“聲明”一個(gè)對(duì)象模型,讓他可以被反射,也可以用來(lái)生成各種語(yǔ)言用的接口,特別是動(dòng)態(tài)語(yǔ)言例如javascript和python的
7. 把PDB的內(nèi)容和對(duì)象模型結(jié)合起來(lái),生成C++用的反射代碼
8. 利用反射代碼,設(shè)計(jì)一個(gè)GUI的XML(或者別的什么東西)表示,從而實(shí)現(xiàn)動(dòng)態(tài)加載窗口
9. 制作一個(gè)長(zhǎng)得和操作模式都跟Visual Studio差不多的多文檔編輯框架
10. 用上面的框架開(kāi)發(fā)一個(gè)GUI編輯器,用來(lái)拖控件生成xml+資源,就可以嵌入C++的exe,或者提供給腳本語(yǔ)言使用了
11. 提供一個(gè)腳本語(yǔ)言,作為可選的插件,來(lái)簡(jiǎn)化復(fù)雜GUI的開(kāi)發(fā)
12. 給這個(gè)語(yǔ)言提供一個(gè)IDE

大家可以看到,這就是為什么我最近要花時(shí)間做著色、parser生成器、用parser生成器來(lái)生成xml和json的庫(kù)的parsing部分、做一個(gè)linq to C++并且讓xml庫(kù)直接支持就像C#的linq to xml一樣。雖然看起來(lái)這些東西跟GacUI本身毫無(wú)關(guān)系,但是實(shí)際上為了實(shí)現(xiàn)那個(gè)復(fù)雜又得自動(dòng)生成不然寫(xiě)到孩子出來(lái)還人肉不完的反射代碼生成,一定要有配套的基礎(chǔ)設(shè)施才行。

關(guān)于粉絲群
,因?yàn)槲壹尤氲拇蟛糠志幊虆^(qū)最后都癟了,所以本來(lái)我并沒(méi)有創(chuàng)建一個(gè)群用來(lái)交流技術(shù)的想法。不過(guò)因?yàn)槟橙河颜f(shuō)找不到人研究我以前的代碼的一篇回復(fù),我還是創(chuàng)建了這個(gè)群。本來(lái)群只有100人的,但是有兩個(gè)人贊助了一下,瞬間變成了500人群。所以以后不斷的有人進(jìn)來(lái)的時(shí)候我就再也不需要踢掉不說(shuō)話的人了。很快群里就開(kāi)始熱烈的討論起問(wèn)題,經(jīng)常討論的那么十幾二十個(gè)人也這么固定下來(lái)了。這個(gè)群和別的群不一樣的地方在于,所有問(wèn)傻逼問(wèn)題和求大作業(yè)的全部被我和鸛貍猿們一個(gè)不留的干掉了,啊哈哈哈哈。

由于我在cppblog廣告的關(guān)系,加入這個(gè)群的人大部分還是做C++的,和S1那群做web的平時(shí)跟技術(shù)有關(guān)的話題完全不同,對(duì)待某些人生底線問(wèn)題(譬如說(shuō)大括號(hào)要不要換行等)的態(tài)度也是完全不同。當(dāng)然偶爾有人經(jīng)不住每天幾千個(gè)消息的沖擊退群了,但是群的熱烈程度還是一點(diǎn)也沒(méi)有消減。

關(guān)于
C++實(shí)用技巧,由于我自詡是一個(gè)做C++基礎(chǔ)類庫(kù)的人,對(duì)待C++各種奇技淫巧的態(tài)度自然也是不一樣的。盡管大家都說(shuō)C++學(xué)起來(lái)很難,坑很多,模板根本看不懂,析構(gòu)函數(shù)沒(méi)寫(xiě)程序函數(shù)經(jīng)常要爛掉之類的,不過(guò)我的觀點(diǎn)還是很明確的——其實(shí)C++有很多難以理解的功能,都是給寫(xiě)基礎(chǔ)類庫(kù)準(zhǔn)備的。只要程序員們不要本著“我一定要看懂類庫(kù)怎么寫(xiě)才用”的這種無(wú)聊觀點(diǎn)的話,其實(shí)壓力并不會(huì)那么大。大多數(shù)人覺(jué)得C++難,但其實(shí)難的部分他做項(xiàng)目大概也是用不上的,本質(zhì)原因還是不夠淡定導(dǎo)致。

說(shuō)到這里我就想起了以前跟人家討論的,為什么C#用起來(lái)就那么舒服呢?很重要的一點(diǎn)其實(shí)是,因?yàn)檫x擇少,所以連煩惱都沒(méi)有了。反正事情都能完成,但是方法只有一種的話,你永遠(yuǎn)都不需要去比較或者糾結(jié)說(shuō),究竟要用什么樣的方法來(lái)實(shí)現(xiàn)。而且一個(gè)自帶垃圾收集器+泛型+函數(shù)式編程+continuation的語(yǔ)言,語(yǔ)法懂得少也可以用,語(yǔ)法懂得多用起來(lái)還特別省事,這一點(diǎn)的確比C++要好得多。回想起2002在CSDN那個(gè)著名的對(duì)垃圾收集器的大討論,ajoo有一點(diǎn)說(shuō)得很好,有沒(méi)有GC,設(shè)計(jì)出來(lái)的架構(gòu)都大不一樣。想想原因其實(shí)也很簡(jiǎn)單,語(yǔ)言一旦帶有GC的話,通常都會(huì)對(duì)內(nèi)存做出嚴(yán)格的控制,因此你想干掉一個(gè)對(duì)象就只有一種方法——等他去死了(C#的IDisposable跟這個(gè)其實(shí)沒(méi)什么關(guān)系)。因此那些C++里面很執(zhí)著的誰(shuí)創(chuàng)建誰(shuí)刪除啊,COM的什么引用計(jì)數(shù)啊,這些亂七八糟的東西統(tǒng)統(tǒng)就沒(méi)有了。你可以不顧一起的創(chuàng)建各種細(xì)粒度對(duì)象,不斷地創(chuàng)建各種接口,而根本不用擔(dān)心這些對(duì)象在死的時(shí)候你要干些什么,不僅做出來(lái)的設(shè)計(jì)干凈,用起來(lái)也省心。

關(guān)于可配置語(yǔ)法分析器開(kāi)發(fā)紀(jì)事
,按照計(jì)劃還剩下兩篇,不過(guò)因?yàn)檫@兩篇的內(nèi)容已經(jīng)不怎么重要,所以最近的時(shí)間都用在開(kāi)發(fā)GacUI上面了。等雜事搞完了之后我就補(bǔ)上這部分內(nèi)容。

關(guān)于
GacUI與設(shè)計(jì)模式,這個(gè)系列自從寫(xiě)了兩篇文章之后,盡管GacUI都是我一手寫(xiě)出來(lái)的,但是我發(fā)現(xiàn)要整理出那個(gè)架構(gòu)清楚的表達(dá)出來(lái),需要花很多的時(shí)間。為了保證文章的質(zhì)量,我干脆就暫時(shí)停下來(lái)了,一邊推進(jìn)GacUI的開(kāi)發(fā)進(jìn)度,一邊 重新整理。雖然我從來(lái)都只用VC++來(lái)編譯我的代碼,不過(guò)GacUI從一開(kāi)始設(shè)計(jì)架構(gòu)上就有考慮跨平臺(tái)的問(wèn)題,而且我也把對(duì)Windows.h的依賴也局限在少數(shù)的幾個(gè)cpp文件里,頭文件則完全是沒(méi)有污染的。盡管代碼里面肯定有VC++對(duì)標(biāo)準(zhǔn)作出的一點(diǎn)點(diǎn)人性化修改而垃圾GCC故意不支持從而造成代碼不能再GCC上面編譯,不過(guò)在計(jì)劃上我大概會(huì)在今年的下半年開(kāi)始把代碼修改成讓垃圾GCC也可以編譯GacUI了。

關(guān)于
2013,出去開(kāi)發(fā)GacUI和心目中的那個(gè)腳本引擎,我在2013年最想點(diǎn)的技能樹(shù)就是編譯器的后端知識(shí)了。盡管我在09年的時(shí)候做過(guò)一個(gè)傻逼C語(yǔ)言編譯器,盡管也是編譯成機(jī)器碼,但是都是用最簡(jiǎn)單粗暴的方法來(lái)做的。為了以后的腳本引擎,把這件事情做好,掌握編譯器的后端也就變成必要的事情了。不過(guò)我在這里還是想說(shuō),編譯器的前端知識(shí)也是很重要的。經(jīng)過(guò)設(shè)計(jì)語(yǔ)言的語(yǔ)法的訓(xùn)練,和對(duì)設(shè)計(jì)類型系統(tǒng)的訓(xùn)練,不僅可以提高數(shù)學(xué)知識(shí)、提高智商,還可以讓你學(xué)習(xí)新的語(yǔ)言和類庫(kù)變得更快。編程都是舉一反三的,并不是直接的針對(duì)他學(xué)習(xí)才是長(zhǎng)遠(yuǎn)看來(lái)最好的方法。

posted on 2013-01-25 06:29 陳梓瀚(vczh) 閱讀(5264) 評(píng)論(12)  編輯 收藏 引用 所屬分類: 啟示

評(píng)論:
# re: 2012龍年之旅 2013-01-25 06:42 | Scan
老大突然要開(kāi)始抓后端,是不是也跟空明以及RFX的交流有關(guān)?哈哈  回復(fù)  更多評(píng)論
  
# re: 2012龍年之旅 2013-01-25 06:58 | 陳梓瀚(vczh)
@Scan
幾年前就一直想做了,但是沒(méi)有合適的機(jī)會(huì)  回復(fù)  更多評(píng)論
  
# re: 2012龍年之旅 2013-01-25 11:48 | 空明流轉(zhuǎn)
開(kāi)博先跪,膝蓋已碎。  回復(fù)  更多評(píng)論
  
# re: 2012龍年之旅 2013-01-25 18:39 | phoenixbing
頂是必須地,跟著老大不斷學(xué)習(xí)。  回復(fù)  更多評(píng)論
  
# re: 2012龍年之旅 2013-01-25 18:43 | DiryBoy
第六點(diǎn)好像winRT那樣子改了C++然后又加個(gè)給編譯器生成沒(méi)改過(guò)的C++要用的庫(kù)……IInspectable神馬的……  回復(fù)  更多評(píng)論
  
# re: 2012龍年之旅 2013-01-26 01:25 | 陳梓瀚(vczh)
@DiryBoy
但是我不會(huì)改C++的  回復(fù)  更多評(píng)論
  
# re: 2012龍年之旅 2013-01-26 17:46 | joewan
請(qǐng)教個(gè)問(wèn)題,GacUI與QT之間的比較。從你的博文中,感覺(jué)GacUI是WPF的C++版本。GacUi后續(xù)也會(huì)跨平臺(tái),使用GacUI開(kāi)發(fā)一個(gè)linux版本的VS,那將非常贊,但是我還是要問(wèn),為什么不直接使用Qt呢。另外對(duì)你的通過(guò)pdb實(shí)現(xiàn)反射的方式很感興趣的,今后linux平臺(tái)上能實(shí)現(xiàn)這點(diǎn)么(總之都是讀取編譯的符號(hào)信息)。有問(wèn)的不恰當(dāng)?shù)牡胤剑喟?nbsp; 回復(fù)  更多評(píng)論
  
# re: 2012龍年之旅 2013-01-27 03:23 | 陳梓瀚(vczh)
@joewan
1:qt修改了C++我很不開(kāi)心
2:反正GacUI是在windows上開(kāi)發(fā)的,pdb都是用來(lái)生成代碼的,所以給linux編譯的時(shí)候只需要引用生成好的代碼就好了,linux不需要那個(gè)
3:雖然GacUI的目標(biāo)包含跨平臺(tái),但是我做的工具可沒(méi)有,啊哈哈哈哈  回復(fù)  更多評(píng)論
  
# re: 2012龍年之旅 2013-01-27 04:48 | 空明流轉(zhuǎn)
@陳梓瀚(vczh)

1. (略
2. 在Linux上可以使用Clang直接出代碼,不需要經(jīng)過(guò)符號(hào)表的反射
3. 工具你以后恐怕是要自舉的。  回復(fù)  更多評(píng)論
  
# re: 2012龍年之旅 2013-01-27 06:00 | Richard Wei
牛, 一個(gè)人把微軟一幫人的事情都做了。

啥時(shí)候?qū)懳恼陆榻B下微軟RPC內(nèi)部的實(shí)現(xiàn)原理, 對(duì)這個(gè)比較有興趣, 呵呵。  回復(fù)  更多評(píng)論
  
# re: 2012龍年之旅 2013-01-30 05:11 | 陳梓瀚(vczh)
@空明流轉(zhuǎn)
這又不是編譯器,自舉了沒(méi)有意義啊。  回復(fù)  更多評(píng)論
  
# re: 2012龍年之旅 2013-02-11 19:43 | augustheart
第一時(shí)間加入QQ群,發(fā)現(xiàn)整天都在說(shuō)數(shù)據(jù)庫(kù)問(wèn)題……
然后完全插不上嘴,然后就沒(méi)有然后了……  回復(fù)  更多評(píng)論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久九九国产| 国产精品扒开腿爽爽爽视频| 欧美aaa级| 欧美大香线蕉线伊人久久国产精品| 销魂美女一区二区三区视频在线| 亚洲图片你懂的| 亚洲尤物在线| 欧美一区二区性| 麻豆成人在线播放| 亚洲国产精品99久久久久久久久| 欧美成人精品| 亚洲激情视频网站| 亚洲小说欧美另类社区| 亚洲欧美精品在线| 久久精品国产91精品亚洲| 一区二区欧美亚洲| 欧美国产日韩xxxxx| 日韩天堂av| 欧美自拍丝袜亚洲| 欧美激情精品久久久久久大尺度| 亚洲综合成人婷婷小说| 国产精品综合视频| 在线观看亚洲视频| 亚洲图片欧美一区| av成人手机在线| 久久精品免费看| 亚洲电影有码| 亚洲在线观看视频网站| 欧美一区国产在线| 欧美午夜不卡视频| 国内外成人免费激情在线视频网站 | 欧美不卡视频一区| 亚洲区中文字幕| 午夜免费在线观看精品视频| 免费在线欧美黄色| 国产美女精品视频| 日韩视频精品| 久久久久成人网| 亚洲午夜精品网| 欧美国产欧美亚州国产日韩mv天天看完整 | 激情综合久久| 亚洲你懂的在线视频| 欧美黑人国产人伦爽爽爽| 亚洲女同精品视频| 欧美日本一道本| 亚洲国产精品99久久久久久久久| 欧美在线free| 亚洲视频国产视频| 欧美日韩亚洲网| 亚洲福利电影| 久久精品主播| 午夜国产精品影院在线观看| 欧美日韩另类字幕中文| 亚洲理论在线| 亚洲黄色一区二区三区| 久色成人在线| 在线观看日韩| 另类尿喷潮videofree | 制服丝袜亚洲播放| 欧美日韩成人一区二区三区| 日韩午夜电影在线观看| 亚洲国产精品黑人久久久| 另类图片国产| 亚洲福利专区| 美腿丝袜亚洲色图| 久热精品视频在线免费观看| 红杏aⅴ成人免费视频| 久久夜色精品亚洲噜噜国产mv| 欧美在线视频在线播放完整版免费观看| 国产精品色婷婷久久58| 午夜精品影院| 欧美一级一区| 在线观看日韩| 玉米视频成人免费看| 一区二区三区四区五区在线 | 黄色成人91| 美女视频黄 久久| 老司机免费视频久久| 亚洲美女视频在线观看| 亚洲三级毛片| 国产精品久久亚洲7777| 欧美专区在线| 老司机免费视频久久| 一区二区三区高清| 亚洲女ⅴideoshd黑人| 黄色成人在线免费| 亚洲国产激情| 国产精品日韩欧美综合| 久久美女艺术照精彩视频福利播放| 久久亚洲综合| 亚洲一区国产视频| 久久精品一区| 亚洲一区二区影院| 欧美自拍丝袜亚洲| 一区二区欧美在线观看| 欧美在线地址| 一区二区三区久久精品| 欧美一区二区三区日韩视频| 亚洲精品久久嫩草网站秘色| 亚洲欧美日韩中文在线制服| 亚洲欧洲在线看| 亚洲一区二区三区中文字幕在线 | 久久在线视频| 亚洲一区二区三区在线| 久久久久久97三级| 亚洲自拍偷拍色片视频| 老司机成人在线视频| 欧美一级在线视频| 欧美精品久久久久久久免费观看| 久久er99精品| 欧美日韩亚洲一区在线观看| 免费亚洲网站| 国产亚洲综合精品| 一级日韩一区在线观看| 亚洲精品亚洲人成人网| 欧美一区激情视频在线观看| 亚洲一级黄色av| 欧美日本国产一区| 欧美国产亚洲精品久久久8v| 国产欧美在线观看| 亚洲视频在线一区| 亚洲特色特黄| 欧美区一区二| 亚洲精品一区二区在线观看| 在线观看一区二区精品视频| 欧美与黑人午夜性猛交久久久| 欧美一级大片在线观看| 欧美日韩中文| 一区二区三区www| 亚洲图片激情小说| 国产精品成人观看视频免费 | 欧美va天堂在线| 国产嫩草影院久久久久| 亚洲麻豆视频| 99国产精品国产精品毛片| 男人的天堂亚洲| 欧美粗暴jizz性欧美20| 影音先锋欧美精品| 久久精品视频网| 免费人成精品欧美精品| 一区二区在线视频| 久久久久久尹人网香蕉| 欧美va亚洲va国产综合| 亚洲精品国产精品乱码不99| 欧美成人一二三| 亚洲日韩欧美一区二区在线| 一区二区三区四区精品| 欧美日韩中文另类| 日韩一级网站| 亚洲性线免费观看视频成熟| 久久精品一二三| 久久久免费精品视频| 国产欧美精品在线| 亚洲一区二区三区视频| 欧美人与禽性xxxxx杂性| 欧美大片在线观看一区| 影音先锋一区| 欧美成人国产一区二区| 欧美丰满少妇xxxbbb| 亚洲高清自拍| 欧美va天堂在线| 欧美~级网站不卡| 亚洲国产成人91精品| 欧美夫妇交换俱乐部在线观看| 亚洲成色www久久网站| 在线日韩av片| 你懂的视频欧美| 亚洲激情网站免费观看| 亚洲精品视频在线| 国产精品美女主播| 欧美一区二区视频免费观看| 欧美黄色精品| 午夜久久久久久久久久一区二区| 国产欧美日韩专区发布| 欧美成人四级电影| 国产精品99久久久久久久久| 暖暖成人免费视频| 亚洲精品欧美极品| 国产精品女同互慰在线看| 久热精品视频在线| 亚洲精品一区二区网址| 免费亚洲网站| 亚洲高清免费在线| 国产精品亚洲片夜色在线| 欧美+日本+国产+在线a∨观看| 亚洲三级观看| 欧美国产日本高清在线| 一本久久综合亚洲鲁鲁五月天| 国产日韩欧美视频在线| 另类av一区二区| 亚洲视频观看| 久久黄金**| 亚洲精品美女在线观看播放| 国产精品一区二区男女羞羞无遮挡 | 免费在线视频一区| 亚洲网站在线| 欧美在线观看视频在线| 亚洲黄色小视频| 久久精品免费| 亚洲午夜久久久|