研發經理眼中軟件產品層面

對於一個具體的軟件產品,從不同的視角,關注點不同,作爲研發經理,和普通的程序員,甚至架構師,不盡相同,需要從更加全面的角度進行分析。

 

對於一個理想的軟件產品,可以如同立體三維一樣,進行相關的把握。

 

首先,是縱向的分析,也就是軟件產品採用的架構。對於典型的基於J2EE的產品,層次比較清楚,可以分爲數據持久層,業務邏輯層,展示層。每個具體的層面,技術不同,對於同一個層面,採用不同的技術,其實不是個好主意,雖然聽起來可以利用不同的長處,但是實際使用過程中經常會造成混亂。對於複雜的電信系統,屬於混合系統,需要分開進行分析。

 

其次,是橫向劃分,也就是將整個業務系統劃分爲不同的業務子系統,可以稱爲領域驅動的開發。定義不同的業務子系統的接口,可能是架構師的責任,而從事具體的開發工作應該落到具體程序員身上。

 

最後,可以成爲垂向,其實就是測試驅動開發,將產品劃分爲業務系統,和自動化測試系統。測試先行的開發策略,是對於敏捷開發質量非常重要的保障。對於J2EE系統,數據持久層和業務邏輯層的自動化單元測試是非常有必要的,對於展示層,可能需要相關的Mock技術,並且本身是可以通過人工測試來保障的,可以劃爲較爲次要的地位。

 

拿一個大家熟知的Jpetstore的例子來分析:

 

縱向,系統採用的是IBATIS/Spring/Spring MVC架構;從橫向,系統可以進一步細分爲賬戶管理,產品管理,訂單管理三個業務子系統。早期的版本沒有相關的測試代碼,加入相關的測試代碼,其實是個熟悉掌握的最好途徑。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章