tangram挑戰軟體禁地 構思外掛程式體系引擎
孫輝老師深厚的軟體開發經歷,接下來我們就要進入
tangram
,在這裡面一起細細體會這些年
孫輝老師對軟體的理解和心血。 現在
tangram
的開源部分有兩個版本,一是
tangram
的開源版本,另外乙個是
tangram
的lite
版本,其中都包含了許多很實用的開發技術,當然,開源部分是整個
tangram
框架的乙個子集。那麼
tangram
到底是乙個什麼樣的專案?從字面上看,
tangram
是 中國古代的遊戲「七巧板」,這是典型的古代中國的樸素思維方式,即「以有限駕馭無限」的基本構想,中國古代的先哲們很早就有「金、木、水、火、土」繁衍世 界的認識,無論是「金、木、水、火、土」繁衍世界,還是「七巧板」,都是體現一種構造哲學的設想,另外乙個模擬可能是門捷列夫的元素週期表,通過這個週期 表,人們看到複雜世界的簡單的一面。
tangram
的基本出發點是,通過
com、
.net
元件形成的乙個「基」,按照乙個組合法則,形成乙個「公共元件資源空間」,這個空間的成員是由有限個「
com、或
.net
」元件形成的乙個組合體。我們希望「公共元件資源空間」能夠成為相當大的一類軟體的公共基礎,這意味著,這類軟體支援「公共元件資源空間」中的每乙個元素。
產生開發
tangram
專案想法源於多年的實際開發經驗,對技術、專案的積累達到了乙個階段之後我覺得軟體系統的不可迴避的乙個問題是軟體系統具備「不完備性」,因此,
tangram
最主要的用途是對這種不完備性的乙個有效的補充。因為
tangram
最突出的特徵就是實現了乙個靈活的軟體外掛程式引擎,
csdn的
韓磊先生曾經建議將其命名為「逆向外掛程式體系」,我覺得這是乙個有趣的建議。
tangram
的思路是作為乙個「外掛程式體系」的引擎,是乙個十分值得期待的新穎的軟體構思。
tangram
框架的目標就是開發滿足上述描述條件的軟體系統,目前,
tangram
支援的「公共元件資源空間」是由「
com控制項、
.net
控制項以及
c++ view
」物件作為原子生成的組合體形成的集合。
tangram for ie
是tangram
的第乙個示範性的產品,作為這個產品的結果,
internet explorer
將產生任意多個定製化的框架,每個框架都相當於乙個「第三方」瀏覽器,如下圖:
1:tangram for ie
,在ie
框架中直接架構自己的軟體框架
未來的規劃是我們希望
tangram
可以自然的與主流商業軟體進行「橋接」,例如,
tangram
框架與office
結合,作為乙個概念圖,我們可以給出乙個實驗階段的執行截圖:
2:tangram
與excel
結合,使得業務軟體框架直接架構在
excel
基礎之上
另外乙個概念性質的截圖是
tangram
與eclipse
的結合:
3:eclipse
中的tangram
,圖中蘭色加亮的標籤窗體中的框架結構來自
tangram
通過這些年來對於
mfc的了解,
孫輝老師個人堅持認為
mfc很難在近幾年內被淘汰。他說作為乙個嚴肅的
c++開發者,對
mfc提出批評的時候,一定是需要很熟悉
mfc的,否則批評就一定是蒼白的。
很多人都認為
wtl是很優秀的產品,但
microsoft
始終不給其正規產品的定位,這一點很說明問題。許多開發者在沒有深刻認識的前提下批評
mfc是一種浮躁的表現,幾年前
孫輝老師曾經在
csdn
論壇中發過關於
mfc方面的乙個帖子,當時許多朋友都參與了**
mfc的各個方面,從許多方面看,
mfc都是乙個禁得起推敲的框架,大而臃腫是每個框架發展到乙個階段都必須面對的問題,作為乙個研究課題,
孫輝老師說:「
mfc的批評者或許是
mfc框架的最大受益者。」
「我覺得,無論你是否喜歡,在
microsoft
平台上用
c++開發,至少應該批判的學習
mfc,我接觸過一些自己寫框架的開發者,他們覺得自己的東西可以替代
mfc,大部分的作品我覺得經不起推敲,經得起推敲的應該是那些熟悉
mfc的作者的作品。
.net
框架的類庫結構可以看出許多與
mfc相似的思路,這也很說明問題。」
如果要問「基於
mfc程式設計認識到哪一點是最重要的」
?我覺得
mfc的思想方法是十分重要的,著名的
qt框架的許多想法就是從
mfc框架借鑑而來的,很早的時候,許多人用
borland
的c++
類庫與mfc
比較,說
mfc如何拙劣,但
mfc現在還健在,但
owl已經消失了,面對乙個經典的框架,本來就基礎薄弱的我們,為什麼有時間品評
mfc的優劣,而不進行深入的學習呢?
我想對windows
平台下的
c++開發者說的是,如果你真的討厭
mfc,那麼你應該耐心的了解這個東西,直到找出
mfc令你討厭的地方,如此,你才能夠更上一層樓。 在
tangram
中的每一行**,都是
孫輝老師經歷的見證。在對
tangram
做不斷完善的過程中,
孫輝老師意識到了僅僅有技術是無法成就乙個產品的。通過交流其實有很多朋友都影響過
tangram
這個技術框架。
孫輝老師特別提到了
csdn的
袁德俊先生,他的設想使
tangram
框架中加入了
ie外掛程式的構造能力,在與哈爾濱的
曲春雨先生的交流中形成了
tangram
框架中靈活、自由的
ie擴充套件框架,
tangram for ie
最後的技術框架的確定與
csdn的
蔣濤先生、
韓磊先生的不斷磨合也有著極為密切的關係。
「人不能經歷所有的事情,即使你具備相關的能力,但客觀的環境會讓你根本無法知道你更適合做什麼,在不斷的交流中,我捕捉到種種思考點進而促使
tangram
不斷的豐滿。」
孫輝老師這樣心存感激的說道,
「我的教育背景也是產生
tangram
專案的另外乙個關鍵因素,
tangram
技術構思是開發者的盲點,其中的技術技巧不是關鍵的因素,構思點是關鍵的原因,我覺得形成
tangram
的基本想法的重要因素之一是我是基礎數學科班出身的背景。究其本質而言,
tangram
更像乙個數學問題,只不過是用
c++解決的。」(全文完)
最強王者組 張西輝 孫曉萌 胡鵬飛 王振波
1.記憶體直接賦值,引用計數不發生 變化 2.collection 集合 記憶體管理 1 當把乙個物件放入collection 陣列,字典,集合 中時,會將物件的引用計數 1 因為內部做了retain操作.2 當collection 陣列,字典.集合 空間被 時,他們會向容器中的每乙個元素傳送乙個r...
張博涵清華大學 特別專訪 張博涵 上
本期嘉賓 張博涵男 清華大學 能源與動力工程系 大四 學長,您能給我們的讀者們簡單的介紹一下自己嗎?我叫張博涵,是南崗校區2015屆畢業生,現在清華大學能源與動力工程系讀大四。學長,您是15年從三中畢業的,當年的高考是近幾年難度較高的一屆高考,您依然沒有被難題難倒考進了清華大學這所中國的頂尖高校。當...
對大學生數學建模和大學生數學競賽的感悟
今年的建模國賽和數學競賽國賽,趕在了一起。建模的的第二天恰好是學校體能測試 包括50m,800m跑步等 建模的第三天是數學競賽的時間。體能測試從上午8 9 40,數學競賽從上午9 11 30。這就意味著建模國賽的第二天和第三天各自上午的時間都被占用了。而建模的第二天和第三天是出思路和出 的關鍵時間,...