成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

我對架構師的理解:如何成為一個合格的架構師

開發 架構
在討論架構之前,我們先上道菜,青椒土豆肉絲,這道小菜味道還是不錯的,自私點了,不考慮您是否喜歡,今天就上它了。言歸正傳,以軟件的思想去考慮上面的業務(事情),原材料,你可以理解為類庫;順序關系,你可以通過事件來描述;事先并沒準備好的原材料,你可以通過接口(抽象類、虛函數等),讓用戶重載去實現……

在討論架構之前,我們先上道菜,青椒土豆肉絲,這道小菜味道還是不錯的,自私點了,不考慮您是否喜歡,今天就上它了。

準備原材料:食用油、青椒、土豆、肉絲、大蔥、香醋、雞精和食鹽。當然根據需要您可以再加入其他輔料。把青椒、土豆、肉片都切成絲,大蔥切好,OK,一切準備就緒,開火,往鍋里加油,等油熱后,放切好的蔥片,聞到蔥香,放肉絲,稍微加些醬油,爆炒,接著放土豆絲和青椒絲,等八成熟,撒些雞精和食用鹽,出鍋。

細心的讀者可能發現,剛開始的時候我好像并沒有準備醬油,是的,我確實沒準備醬油,坦白的講,有時候當鍋里的油熱的時候,我突然發現蔥忘記洗了,更談不上切成蔥片了,此時我會匆匆忙忙的去洗,去切,甚至有時候慌里慌張的把手給切破。

通過我們做上面的一道菜,我們總結了以下幾點:

總結1:巧婦難為無米之炊,我們要想做好這道菜,需要原材料;

總結2:這些原材料以時間為軸心他們彼此之間是有順序關系的;

總結3:可能在某一步驟里,我們突然想添加些事先并沒準備好的原材料;

總結4:一旦形成熱油鍋,似乎你要在這么短的時間內完成這些動作,做過飯的朋友更能體會到這句話。

 

言歸正傳,以軟件的思想去考慮上面的業務(事情),原材料,你可以理解為類庫;順序關系,你可以通過事件來描述;事先并沒準備好的原材料,你可以通過接口(抽象類、虛函數等),讓用戶重載去實現;到這里你會發現,一旦打開“煤氣”,去“引爆”預先設計的事件、接口,就好比多米諾骨牌一樣一個接一個的傳遞下去,在某一時刻,它會檢查是否放了“蔥片”、是否放了“肉絲”,不好,“食用油”你就沒放,還炒什么菜,扔出異常……

是的,上面就是框架,要想設計一個好的框架,看來我們首先要知道“青椒土豆絲”的做法,它大概需要哪些“原材料”,以及這些“順序關系”該如何通過具體的語言去實現;當然了,要炒出“不同的菜”,具體的原材料和順序關系又是不同的。下面通過分析幾個大家比較熟悉的框架來更詳細的說明。

MFC框架:

MFC中的框架思想采用了MVC的思想,其中CWinApp是全局型的,整個程序的引爆也是其在“搞鬼”,在其內部有指向文檔模版的指針,而模板又攘括了視圖、視圖的管理者(就是那個frame)和文檔類,順序關系是靠消息泵來推動。通過下面的調用關系可以看到各個類的“相互依存”(說明:下面的表摘自網絡)
 

從該對象 如何訪問其他對象
全局函數 調用全局函數AfxGetApp可以得到CWinApp應用類指針
應用 AfxGetApp()->m_pMainWnd為框架窗口指針;用CWinApp::GetFirstDocTemplatePostion、CWinApp::GetNextDocTemplate來遍歷所有文檔模板
文檔模板 調用CDocTemplate::GetFirstDocPosition、CDocTemplate::GetNextDoc來遍歷所有對應文檔
文檔 調用CDocument::GetFirstViewPosition,CDocument::GetNextView來遍歷所有和文檔關聯的視圖;調用CDocument:: GetDocTemplate 獲取文檔模板指針
視圖 調用CView::GetDocument 得到對應的文檔指針; 調用CView::GetParentFrame 獲取框架窗口
文檔框架窗口 調用CFrameWnd::GetActiveView 獲取當前得到當前活動視圖指針; 調用CFrameWnd::GetActiveDocument 獲取附加到當前視圖的文檔指針
MDI 框架窗口 調用CMDIFrameWnd::MDIGetActive 獲取當前活動的MDI子窗口(CMDIChildWnd)

您可以試著聯想“炒菜”的過程去思考上面的這張表,如果您真的理解了,我相信您會覺得他們之間沒有什么區別(不過坦白來講真的理解并沒有那么容易),好吧,你可能又發出疑問?如果去做“填空題”?在MFC里是通過處理消息來實現。那么為什么沒有采用虛函數及多態來實現?這個問題問的很好,不過我沒打算在這里進行說明,你可以在侯杰的《深入淺出MFC》里找到答案。(我不是有意來推這本書,實在沒看到其他更好的)。可能你從來沒接觸過MFC,那就不要去思考了,下面舉另外一個例子。

