JAVA敏捷開發環境搭建

前面介紹了創業型軟件公司的工作模式,這裏詳細介紹下如何實施,第一步是先要搭建環境,有了環境才能開展工作。

整個軟件項目分爲四個環境 開發本地環境、開發環境、測試環境、IDC環境。和傳統C++開發不一樣的模式是多了第一個開發本地環境。這是爲什麼呢,因爲目前大部分開發人員還是比較熟悉windows下開發。對於mac和linux下直接使用軟件並且開發的中國開發者還是少之又少,這套架構就這個現狀做出來的。如下是環境搭建架構圖:

agile_pic3

 

從環境來說:

一、開發本地環境、開發集成服務器搭建。 前端開發者、後臺開發者。

前端開發用的最多的是photoshop和dreamweaver。在做psd之前大部分是不會協同開發的,只有整個文件傳遞過來過去。html切割的時候可能就會多個人協同開發了。這個時候需要一個集中ftp服務器、svn服務器。svn服務器用於保存版本代碼庫,用於保存歷史修改的版本和開發人員協同。ftp服務器適用於及時修改時保存上傳到預覽服務器進行預覽。看到這裏有人也許會問,我直接合並svn和ftp不行嗎?其實有這樣的問題,如果直接提交svn,後臺開發人員就會從svn看到。本來是前端的集成協同開發預覽,結果影響到後臺容易引起版本混亂。

後臺開發怎麼搭建環境?用eclipse在本地環境搭建開發環境,通過tomcat插件或者jetty啓動調試class、jsp。之前看過很多公司都通過打成war包發佈到集成環境再調試。集成環境大家都去集成容易引起版本混亂。即使不發佈到集成環境,在本地就算修改個小的class文件也要重啓war包有點浪費時間。最好就是利用tomcat的熱部署,修改小功能直接生效。現在我們就是這樣做的,用maven管理jar包依賴,ant本地打包、拷貝包,用eclipse的tomcat插件熱部署快速開發。等到所有功能開發好了。把分支版本發佈到開發環境進行集成測試。

開發環境涉及的軟件有:nexus 、maven、tomcat服務器、mysql、ftp、jenkins、svn、jira、fisheye、eclipse、dreamweaver、photoshop、nginx。

軟件的作用:
nexus作爲集中倉庫管理,因爲每個工程如果都有一堆jar包,很難管理。加上svn上傳、分支、合併耗費網絡帶寬、空間。如果有個地方把這些浪費空間的jar集中管理起來,所有工程合用豈不是很好。
maven是軟件生命週期、依賴管理,有了集中管理jar包,就需要有個東西把jar包倉庫和工程連接起來。
tomcat服務器是本地開發使用和集中測試服務器。
mysql就沒必要每個開發機器都裝一個了,放在一個開發環境就可以。
ftp作爲前端開發上傳文件使用。
jenkins是持續集成,開發和前端都把代碼弄好,怎麼融合集成在一起測試呢,總需要有個人來把所有的文件合併在一起吧?這個軟件就起到這個角色,把所有文件集成、編譯、打包、發佈到tomcat服務器。如下圖:

test

svn代碼版本管理,大家都知道協同作用。
jira用於需求、bug等管理。
fisheye用於代碼統計、審覈等。
eclipse、dreamweaver、photoshop不用說啦。
nginx主要用於做虛擬主機和靜態資源管理。因爲我們可能同時開發多個網站,nginx可以根據不同的域名轉發到不同的web服務器。

二、測試服務器。開發、測試。

開發集成測試環境通過後,這個就可以轉測試了。通過持續集成,測試部署好環境就開始測試。測試環境同樣依賴於集中倉庫、maven、持續集成等軟件。也就是集成測試環境、開發集成環境、開發本地環境都是用的一套jar包,是不是很cool。如果測試不通過,就要轉回開發,開發好再轉測試。怎麼保證開發的質量和測試的質量,還有大家的協作性,這個過程涉及到軟件工程和績效考覈,後面再說。測試通過一些測試,測試通過後就可以發佈到外網了。這個時候需要提供發佈列表、操作步驟、數據庫操作腳本給到運維審覈,審覈通過後才能發佈。

怎麼發佈到外網IDC呢?運維可以根據發佈列表去操作,開發和前端一起等着熬夜啊熬夜。沒有效率!這裏提出了一個增量發佈版本的方式,通過發佈列表,我們的發佈程序會自動檢測到發佈的文件和發佈的機器,發佈到對應的服務器。如果發佈失敗了還可以回滾文件,基本上是一鍵操作。未來還會把服務器重啓、日誌輸出等集成起來。

三、IDC服務器。

外網的真實服務器,後臺和前臺。大家能夠訪問到的網站服務器。業務人員在版本發佈後查看。整個流程就做好了。大家在每一次版本開發完了,可以很好的協同、開發、測試、發佈。

擴展話題:
1、photoshop能否和html互轉並且有版本管理功能,這個做好是個革命性的標誌。
2、css、js等靜態文件是否也能夠納入自動依賴管理裏。這樣不用我們發佈一個頁面文件時發現還有些依賴的js沒有發佈。

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