記錄一下,9月份參加研發峰會時的材料。寫得不好,而且思想也并不成熟。大緻内容如下(excel中直接粘過來的,比較亂):
類别
任務名稱
背景介紹
目的
(不超過三個)
目标(smart_c)
關鍵政策
標明方案
政策、方案、計劃制定人
實施負責人
協作人
督導人
考評人
時間
行動計劃關鍵裡程碑
成敗攸關因素
管理三問
開發
設計:領域模組化解決方案模式
1.業務與代碼實作脫離:一般情況下,在進行領域模組化時,都會使用圖形化的模組化工具。在追求開發效率的今天,這種純模組化方式由于它的代碼無關性,隻能用于對領域内模型進行大體的關系層面的描述,而不會特别詳細。這樣會導緻後期的具體開發會和設計相脫節。而有些直接使用類進行模組化或使用資料庫模組化的方法,也面臨着相似的問題,即二者相脫離。
2.不夠純淨的模型代碼:在代碼層面,一般的業務模型類會包含太多的非業務資訊。如直接映射資料庫字段而來的屬性、如表示層顯示的資訊。這些非業務的資訊附加在這些它的上面,會使得業務模型類過于龐大。而基于它的分析、設計、實作,都會不可避免地更加複雜。(如,在設計業務類的時候,會不自然地去考慮資料映射等問題。)
3.不易滿足設計思想:領域模組化得到的業務模型類,應該是基于oo思想的。可是單使用目前的各種orm架構,是不可能實作任意的映射(因為裡面很可能包含我們自己的映射規則)。
1.在“純淨的領域模組化環境”下建立“純淨的領域模型”。
2.領域模組化得到的業務模型,應該是完全符合面向對象思維的,應該是可随意設計的。并且應該能夠精準地描述業務,應該是可以直接指導開發的。
3.模型到代碼實作的快速轉換。相對原來的實作,不會添加過多的工作量。
1.建構的每一個模型,都是純淨的,不能擁有業務以外的内容。這包含模型的所有屬性和方法。
2.建構的模型,應該精确到每一個屬性。
3.模型的設計,滿足三大面向對象原則:封裝、繼承、多态。可在不考慮其它因素的情況下,随意設計以達到業務要求。
4.模型的建構,時限必須比純圖形方式更快。(由于項目的大小不同,這個時限需要按需界定。)
5.模型建立完成後,基于這些模型的代碼實作較一般開發方式相比,額外需要的開發時間不能超過10%。
1.使用“代碼即設計”的方案。(原因:設計直接就是代碼,無需轉換。oo語言的代碼,直接支援可使用oo的原則。文本檔案,編輯方式靈活,可迅速建構。)
2.基于interface code模組化。(原因:足夠抽象,隻關心業務規則。相對隻進行關系模組化,更加具體,可清楚地定義每一個屬性,方法,關系。)
3.模型代碼實作可支援使用orm架構等。(原因:支援一般的開發模式。)
4.代碼生成 + 通用架構。(原因:減少開發時間。這步主要是生成一般性的代碼,建構通用的架構。)
1.在需求明确後,使用interface code描述業務模型的屬性和方法。所有的code都應該确定下來。具體到每一個屬性的名字、類型等。(簡單文本适合于快速開發。)
2.(可複用的)為了輔助第一個步驟,可以開發一個圖形化的模型檢視工具(對模型隻讀)。這個工具不但可以檢視模型是否建構有較大的問題,更加有用的是,友善和其它人員的溝通,包括開發人員、需求分析人員、業務專家等。(圖形化的方式會比較有利于溝通。)
3.(可複用的)代碼生成器 + 通用架構。代碼生成一般會包含sql建表語句。當然,視具體開發情況而定,也需要為不同的模型實作生成不同的代碼:如對應hibernate用一套,對應pojo用一套……同樣的,架構也分為兩部分:抽象通用的一部分和具體使用某orm架構的一部分。
4.定制開發。以第一步的interface為界限,一分為二。上層人員基于這些業務模型,直接組織業務“流”邏輯,十分友善業務維護。下層為模型實作具體的類,需要考慮以下内容:資料庫的設計、標明适應需要的orm模型(或者不使用)、實作映射模型中orm架構未實作的特殊映射規則。一個中小型項目中,這個工作的實施往往隻需要一到二個精通orm的人即可。
胡慶訪
2010、2
得到:通用架構、代碼生成器
通用度的抽象。(需要更多小型項目的測試)
1.承辦人目标明确(承辦人能準确複述): (是)、(否)
2.承辦人的能力(與目标要求的比對度): (高)、(需要指導)、(需要協助)
3.承辦人的積極性(如何進行有效激勵): (高)、(一般)、(低)
2010、3
得到:模型檢視工具
interface code中通用定義規則的抽象。
具體項目開始時間+半月
得到:業務模型
了解需求。
具體項目開始時間+一個半月
得到:業務模型的實作代碼
精通orm。
具體的檔案:
<a href="http://files.cnblogs.com/zgynhqf/ddd_pattern.rar" target="_blank">http://files.cnblogs.com/zgynhqf/ddd_pattern.rar</a>
裡面一個是五環表,一個是示例代碼。