開始之初的架構設計決定著軟體產品的生死存亡。“好的開始相當於成功一半”。
開始的架構設計也是最難的,需要調研同類產品的情況以及技術特徵,瞭解當前世界上對這種產品所能提供的理論支援和技術平台支援。再結合自己項目的特點(需要透徹的系統分析),才能逐步形成自己項目的架構藍圖。
比如要開發網站引擎系統,就從Yahoo的個人首頁產生工具 到虛擬機器主機商提供的網站自動產生系統,以及IBM Webphere Portal的特點和局限 從而從架構設計角度定立自己產品的位置。
好的設計肯定需要經過反覆修改,從簡單到複雜的迴圈測試是保證設計正確的一個好辦法
由於在開始選擇了正確的方向,後來項目的實現過程也驗證了這種選擇,但在一些架構設計的細部方面,還需要對方案進行修改,屬於那種螺旋上升的方式,顯然這是通過測試第一的思想和XP工程方法來實現的。
如果我們開始的架構設計在技術平台定位具有一定的世界先進水平,那麼,項目開發實際有一半相當於做實驗,是研發,存在相當的技術風險。
因此,一開始我們不可能將每個需求都實現,而是採取一種簡單完成架構流程的辦法,使用最簡單的需求將整個架構都簡單的完成一遍(加入人工幹預),以檢驗各個技術環節是否能髖浜瞎ぷ?非常優秀先進的兩種技術有時無法在一起工作),同時也可以探知技術的深淺,掌握項目中的技術難易點。這個過程完成後,我們就對設計方案做出上面的重大修改,豐富完善了設計方案。
設計模式是支撐架構的重要組件
架構設計也類似一種工作流程,它是動態,這點不象建築設計那樣,一開始就能完全確定,架構設計伴隨著整個項目的進行過程之中,有兩種具體操作保證架構設計的正確完成,那就是設計模式(靜態)和工程項目方法(RUP或XP 動態)。
設計模式是支撐架構的一種重要組件,這與建築有很相象的地方,一個建築物建立設計需要建築架構設計,在具體施工中,有很多建築方面的規則和模式。
我們從J2EE藍圖模式分類http://java.sun.com/blueprints/patterns/catalog.html中就可以很清楚的看到J2EE這樣一個架構軟體的架構與設計模式的關係。
架構設計是骨架,設計模式就是肉
這樣,一個比較豐富的設計方案可以交由程式員進一步完成了,載輔助以適當的工程方法,這樣就可保證項目的架構設計能正確快速的完成。