<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    莊周夢蝶

    生活、程序、未來
       :: 首頁 ::  ::  :: 聚合  :: 管理

    設計方案的評判

    Posted on 2009-11-28 23:38 dennis 閱讀(1127) 評論(0)  編輯  收藏 所屬分類: 模式與架構(gòu)涂鴉
        入這行也有四年了,從過去對軟件開發(fā)的懵懂狀態(tài),到現(xiàn)在可以算是有一個初步認識的過程,期間也參與了不少項目,從一開始單純的編碼,到現(xiàn)在可以部分地參與一些設計方案的討論,慢慢對設計方案的評判標準有一點感受。讀軟件工程、架構(gòu)設計、模式之類的書,對于書中強調(diào)的一些標準和原則的感受只是感官淺層的印象,你可以一股腦從嘴里蹦出一堆詞,什么開閉原則、依賴倒轉(zhuǎn)、針對接口編程、系統(tǒng)的可伸縮性、可維護性、可重用等等,也僅僅停留在知道的份子上。不過現(xiàn)在,我對一個設計方案的評價標準慢慢變的很明確:簡單、符合當前和一定預期時間內(nèi)的需求、可靠、直觀(或者說透明)
       簡單,不是簡陋,這是廢話了。但是要做到簡單,卻是絕不簡單,簡單跟第四點直觀有直接的關(guān)系,簡單的設計就是一個直觀的設計,可以讓你一眼看得清的設計方案,也就是透明。一個最簡單的評判方法,你可以講這個方案講給一個局外人聽,如果能在短時間內(nèi)讓人理解的,那么這個方案八成是靠譜的。記的有本書上講過類似的方法,你有一個方案,那就拿起電話打給一個無關(guān)的人員,如果你能在電話里說清楚,就表示這個方案相當靠譜,如果不能,那么這個方案很可能是過度復雜,過度設計了。
       簡單的設計,往往最后得出的結(jié)果是一個可靠性非常高的系統(tǒng)。這很容易理解,一個復雜的設計方案,有很多方面會導致最后的實現(xiàn)會更復雜:首先是溝通上的困難,一個復雜的方案是很難在短時間內(nèi)在團隊內(nèi)部溝通清楚,每個開發(fā)人員對這個方案的理解可能有偏差;其次,復雜的方案往往非常考驗設計人員和開發(fā)人員的經(jīng)驗、能力和細致程度,復雜的方案要考量的方面肯定比簡單方案多得多,一個地方?jīng)]有考慮到或者不全面,結(jié)果就是一個充滿了隱患的系統(tǒng),時不時地蹦出一個BUG來惡心你,這并非開發(fā)人員的能力問題,而是人腦天然的局限性(天才除外,咳咳)。
       第二點,符合當前和一定預期時間內(nèi)的需求。我們都知道,不變的變化本身,指望一個方案永久解決所有問題是烏托邦的夢想。復雜方案的出爐通常都是因為設計人員過度考量了未來系統(tǒng)的需求和變化,我們的系統(tǒng)以后要達到10倍的吞吐量,我們的系統(tǒng)以后要有幾十萬的節(jié)點等等。當然,首先要肯定的是對未來需求的考量是必需的,一個系統(tǒng)如果實現(xiàn)出來只能應付短時間的需求,那肯定是不能接受的。但是我們要警惕的是過度考量導致的過度復雜的設計方案,這還有可能是設計人員“炫技”的欲望隱藏在里頭。這里面有一個權(quán)衡的問題,比如這里有兩個方案:一個是兩三年內(nèi)絕對實用的方案,簡單并且可靠直觀,未來的改進余地也不錯;另一個方案是可以承載當前的幾十倍流量的方案,方案看起來很優(yōu)雅,很時尚,實現(xiàn)起來也相對復雜。如何選擇?如果這個系統(tǒng)是我們當前就要使用的,并且是關(guān)鍵系統(tǒng),那么我絕對會選擇前一個方案,在預期時間內(nèi)去改進這個方案,因為對于關(guān)鍵系統(tǒng),簡單和可靠是性命攸關(guān)的。況且,我堅定地認為一個復雜的設計方案中絕對隱藏著一個簡單的設計,這就像一個復雜的數(shù)學證明,通常都可以用更直觀更簡單的方式重新證明(題外話,費爾馬大定理的證明是極其復雜的,現(xiàn)在還有很多人堅信有一個直觀簡單的證明存在,也就是那個費爾馬沒有寫下的證明)。最近我們的一個方案討論也證明了這一點,一個消息優(yōu)先級的方案,一開始的設想是相對復雜的,需要在存儲結(jié)構(gòu)和調(diào)度上動手腳,后來集思廣益,最后定下的方案非常類似linux的進程調(diào)度策略,通過分級queue和時間片輪詢的方式完美解決了優(yōu)先級的問題。這讓我想起了軟件開發(fā)的“隱喻”的力量,很多東西都是相通相似的。
       上面這些亂彈都是自己在最近碰到的一些討論和系統(tǒng)故障想起的,想想還是有必要寫下來做個記錄。

       

    主站蜘蛛池模板: 亚洲综合国产精品| 亚洲国产精品ⅴa在线观看| 久久久久亚洲AV成人无码| 亚洲黄色免费网址| 久久精品国产亚洲av麻豆蜜芽| 亚洲视频中文字幕| 亚洲最大中文字幕无码网站 | 久久免费观看国产精品88av| 无码国产精品一区二区免费3p| 毛片免费全部播放无码| 成人黄页网站免费观看大全| 毛片免费观看网址| 久久亚洲综合色一区二区三区| 亚洲无圣光一区二区| 免费毛片毛片网址| 国产四虎免费精品视频| mm1313亚洲精品国产| 亚洲人色大成年网站在线观看 | 久久91亚洲人成电影网站| 精品亚洲AV无码一区二区三区| 久久国产一片免费观看| 国产色爽女小说免费看| 亚洲最大视频网站| 中文字幕乱理片免费完整的| 国产18禁黄网站免费观看| 亚洲成a人片7777| 日韩精品免费视频| 在线观看亚洲天天一三视| 亚洲精华液一二三产区| 国产拍拍拍无码视频免费| 亚洲高清无码在线观看| 亚洲av无码有乱码在线观看| 久久久久免费精品国产| 免费一级肉体全黄毛片| 美国免费高清一级毛片| 国产成人啪精品视频免费网| 亚洲人成电影网站免费| 国产精品国产自线拍免费软件| 亚洲乱人伦中文字幕无码| 免费无码不卡视频在线观看| 亚洲欧美日本韩国|