1. 程式人生 > >從零開始啟動一個專案,需要哪些準備工作

從零開始啟動一個專案,需要哪些準備工作

原文連結這裡

話題的由來

某天午飯前,專案組一同事挑起了這個話題,由於是馬上要到飯點了,所以沒有細聊,但公認的結論是,從零開始準備一個專案,花費的工作量不小。
由於最近我參與了一個全新的web專案,有切身的體驗,所以記錄下來。
主要的工作量包括如下幾點:

  • 程式碼開發環境準備
  • 開源軟體選擇
  • 版本管理軟體
  • 基礎程式碼開發
  • 問題處理
  • 制度建設

程式碼開發環境準備

  • 支援j2ee的eclipse,版本當然要最新的,外掛則包括easyexplore、國際化資源編輯器;
  • JDK1.8,注意不是JRE1.8,要附帶原始碼,否則開發過程中看不到JDK的原始碼就很鬱悶了;
  • 構建工具,Ant和Maven;Ant平時用的比較多,所以很熟練,但用maven的話下載開源軟體比較方便,所以也要準備好;
  • 反編譯工具,開發過程中可能會遇到開源軟體的使用問題,這時如果可以走讀一下程式碼,可以提供一些思路;
  • easyexplore,通過這個外掛,可以很方便的開啟程式碼所在的目錄,否則還需要手工一級、一級的跳過去,麻煩;
  • lombok,通過這個工具,程式碼裡可以少很多getter/setter之類的東東;

開源軟體選擇

開源軟體很多,選擇面很廣。但考慮到專案需要商用,所以基於GPL之類的協議開源的軟體都不要使用,否則後續整改進來非常麻煩;同一功能的開源軟體裡,評價前要準備幾款備選,同時評估,從中挑選社群活躍度高、維護人員努力一點的,否則軟體出了Bug,就比較坑了。

一般的選擇有

  • 日誌記錄器,我用過log4j、log4j2、slf4j,比較過後,我傾向於使用slf4j做前端,log4j或者log4j2做後端,原因是slf4j的介面比較好用,log4j或者log4j2的資料很多,會做配置的人也多,所以兩方面好處都可以享受;
  • ibatis,ibatis2.3.4.726版本從08年開始使用,雖然這個版本已經停止維護,但由於使用簡單,沒有使用經驗的新進員工只要會使用SQL,基本上一週之後就可以上手,培訓的代價小,所以新專案裡仍然打算使用這款軟體;
  • spring,我使用的spring時間還比較短,所以挑主流分支的最新版本;
  • mysql及其jdbc驅動,專案啟動時直接從官網下載其時的最新版本,專案進行過程中如遇到問題則考慮更新,否則就不變了;
  • xstream,XML序列化的神器,儲存一些臨時資料非常有用,可以少寫很多程式碼;
  • json,可選軟體非常多,比如google的gson,jackson等,可以依據團隊成員的能力和專案的特性,從中選擇一款出來;
  • commons庫,比如commmons-io、commons-file-upload、commons-codec、commons-logging、commons-lang等,這些軟體一般不需要專門下載,很多開源軟體的釋出包中都會附帶,當然也可以直接在apache的官網上下載最新版本;
  • 。。。

版本管理軟體

svn和git,中心伺服器是SVN,本地為了方便,同時安裝了svn客戶端和git,這樣可以建立很多分支,分別用於開發新特性、試驗新技術、修復Bug等。

基礎程式碼開發

這個要看團隊成員的能力而定,但一般可以分為如下幾種。

  • 資料庫訪問封裝
  • 頁面與服務端通訊協議封裝
  • 服務端介面樣例實現
  • 頁面基本樣式定義
  • 頁面樣例程式碼
  • 。。。

制度建設

專案涉及多人協作時,必須要考慮到團隊協作時的制度。

  • 需求傳遞和變更制度,需求和方案是需要管理的,團隊的能力需要逐步培養,而外部的預期也要可控,否則會導致成員天天加班累死,外部呈現卻不好,以至於惡性迴圈。
  • 會議制度,晨會、周例會。
  • 開發流程,開發人員領取到任務之後需要完成哪些動作,一般要完成Story分析、評審、程式碼開發、過自測用例、showcase、修改showcase問題等。
  • Story評審制度,主要評審的是Story分析,那麼Story分析需要完成什麼內容,通過和不通過的標準,Story評審的時機,參與人員等都需要明確。
  • 程式碼評審制度,一般需要在轉測試之前完成,程式碼好、壞的標準,差的程式碼如何修改等。
  • 問題單修改流程,一般要包括測試提單、測試經理確認、專案經理確認、開發人員分析、開發人員修改、專案經理稽核、測試經理安排迴歸、測試人員迴歸。測試人員完成提單和迴歸問題單,首先要在問題單裡填充必要的資訊,以提高溝通效率。開發人員在其中主要完成修改和自測試的環節,基本要求就是一次搞定,避免測試人員返工。
  • 開發規範,比如web頁面的規範、java程式碼的規範等。
  • 求助渠道,專案團隊成員有了困難,不同型別困難的求助人要明確出來,不同級別問題的求助人也要明確出來。
  • 培訓制度,收集團隊近期遇到的問題,統一講解和答疑。
  • 。。。

結尾

萬事開頭難,事情太多要煩,那麼有幫手可以分擔一些的話,生活將無比美好。