http://www.lanceyan.com/chuangye/java_agile_develop_tools.htmlcss
前面介紹了創業型軟件公司的工做模式,這裏詳細介紹下如何實施,第一步是先要搭建環境,有了環境才能開展工做。html
整個軟件項目分爲四個環境 開發本地環境、開發環境、測試環境、IDC環境。和傳統C++開發不同的模式是多了第一個開發本地環境。這是爲何呢,由於目前大部分開發人員仍是比較熟悉windows下開發。對於mac和linux下直接使用軟件而且開發的中國開發者仍是少之又少,這套架構就這個現狀作出來的。以下是環境搭建架構圖:前端
從環境來講:java
1、開發本地環境、開發集成服務器搭建。 前端開發者、後臺開發者。mysql
前端開發用的最多的是photoshop和dreamweaver。在作psd以前大部分是不會協同開發的,只有整個文件傳遞過來過去。html切割的時候可能就會多我的協同開發了。這個時候須要一個集中ftp服務器、svn服務器。svn服務器用於保存版本代碼庫,用於保存歷史修改的版本和開發人員協同。ftp服務器適用於及時修改時保存上傳到預覽服務器進行預覽。看到這裏有人也許會問,我直接合並svn和ftp不行嗎?其實有這樣的問題,若是直接提交svn,後臺開發人員就會從svn看到。原本是前端的集成協同開發預覽,結果影響到後臺容易引發版本混亂。linux
後臺開發怎麼搭建環境?用eclipse在本地環境搭建開發環境,經過tomcat插件或者jetty啓動調試class、jsp。以前看過不少公司都經過打成war包發佈到集成環境再調試。集成環境你們都去集成容易引發版本混亂。即便不發佈到集成環境,在本地就算修改個小的class文件也要重啓war包有點浪費時間。最好就是利用tomcat的熱部署,修改小功能直接生效。如今咱們就是這樣作的,用maven管理jar包依賴,ant本地打包、拷貝包,用eclipse的tomcat插件熱部署快速開發。等到全部功能開發好了。把分支版本發佈到開發環境進行集成測試。nginx
開發環境涉及的軟件有:nexus 、maven、tomcat服務器、mysql、ftp、jenkins、svn、jira、fisheye、eclipse、dreamweaver、photoshop、nginx。web
軟件的做用:
nexus做爲集中倉庫管理,由於每一個工程若是都有一堆jar包,很難管理。加上svn上傳、分支、合併耗費網絡帶寬、空間。若是有個地方把這些浪費空間的jar集中管理起來,全部工程合用豈不是很好。
maven是軟件生命週期、依賴管理,有了集中管理jar包,就須要有個東西把jar包倉庫和工程鏈接起來。
tomcat服務器是本地開發使用和集中測試服務器。
mysql就不必每一個開發機器都裝一個了,放在一個開發環境就能夠。
ftp做爲前端開發上傳文件使用。
jenkins是持續集成,開發和前端都把代碼弄好,怎麼融合集成在一塊兒測試呢,總須要有我的來把全部的文件合併在一塊兒吧?這個軟件就起到這個角色,把全部文件集成、編譯、打包、發佈到tomcat服務器。以下圖:sql
svn代碼版本管理,你們都知道協同做用。
jira用於需求、bug等管理。
fisheye用於代碼統計、審覈等。
eclipse、dreamweaver、photoshop不用說啦。
nginx主要用於作虛擬主機和靜態資源管理。由於咱們可能同時開發多個網站,nginx能夠根據不一樣的域名轉發到不一樣的web服務器。數據庫
2、測試服務器。開發、測試。
開發集成測試環境經過後,這個就能夠轉測試了。經過持續集成,測試部署好環境就開始測試。測試環境一樣依賴於集中倉庫、maven、持續集成等軟件。也就是集成測試環境、開發集成環境、開發本地環境都是用的一套jar包,是否是很cool。若是測試不經過,就要轉回開發,開發好再轉測試。怎麼保證開發的質量和測試的質量,還有你們的協做性,這個過程涉及到軟件工程和績效考覈,後面再說。測試經過一些測試,測試經過後就能夠發佈到外網了。這個時候須要提供發佈列表、操做步驟、數據庫操做腳本給到運維審覈,審覈經過後才能發佈。
怎麼發佈到外網IDC呢?運維能夠根據發佈列表去操做,開發和前端一塊兒等着熬夜啊熬夜。沒有效率!這裏提出了一個增量發佈版本的方式,經過發佈列表,咱們的發佈程序會自動檢測到發佈的文件和發佈的機器,發佈到對應的服務器。若是發佈失敗了還能夠回滾文件,基本上是一鍵操做。將來還會把服務器重啓、日誌輸出等集成起來。
3、IDC服務器。
外網的真實服務器,後臺和前臺。你們可以訪問到的網站服務器。業務人員在版本發佈後查看。整個流程就作好了。你們在每一次版本開發完了,能夠很好的協同、開發、測試、發佈。
擴展話題:
一、photoshop可否和html互轉而且有版本管理功能,這個作好是個革命性的標誌。
二、css、js等靜態文件是否也可以歸入自動依賴管理裏。這樣不用咱們發佈一個頁面文件時發現還有些依賴的js沒有發佈。
原創文章,轉載請註明: 轉載自LANCEYAN.COM