国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
孟巖:軟件架構(gòu)設(shè)計(jì)貴在務(wù)實(shí)
孟巖:軟件架構(gòu)設(shè)計(jì)貴在務(wù)實(shí)
更新時(shí)間: 2007-04-19 作者: 孟巖
關(guān)鍵詞:
孟巖專欄

    我最早聽說(shuō)“軟件架構(gòu)”這個(gè)概念以及UML的名字,是在1999年的水木清華BBS上。當(dāng)時(shí)有一篇文章介紹了軟件架構(gòu)作為一個(gè)相對(duì)獨(dú)立的領(lǐng)域的發(fā)展情況,順便提到在此前一年被接納為OMG標(biāo)準(zhǔn)的UML。該文作者斷言,UML的出現(xiàn)將能“徹底”改變軟件開發(fā)的工作方式,甚至“若干年之后,不通UML者無(wú)法染指軟件開發(fā)”。三年之后,專訪Ivar Jacobson時(shí),UML已經(jīng)是盡人皆知。記得Jacobson在那次采訪中勸告中國(guó)的開發(fā)者,趕快去學(xué)習(xí)RUP。從那時(shí)候起,越來(lái)越多的人頂上了“軟件架構(gòu)師”的頭銜,張口模式閉口架構(gòu),一時(shí)間好不風(fēng)光。然而最初的熱乎勁過(guò)去之后,人們發(fā)現(xiàn),“不通UML者無(wú)法染指軟件開發(fā)”的預(yù)言似乎落了空,而一些軟件架構(gòu)師們似乎也并不那么神乎其技,很多時(shí)候反而不如那些實(shí)實(shí)在在寫代碼的人管用。他們所宣傳的那些架床迭屋的抽象層,那些復(fù)雜精致的模式設(shè)計(jì),看上去精美無(wú)比,柔性十足,然而實(shí)踐當(dāng)中一個(gè)出乎意料的小變更,便常常能把這一切打得粉碎。他們樂(lè)談的松耦合,小接口,往往只是說(shuō)起來(lái)好聽,實(shí)際很難落實(shí),或者代價(jià)過(guò)高,有的時(shí)候,反而是反其道而行之,才更“管用”。

    為什么會(huì)出現(xiàn)這種情況?我想這里有客觀和主觀的原因。

    就客觀原因來(lái)說(shuō),軟件開發(fā)畢竟還是年輕的行業(yè),各方面還在劇烈發(fā)展和變化中。如果把軟件技術(shù)做一個(gè)層次劃分的話,軟件架構(gòu)及設(shè)計(jì)屬于上層建筑,而像程序設(shè)計(jì)語(yǔ)言、技術(shù)平臺(tái)、數(shù)據(jù)管理技術(shù)、網(wǎng)絡(luò)體系結(jié)構(gòu)等,均在其之下,屬于基礎(chǔ)。這幾年隨著互聯(lián)網(wǎng)的飛速發(fā)展,基礎(chǔ)尚且在劇烈變化當(dāng)中,上層建筑自然會(huì)搖搖晃晃,甚至趕不上趟。具體來(lái)說(shuō),當(dāng)今的軟件體系結(jié)構(gòu)設(shè)計(jì)總體上是基于面向?qū)ο笏枷耄沂菑?qiáng)類型語(yǔ)言時(shí)代的面向?qū)ο笏枷?,而?dòng)態(tài)語(yǔ)言的出現(xiàn)和流行,實(shí)際上很大程度上顛覆了傳統(tǒng)面向?qū)ο笏枷氲囊恍┰瓌t。例如,人們?cè)?jīng)認(rèn)為封裝非常重要,對(duì)象成員能夠隱藏便應(yīng)當(dāng)盡量隱藏,但是Python和Ruby中public是常態(tài),private反而是變態(tài),實(shí)踐當(dāng)中也工作的很好,甚至更好。再例如,幾年來(lái)人們津津樂(lè)道的設(shè)計(jì)模式,其中有很多在動(dòng)態(tài)語(yǔ)言里毫無(wú)必要。而很多在關(guān)系數(shù)據(jù)庫(kù)時(shí)代被視為秘笈的數(shù)據(jù)存儲(chǔ)與訪問(wèn)模式,比如層次關(guān)系的表達(dá),反規(guī)范化的經(jīng)驗(yàn),放到后關(guān)系性數(shù)據(jù)庫(kù)里就沒(méi)有多大意義了。再諸如應(yīng)用的Web化、RIA、SOA等基本思想的變遷,都是能引起整個(gè)軟件技術(shù)格局強(qiáng)烈震蕩的大事件,所有這些進(jìn)行中的劇烈變化,不可能不對(duì)軟件架構(gòu)的設(shè)計(jì)產(chǎn)生影響,從而使得很多關(guān)于架構(gòu)設(shè)計(jì)的思想迅速過(guò)時(shí)或者必須調(diào)整。如果架構(gòu)師們不能夠充分重視實(shí)踐,與時(shí)俱進(jìn),那么就很有可能做出不合時(shí)宜的設(shè)計(jì)。

     就主觀原因來(lái)說(shuō),很多軟件架構(gòu)師走入了一個(gè)誤區(qū),即一旦升級(jí)為架構(gòu)師,就可以脫離具體的代碼實(shí)踐,可以陽(yáng)春白雪了。事實(shí)上,由于下層技術(shù)的變化迅速,架構(gòu)師一旦脫離代碼實(shí)踐,脫離現(xiàn)實(shí)應(yīng)用,很快就會(huì)與實(shí)實(shí)在在的軟件開發(fā)工作產(chǎn)生距離感,忘卻一線開發(fā)者需要面對(duì)的現(xiàn)實(shí)問(wèn)題,做出一些不切實(shí)際的設(shè)計(jì)決策。這樣的設(shè)計(jì),或者執(zhí)行不下去,或者執(zhí)行下去也代價(jià)巨大,該解決的問(wèn)題沒(méi)解決,卻在無(wú)關(guān)緊要的問(wèn)題上大做文章。毫無(wú)疑問(wèn),這樣的設(shè)計(jì)得不到一線開發(fā)者的衷心支持,得不到好的結(jié)果。架構(gòu)設(shè)計(jì)跟開發(fā)發(fā)生矛盾,誰(shuí)有問(wèn)題?多半是架構(gòu)設(shè)計(jì)出了問(wèn)題。因?yàn)殚_發(fā)直接面對(duì)實(shí)踐,直接從事實(shí)踐,開發(fā)出了問(wèn)題,那就是實(shí)踐在向自以為是的偽真理宣戰(zhàn)了。然而,一部分架構(gòu)師不去檢討自己脫離實(shí)踐的設(shè)計(jì),卻搞起本本主義,硬拿書本教條死扣實(shí)際。另一方面,如果開發(fā)者對(duì)于架構(gòu)設(shè)計(jì)的原則和嘗試缺乏了解,不愿意提高對(duì)于軟件架構(gòu)設(shè)計(jì)的認(rèn)識(shí)和理解,不愿意付出對(duì)長(zhǎng)遠(yuǎn)有利的代價(jià),也不理解,不支持,甚至消極抵制架構(gòu)師的決定,那么同樣會(huì)引起架構(gòu)設(shè)計(jì)與開發(fā)之間的矛盾。結(jié)果往往是,兩個(gè)必要的角色之間產(chǎn)生矛盾。開發(fā)者抱怨架構(gòu)設(shè)計(jì)華而不實(shí),架構(gòu)師抱怨開發(fā)者不嚴(yán)格按設(shè)計(jì)行事,進(jìn)而相互質(zhì)疑對(duì)方角色的必要性。開發(fā)者認(rèn)為架構(gòu)師就是吃干飯的文人,根本應(yīng)該人間蒸發(fā),沒(méi)有存在的必要,而架構(gòu)師則覺(jué)得開發(fā)者是一群無(wú)組織無(wú)紀(jì)律的驕傲的野貓,幻想有朝一日自動(dòng)代碼生成器能把這幫不聽話的開發(fā)者趕出山門。

     

    事實(shí)上,開發(fā)者和架構(gòu)師都是軟件開發(fā)中必不可少的角色,即使在單人開發(fā)的項(xiàng)目中,開發(fā)者本人也需要經(jīng)常在這兩個(gè)角色之間切換。兩個(gè)角色的相互理解,和諧協(xié)作,才能夠共同克服現(xiàn)實(shí)困難,開發(fā)成功的軟件。在促進(jìn)這種和諧的過(guò)程中,開發(fā)者應(yīng)當(dāng)積極學(xué)習(xí)架構(gòu)設(shè)計(jì)的理論并充分實(shí)踐,而架構(gòu)師則需要本著務(wù)實(shí)的態(tài)度貼近一線。

    因?yàn)閺氖录夹g(shù)媒體工作,我也確實(shí)結(jié)識(shí)了幾個(gè)優(yōu)秀的架構(gòu)設(shè)計(jì)師,他們身上的共同特點(diǎn)就是務(wù)實(shí)。這些架構(gòu)師都具有多年的軟件開發(fā)經(jīng)驗(yàn),對(duì)軟件本質(zhì)的理解相當(dāng)深入,本身就是開發(fā)高手。與一般開發(fā)高手不同的是,他們充分實(shí)踐,但不宥于實(shí)踐,而是積極地學(xué)習(xí)軟件架構(gòu)的理論,嘗試用理論來(lái)指導(dǎo)實(shí)踐。而與整天高談闊論的理論架構(gòu)師不同的是,他們掌握了理論之后,一定要親自落實(shí),用實(shí)踐來(lái)檢驗(yàn)。當(dāng)理論與實(shí)踐產(chǎn)生矛盾的時(shí)候,他們既不會(huì)輕易否定理論,更不會(huì)教條主義般地削足適履,而是認(rèn)真分析矛盾產(chǎn)生的原因,研究可能的對(duì)策。在反復(fù)思考和實(shí)踐之下,他們敢于做出“離經(jīng)叛道”的結(jié)論,敢于質(zhì)疑大師偶像的論斷,更能夠在錯(cuò)綜復(fù)雜的實(shí)際做出簡(jiǎn)單、可靠、靈活而便于實(shí)現(xiàn)的設(shè)計(jì),并且向開發(fā)者傳達(dá)意圖,答疑解惑,實(shí)現(xiàn)整個(gè)團(tuán)隊(duì)的思想一致。他們做出的設(shè)計(jì),開發(fā)者看得懂,做得出,自然會(huì)得到衷心的擁護(hù)。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
軟件架構(gòu)基礎(chǔ) 1:架構(gòu)師的 8 大核心能力
InfoQ: 你是個(gè)軟件架構(gòu)師嗎?
系統(tǒng)架構(gòu)師
論軟件架構(gòu)師的角色和培養(yǎng):
數(shù)人云|讀完這19本經(jīng)典,成為優(yōu)秀架構(gòu)師其實(shí)也不難
架構(gòu)師與程序員的區(qū)別
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服