系統架構,框架,設計模式的理解--舉例說明
搞軟件的人很容易把理論知識神化,覺得滿嘴框架,架構,模式才能顯示出自己的size。
我不是計算機出身,做這行也有6年了,閒暇無事,找了幾本書看看,瞭解一下這些高深的詞彙。
看完後,仔細一咋嘛,無外乎告訴大家用一個科學的角度去看待一個軟件工程,不過講得到是蠻有道理。
看的粗礦,總結不出細膩的詞彙,只能用個例子來實例化我的講解。
什麼例子呢,就是蓋房子。
蓋房子前,開發商都得做調研,我們這個房地產項目,需要在哪兒選址;適合做什麼項目;項目都有什麼
功能,比如帶不帶花園,公益場所,游泳池這些;還得考察哪些工程隊做過類似項目,項目的實施能力高
,這樣才能承包給他;再有就是後期的物業管理,都需要哪些部門,設什麼項目。等等等等。
以上這些,我覺得就是系統架構的內容。做這個項目前,要先了解這個項目,然後做一些選擇,什麼選擇
呢?就是我該怎麼做這個項目,採用c/s還是b/s,是j2ee啊還是用微軟的體系,服務器用widows還是unix
,是用spring啊,還是隻用struts框架,中間件用websphere啊還是weblogic,等等等等。別看這些講起來
空泛,做起來可是很多工作,經驗積累對這個工作也很重要。因爲你不單單是做單選題,你還要把你的選
擇合起來。如果選擇不當,不同的jdk版本,都有可能造成項目無法運行。
再說框架。房地產項目承包給了工程隊,房地產商說了,我不管你怎麼蓋房子,但是蓋出來的房子,得是
我們要的樣子,並且質量要可靠。這些事對工程隊來說是小菜一碟,人家整天蓋房子,什麼樣的圖紙蓋出
什麼樣的房子,哪些地方拿什麼樣現成的門和窗戶裝上,熟得不能再熟了。
對了,框架就是用來具體實現某一功能的工具,框架的部件能夠重用,而且某一框架一般都只能解決某一
領域的問題。比如strtus是web框架的實現,如果做b/s項目,用他來實現web層真的不錯。但是在c/s項目
裏,他就一點兒用處都沒有了。
最後是模式。工程隊蓋房子確實快,但是蓋房子的圖紙和那些成型的門,窗,樓板框架可不是他們自己整
出來的,他們只管用。有專門的設計人員在做這些事情。這些設計人員整天就想,蓋出同樣的房子,怎麼
樣做才能更省材料,怎麼做才能更省時間,那些現成的門窗,框架,怎麼設計才能實現最大的使用面積,
等等。
設計模式是包含在框架裏的,就是用科學的方法來實現一個框架的功能。目的就是最大複用,最大功能實
現,最方便調用。
搞軟件的人很容易把理論知識神化,覺得滿嘴框架,架構,模式才能顯示出自己的size。
我不是計算機出身,做這行也有6年了,閒暇無事,找了幾本書看看,瞭解一下這些高深的詞彙。
看完後,仔細一咋嘛,無外乎告訴大家用一個科學的角度去看待一個軟件工程,不過講得到是蠻有道理。
看的粗礦,總結不出細膩的詞彙,只能用個例子來實例化我的講解。
什麼例子呢,就是蓋房子。
蓋房子前,開發商都得做調研,我們這個房地產項目,需要在哪兒選址;適合做什麼項目;項目都有什麼
功能,比如帶不帶花園,公益場所,游泳池這些;還得考察哪些工程隊做過類似項目,項目的實施能力高
,這樣才能承包給他;再有就是後期的物業管理,都需要哪些部門,設什麼項目。等等等等。
以上這些,我覺得就是系統架構的內容。做這個項目前,要先了解這個項目,然後做一些選擇,什麼選擇
呢?就是我該怎麼做這個項目,採用c/s還是b/s,是j2ee啊還是用微軟的體系,服務器用widows還是unix
,是用spring啊,還是隻用struts框架,中間件用websphere啊還是weblogic,等等等等。別看這些講起來
空泛,做起來可是很多工作,經驗積累對這個工作也很重要。因爲你不單單是做單選題,你還要把你的選
擇合起來。如果選擇不當,不同的jdk版本,都有可能造成項目無法運行。
再說框架。房地產項目承包給了工程隊,房地產商說了,我不管你怎麼蓋房子,但是蓋出來的房子,得是
我們要的樣子,並且質量要可靠。這些事對工程隊來說是小菜一碟,人家整天蓋房子,什麼樣的圖紙蓋出
什麼樣的房子,哪些地方拿什麼樣現成的門和窗戶裝上,熟得不能再熟了。
對了,框架就是用來具體實現某一功能的工具,框架的部件能夠重用,而且某一框架一般都只能解決某一
領域的問題。比如strtus是web框架的實現,如果做b/s項目,用他來實現web層真的不錯。但是在c/s項目
裏,他就一點兒用處都沒有了。
最後是模式。工程隊蓋房子確實快,但是蓋房子的圖紙和那些成型的門,窗,樓板框架可不是他們自己整
出來的,他們只管用。有專門的設計人員在做這些事情。這些設計人員整天就想,蓋出同樣的房子,怎麼
樣做才能更省材料,怎麼做才能更省時間,那些現成的門窗,框架,怎麼設計才能實現最大的使用面積,
等等。
設計模式是包含在框架裏的,就是用科學的方法來實現一個框架的功能。目的就是最大複用,最大功能實
現,最方便調用。