專案總結【收集】

maqianmaqian發表於2010-08-10

經驗與教訓

雖然我們平時說“成功的經驗,失敗的教訓”,但是有時要區分兩者並不容易,因為有些事情雖稱不上成功,卻也不至於失敗。故請允許我暫時將其混成一談。

#1 分而治之(divide and conquer),重構程式碼

在專案中當複雜業務邏輯變得複雜時,有的程式設計師沒有膽量去重構舊程式碼,而取用保守方式,拼命地新增新的程式碼。這樣做的後果就是會導致程式碼量激增,難於維護。“分而治之”可以幫助我們理清複雜的業務,提高程式碼可重用性。所以任何時候,都不要忘記這個程式基本的方法學。

#2 避免在程式中儲存狀態(State)

有的程式設計師偏愛全域性型別變數,而忽略通過引數和返回值進行共享資料。狀態對程式來說其實就是一種負擔,在多執行緒和分散式的環境下更是如此。還有,程式設計的另一原則是儘量縮小變數有效範圍(Scope),大家可以參考一下《Code Complete》中一些建議。

另外,要小心使用靜態變數,切記要通過final關鍵字和Collections.unmodifiableXxxx方法(對於集合型別)使其不可變。如果需要在物件之間共享狀態,可以考慮使用HttpSession或分散式的快取如(JBoss Cache等)。

#3 設計好你的業務物件模型

我看過很多專案的程式碼中其大量存在所謂的PO(Persistent Object)用於ORM和VO(Value Object)或稱為DTO(Data Transfer Object)用於程式之間傳輸資料,更有甚者,這兩種物件只是相差一兩個屬性。這樣的做法的弊端是程式碼中充斥大量林林總總的copyXxx的方法,導致程式出現一些不可預期的行為。

其實,通過對業務物件分析,尤其是物件之間的關係建立,上述問題中的大部分都是可以避免的。

 

專案的第一階段進入到後期測試過程中,發現了很多bug,在修改bug 的過程中,感到很累,但同時覺得這段時期卻是收穫最多的時候,下面我將整理後的專案管理與技術經驗做一下總結,願大家多多指教!
專案運作方面:
1、在模組功能已經基本完成的情況下新增新的功能時,一定要考慮周全,因為這時前面已經寫了很多程式碼,加入新的功能後,對先前程式碼造成的影響是不可預知的,必要時需要大家(特別是編碼人員)進行開會討論一下。
2、在專案的遇到的問題,應隨時記錄,以供整理後,作為自己的經驗積累。
3、在專案組之間應多多加強交流,遇到的問題,解決的問題都是大家共同的經驗積累。
4、需求文件與設計文件一定要與程式碼同步,為與程式設計師溝通與交流,提供一個依據。
5、在設計模組功能時,要考慮動作的整個流程,從開始到結束,注重“使用者體驗”。
6、注意不同瀏覽器之間的差別。
7、對顯示的控制(包含極限)。

 

 

文件:
1,需求分析一定要透徹,不僅要了解所需的,還要有詳盡的文件,包括需求文件,資料庫文件(表名,欄位名和它們的屬性及表達意思),部署文件;
2,開發過程中,對一些常見到環節最好進行記錄
3,對專案開發,測試中的錯誤要進行記錄,包括錯誤提示,解決方法;
4,專案結束後,要用使用文件,包括安裝,執行平臺及環境,使用中常見問題解決方案,以及操作說明;

框架構造:
日期控制元件;驗證方式;分頁操作;加密機制;上傳下載;樹狀選單;級聯選單;許可權管理;定時排程;遠端呼叫;ajax框架;

專案測試:
測試時一定要準備好測試的資料,並整理成相應當sql檔案,以便能隨時測試以及測試資料的清除,這樣在開發中就會避免一些不必要的因資料不完整而出現的問題;

要求:
開發中用到版本控制器,要求每次修改檔案時先從伺服器上更新一下才修改,提交時要有註釋說明