兩人60天輸出有效**行15k,基本實現需求。
在專案中使用了mybatis框架,可以使用mybatis generator生成基礎mybatis**,節省開發時間。同時合理利用idea外掛程式可以提公升開發效率。
工程結構嚴格按照controller/service/dao層進行封裝,保證controller層簡潔性,dao層只做基本資料庫操作,不使用sql進行複雜邏輯,service層寫具體業務邏輯。
1)合理的專案結構,方便後期維護,隨著**量的增加,這種優勢會越來越明顯,因此在**設計初期,首先要重視工程結構;
2)除了上面的三層結構,一般還需要構造vo/common/exception/utils等層次,用於方便開發和管理
在common包中可以定義諸如統一響應,全域性常量需要權衡表的數量與業務場景,既要考慮設計盡量少的表,方便維護,又要考慮業務場景,便於**書寫。在exception中定義需要處理的業務異常,可以使用@exceptionhandler 對異常統一處理
utils可以定義一些工具,如時間操作、字元操作
1)不能一味追求表數量盡量少,這樣可能導致**處理很複雜
2)也不能為了**書寫方便,隨意增加表,這樣會導致字段重複以及資料庫維護的複雜性
3)每張表都應該包括如下5個字段,軟刪除標識 deleted 建立人 createdby 建立時間 createdat 更新人 updatedby 更新時間 updatedat (用於排序,保證前台展示順序),在**中可以寫乙個父類包含這幾個屬性,其他vo可以都直接繼承該父類。同時由於軟刪除標誌deleted的存在,所有查詢語句都要加上deleted = 0這個條件來過濾有效資料(0表示未刪除)。
1)類檔案使用統一字首,便於閱讀,類名、方法名、變數名遵循業界統計的命名規範即可,如駝峰命名法
2)注釋的合理性,複雜的**邏輯需要有注釋,便於後期優化;
3)日誌的合理性,要區分debug info error級別的使用場景,同時使用佔位符方式打日誌不要使用加號,便於提公升**效能。
4)冗餘**清理,隨著業務的複雜性增加,可能需要對原有方法進行修改甚至廢棄,要及時清理無用**以及即時修改或清理注釋,錯誤的注釋不如沒有注釋。
5)合理的**返回,在上面我們講過要在common包可以定義統一的響應體包括 data 資料 message 訊息 state 狀態,同時要注意在介面返回前對所有異常進行統一處理,不要讓異常拋到請求方,否則可能出現feign呼叫後,解析響應異常(無法對null或不符合json格式的字串進行反序列化,報錯,導致介面呼叫失敗)
由於本次開發是兩個人合作開發,但是由於習慣性問題,乙個使用idea,乙個使用eclipse,在開發過程中多次因為環境問題浪費開發時間
改進措施:
1)合作開發的所有人應該統一開發工具,避免浪費精力在除錯開發環境上
時間倉促導致**結構設計沒有足夠時間,**沒有充分考慮效能,同時沒有輸出**設計文件。
本次開發客觀原因是開發時間較短,應該遵循開發的週期及合理性,不應該盲目追求速度,這樣會給後期增加很大的維護成本。主觀原因是,開發經驗不足,在開發中還需要不斷查詢一些開發知識,導致開發效率不高。
在開發過程中由於只追求實現業務功能,同時需求規格說明不詳細,導致在**中的異常處理不充分,很多異常場景沒有統一的處理措施,沒有相應的錯誤碼,導致在除錯時耗費了大量時間定位問題。
改進措施:
1)應該提公升自身基本開發能力,同時提高溝通能力,合理地將開發中比較耗費人力的地方與業務進行溝通,達成共識。
2)學習**設計知識並予以實踐,積累開發能力。
3)在開發**前與業務溝通好各種異常的錯誤碼以及返回的錯誤資訊,同時在**中各種異常都需要以及error級別列印日誌,便於定位問題。
4)對已有**進行優化,走讀**增加注釋、在適當位置打日誌、對異常場景進行處理
在設計資料庫時沒有充分考慮oracle資料庫的特性。
在使用mybatis只考慮了如使用子查詢提公升查詢效率等基本的資料庫能力,提高效能。
但是由於資料庫知識匱乏,也犯了一些低階錯誤,如使用了關鍵字當了欄位名。
改進措施:
1)系統學習資料庫知識,在設計時,避免低階錯誤
2)學會資料庫調優
由於對整個系統沒有系統的認識,在自測試期間需要造一些基礎資料過於依賴測試人員。
改進措施:
1)提公升對系統的端到端能力培養,同時輸出指導文件
2)提供測試資料自動化指令碼,測試時,直接一鍵執行,可以完成基礎資料的構造,節省時間,讓開發人員能夠聚焦開發的業務場景
EJB專案開發小結
好多知識用的時候還是一知半解,等用完之後總結總結,收穫還是挺大的。就拿這次的專案來說,主要用了ejb3.0和struts1.3,伺服器是jboss5.0,資料庫是oracle db10g。ejb之前沒接觸過,李工指導了下,ejb是sun的伺服器端元件模型,最大的用處是部署分布式應用程式,核心是會話b...
開發與OLAP相關小專案的小結
開發與 olap 相關的一些小專案,有乙個我們必須明確的問題,也是乙個非常重要的問題,就是客戶究竟需要什麼?他們要我們開發出來的東西究竟能怎麼什麼?有什麼樣的功能?這也就是系統分析中經常強調的乙個使用者需求分析 一定要到位。但是做為系統分析師人員我們在了解到使用者的需求分析後,還有乙個重要的問題就是...
專案管理小結
一句話概括專案管理知識體系五大過程組 啟動過程組 作用是設定專案目標,讓專案團隊有事可做 規劃過程組 作用是制定工作路線,讓專案團隊 有法可依 執行過程組 作用是 按圖索驥 讓專案團隊 有法必依 監控過程組 作用是測量專案績效,讓專案團隊 違法必究 並且盡量做到 防患於未然 收尾過程組 作用是了結專...