[技術討論]什麼是最好的軟體設計方法

qingrun發表於2012-12-25

JihadBird  11:46:42

老師,您好

線上嗎?

青潤  11:46:50

在。

JihadBird  11:47:32

目前大家公認的這種物件導向分析設計思路,應該只是所有設計思路中的一種吧?

就是比較優秀的一種,是吧?

JihadBird  11:49:50

因為往我以前的傳統思路上套的話,感覺套不上。我以前的思路是:應用邏輯、業務邏輯相互摻雜在一起,也沒有實體類,資料直接通過介面元素獲取,業務邏輯直接就是拼湊SQL執行的。

 

但是從即便用新的設計思路重構它的話,從程式執行效果上也看不出什麼異同。

青潤  11:51:04

未必是最優秀的。

人類創造的每一種設計思路和方法都有其適應的環境。

JihadBird  11:47:32

目前大家公認的這種物件導向分析設計思路,應該只是所有設計思路中的一種吧?

就是比較優秀的一種,是吧?

你的第二個問題,說的是程式導向的開發方法吧?

這兩者的區別應該在我的書中有詳細的介紹,如果沒有那就是在我曾經的培訓中做過很明確的區分介紹。

JihadBird  11:58:29

同一個系統,我可以採取如下兩種方法:

 

1、應用邏輯、業務邏輯相互摻雜在一起,也沒有實體類,資料直接通過介面元素獲取,業務邏輯直接就是拼湊SQL執行的。

 

2、應用邏輯、業務邏輯分離、通過實體物件在各層之間傳遞資料。

 

還是第二種最好,程式碼可以公用,各層隔離,很清晰。

青潤  11:59:24

這個和設計方法無關,和你的系統設計構成有關,每個設計師都可以有自己習慣用的方法,並不代表哪一種一定更優秀,關鍵在於適用場合。

青潤  12:00:55

你認為各層很清晰的設計,在一些業務系統實現中,就會形成過度複雜的業務層間呼叫關係,使得業務邏輯表現的特別複雜。

就類似於管理制度,管理制度明晰的公司,往往缺少變通,也就是說容易僵化教條,但是整體管理效率會比大多數公司都好。但是管理制度不明晰的公司,就類似於你說的第一種,對於一些需要快速處理的事務,就可以達到非常高效的效果。

JihadBird  12:01:06

是的

分得越細,在協調上浪費的時間就越多。

青潤  12:02:54

所以,要明白自己要做的系統是什麼,然後因地制宜,靈活應用,這才是軟體工程的本質。

我的很多文字中多次提到反對本本主義,就是看到國內絕大多數公司都是本本主義的尊崇者,實在是國內軟體專案失敗的重要因素之一。

JihadBird  12:03:59

是的,都是因為大家沒有到靈活運用的級別,還處在低階的教條階段。

青潤  12:04:48

所以,我的書能看懂的,感興趣的人就很少。

JihadBird  12:05:53

佩服,您一直做技術培訓?

青潤  12:06:35

做的不多,只是根據情況,認可我的技術和培訓的朋友介紹。

Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE

相關文章