asp.net:

asp.net的webForm以其容易上手而著稱,如果你深入的理解了其頁面生命周期后,你會發現這好像又是在“炒菜”,而我們要做的只是在不同的“炒菜步驟”內去定制我們的一些小創意,可能在Page_PreInit里、在Page_Init里、在Page_Load里或其它事件里,無論如何,您逃不過如來佛的手掌心,你要做的工作,就是在這些事件里去定制,換句話說,你搞不出來“宮保雞丁”,想搞個“宮保雞丁”該怎么辦?asp.net MVC 粉墨登場……自己可以分析下,這里就偷懶省略了。

 

從炒菜到實例分析,現在我們基本上對軟件架構有了一個大概的認識:

認識1:框架架構是有邊界的,不光如此,你必須有全局的概念才能去設計框架。所謂邊界是針對不同的業務,比如MFC是針對傳統的桌面程序,當遇到WEB時,似乎就不怎么靈光了,不然微軟不會花費那么多功夫去推.NET。

認識2:框架的實現是組件的相互關聯(通過接口,事件等),如果你手里有些基本的類庫,不要告訴我是框架。

認識3:設計框架不是為了好玩(其實它本身并不好玩),因為你要為“兩個人”負責:業務和使用框架的人。建立在你框架上的應用必須能解決你實際的業務問題,同時要考慮怎么樣讓開發人員能“懶惰”下來,比如就是做做填空題。

認識4:設計框架要有一個好的框架思想,和具體語言無關,但你必須明白,不同的語言,甚至相同的語言去實現的方式又不相同,比如MFC采用了宏來實現消息機制(當然,MFC采用虛函數也能實現),而asp.net內采用虛函數等來實現多態。

認識5:你要時刻明白,接下來可能炒的菜就是“宮保雞丁”,也就是說你要知道自己在干什么,要熟悉自己的“業務”,比如當你設計MFC框架時,你要考慮一個傳統的桌面程序要解決的大部分問題會是什么?比如打印,比如進程通信,比如文件操作,比如音視頻,數據庫操作,ole,等等。同樣的,當你來設計 ASP.NET時,因為這道菜是針對HTTP的,這個時候你如果連HTTP是什么都不知道,我想你炒不好這道菜。

OK,我想這篇文章該結束了,因為我們的“菜已炒好”,如果你認真仔細的看到這里,估計已經浪費了你近五分鐘的時間,希望能給你帶來點思考,比如:架構師就是來“炒菜”,可能吧,也可能我的觀點并不完全正確。不過我歡迎聆聽每個朋友對架構的理解。謝謝。

原文鏈接:http://blog.csdn.net/daoxuebao_com/article/details/7663225

責任編輯:林師授 來源: daoxuebao_com博客
相關推薦

2012-06-08 10:12:08

架構師

2011-04-28 14:17:05

架構設計

2012-06-15 11:02:31

架構師

2012-08-04 16:02:00

架構師

2017-10-18 15:19:23

架構師技術開發

2011-04-07 16:20:24

軟件架構師架構師架構

2021-01-29 09:18:09

技術研發架構

2018-07-09 09:30:06

架構師產品經理互聯網

2018-10-31 09:32:19

云架構師云計算架構

2023-02-09 09:56:32

架構

2025-01-22 08:00:00

架構秒殺系統Java

2020-08-24 08:50:12

架構師TL技術

2024-06-28 10:34:00

2021-02-01 07:40:55

架構師阿里技專家

2020-06-28 08:34:07

架構師阿里軟件

2012-06-20 09:14:07

系統架構運維

2009-12-18 10:22:50

Ray Ozzie架構師

2019-10-21 10:36:52

架構軟件服務器

2016-03-16 15:42:15

架構師經驗

2019-07-31 07:36:12

架構運維技術
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩中文字幕在线视频观看 | 国产一二三区精品视频 | 久久一区二区免费视频 | 亚洲一区精品在线 | 日韩黄a | 狠狠久久综合 | 精品免费视频 | 久久久久久亚洲精品 | 婷婷色在线播放 | 人操人人 | 国产成人精品久久久 | 久草精品在线 | 亚洲高清在线 | 自拍偷拍第1页 | 综合久久av | 正在播放国产精品 | 欧美一级片黄色 | 国产精品久久久久久一级毛片 | 91视频.com| 国产精品视频导航 | 在线播放一区二区三区 | 久久国产精品网 | 成人超碰 | 欧美黑人又粗大 | 亚洲超碰在线观看 | 午夜亚洲| 久久久久久久久久一区 | 欧美日韩在线精品 | 一级欧美日韩 | 视频一区二区三区中文字幕 | 亚洲视频一区二区三区 | 美女精品一区 | 国产成人精品999在线观看 | 在线观看一区 | 欧美成人手机在线 | 日韩91| 综合网中文字幕 | 国产精品久久久久久久午夜片 | 欧美综合久久久 | 中文字幕亚洲一区二区三区 | 北条麻妃99精品青青久久主播 |