第一回 設計,應該多一點

2021-04-14 21:02:59 字數 1736 閱讀 1953

,原創作品,轉貼請註明作者和出處。

設計就像是轉魔方,你必須面面俱到。 

anytao

開始想嘗試嘗試寫點設計的東西了,只所以有了這個「突如其來」的想法,原因其實很簡單:因為對設計、架構、分層、模式,我很陌生。因為陌生,所以接觸,因為接觸,所以隨筆。系列之構思就這麼誕生了。因此,這個系列是個方**,是個雜文集,也是個見證史。我不期望能收穫多少掌聲,但求能保持更多交流。作為技術的狂熱追求者,我始終認為兩件事情是技術的立命之本:

因為,你會發現在日新月異,紛繁複雜的技術領域裡,一切都在變,一切都在趕,我們拼命的狂追,換來一片的豪賭。唯一不變的,一是底層,二是設計。所以我只關注這兩個,也只關注這兩個,這是我認為的學習方**中的第一守則:確定不變的追求方向。

那麼這個系列將關注些什麼方向呢?

當年,petshop作為.net和j2ee兩個派別之爭的產物,坐在了潮流的風口上,時間已然過去,當時硝煙早已消失。我們慶幸的是petshop一路走來,從1.0到4.0,綜觀其設計的脈搏,能夠感受到架構的日漸成熟和演變,這是技術之爭留給我們最大的看點。

從1.0的簡單3層bs系統架構,到4.0實現較複雜的分層結構,同時引入資料快取、非同步處理機制,petshop成為典型的分層結構的代表為架構設計的學習提供了良好的資源與素材。從歷史的遺跡中,我們挖掘到的是什麼?

沒有一成不變的設計,也沒有一成不變的架構。方案是永遠隨著需求,隨著技術而不斷重構,設計之美就體現在不斷的否定與自我否定中。本系列不是討論petshop的專題,這方面的討論已經很多了,我們沒有必要再造輪子。因此,更關注如何,怎樣和思想,是這裡的討論。

那麼,設計、架構應該從哪兒入手,又如何進行?物件導向的原則又是什麼?設計模式又如何融入到我們的架構體系中?這一系列的問題,我想說可能根本沒有答案,而確有方法。本系列就力圖從方法的角度入手,以並非專業又並非經驗的視角來闡釋如何以菜鳥的立場來「空談」設計。因為,你不能說設計只是架構師的事兒,否則滿篇的**又如何體現藝術之美呢?作為菜鳥, 我們少了經驗,但是多了思考,因此對架構、對設計、對模式的探索,應該從一定的方法做起,這是本文和本系列試圖達到的目標。

作者力圖以例小心求證設計,以圖來大膽闡釋方法。例如,軟體設計的分離點應該如何來考慮呢?

分層角度,框架基礎,功能劃分,乙個系統設計要綜合考慮這些因素。可能還不止這些,也可能只是其中的一點,具體的架構要看具體的需求。然而探求架構和設計方法的時候,我們要把握基本的方法和思路去迎合前人總結的經驗,也叫科學。

以上述思路來回顧petshop 4.0的架構,我們很明顯的感受到,良好的設計正是巧妙的耦合了架構設計中的諸多因素,提出了近乎完美的方案。分層角度來看,在petshop中自不必說,明顯的三層架構體現了良好的系統分離與耦合;通用角度來看,.net framework作為技術通用元件,提供了系統實現的基本技術基礎,而對profile和membership的分離,則體現了領域通用部分的價值;模組角度來看,由於petshop本身的業務需求比較簡單,因此模組劃分不夠明顯,但是對order的處理可以看作簡單的業務模組了。而其他方面,例如設計模式,面向介面開發的技術,也同樣體現在petshop的大框架中,讓我們受益非淺。 

從架構到設計,漫遊在乙個技術而藝術的世界,一直是我的夢想。對技術的駕馭,不是看你了解多少細節,更重要是你控制了多少格局。架構設計就是乙個控制格局的藝術,只有游刃有餘的駕馭了如何將技術細節變成就輕駕熟的應用,才是設計的最高境界。屆時,你會發現,原來技術可以更美的。所以,我要說,設計,應該多一點。

參考文獻

(中國)溫昱,軟體架構設計

(usa)geoffrey james,the tao of programming 

從架構到設計 第一回 設計,應該多一點

設計就像是轉魔方,你必須面面俱到。anytao開始想嘗試嘗試寫點設計的東西了,只所以有了這個 突如其來 的想法,原因其實很簡單 因為對設計 架構 分層 模式,我很陌生。因為陌生,所以接觸,因為接觸,所以隨筆。系列之構思就這麼誕生了。因此,這個系列是個方 是個雜文集,也是個見證史。我不期望能收穫多少掌...

IT餐館 第一回 前言

最近一段時間以來,我一直在尋找一種新的寫blog方式。因為傳統的自說自話方式已不能 表達出每天在我頭腦中不斷衝突的思想。當然這些思想有些是我個人的,有些則來自周圍同事 以及領導,還有以前同事的一些遭遇。其中有對前沿技術的討論,對產品 專案的分析,對模 式思想 架框 mvc uml 等思想的交流。還有...

IT餐館 第一回 前言

最近一段時間以來,我一直在尋找一種新的寫blog方式。因為傳統的自說自話方式已不能 表達出每天在我頭腦中不斷衝突的思想。當然這些思想有些是我個人的,有些則來自周圍同事 以及領導,還有以前同事的一些遭遇。其中有對前沿技術的討論,對產品 專案的分析,對模 式思想 架框 mvc uml 等思想的交流。還有...