1. 作為 IT 從業人員,你覺得有什麼工具大大提高了你的工作效率
我也談談自己的一些提高開發體驗經驗,就說軟體工具部分。
這里的經驗基本上都是沖著一個原則去的:「凡是需要重復做的,必須使用自動化工具完成。」
1. 版本控制
一般自己的項目使用git,公司開發規定用svn。反正不管怎麼樣,版本控制少不了。有個說法,沒有版本控制的項目,就等於沒有。
版本控制的好處太多了,用過的人都知道。等於歷史版本 + 代碼備份了。這個提到的很多,就不多說了。
2.單元測試工具
寫程序需要驗證,如果快速知道新的代碼和過去的寫的代碼不沖突,這個時候單元測試就能起到作用了。
當然單元測試的功能不僅僅是這個:
驗證代碼正確性和可靠性
驗證新代碼不和原有代碼沖突
驗證自己代碼不合團隊其他人員代碼有沖突
驗證合並是否有沖突
驗證快速
可以作為API使用實例
跨平台和跨環境測試
這個是現代開發流程的基本模塊之一,沒有單元測試的項目,不是一個合格完整的項目。
有了單元測試,就再也不用擔心在大項目中,自己做的小修改有會有什麼大影響了。開發壓力大大減少
PHP的我用的是PHPunit,JavaScript用過的就多了,Jasmine,Qunit,Mocha等工具(不管哪一個,至少要用到一個)C#一般用nUnit。還有各種mock,faker輔助。
8.持續集成
有人和我說過,持續集成可以讓你開發水平提高達到到另外一個層級。當我實踐後,終於明白持續集成的魅力所在了。
要會持續集成,你首先必須學會以上6條(live reload除外),以上6條基本就是持續集成的幾個基礎模塊,學會後,你自然而然就已經會了持續集成了。
持續集成的主要流程如下
檢查版本控制庫是否更新
如果更新,就下載最新版本的代碼
構建
測試
報告
當你設置好一個持續集成的項目後,以上的步驟應該就是全自動的了。還是那句老話: 凡是重復的步驟,應該用工具來完成。而持續集成就是這個終極工具。
持續集成其實就是流程管理的一個升級版本,或者說一個擴充。它們都是自動流程工具。它們的差別是:
流程管理主要在本機(開發人員自己的開發環境)上執行,而持續集成則是在一個獨立設置的環境下執行。
流程管理繼續的是本機代碼,而持續集成構建的是版本控制中保存的代碼
團隊中任何一個人push代碼到版本控制中,持續集成就開始構建驗證新代碼的可靠性。
項目流程配置完成後,流程管理需要執行命令行,持續集成應該全自動
流程管理是持續集成的一個模塊,屬於持續集成的構建模塊
持續集成會有更多後續的專業功能,比如說產生報告,錯誤通知,構建歷史,測試歷史等開發新型
我們可以設想一下這樣的一個情況,在有20-50個人的團隊在開發一個PHP項目,每個人每天至少往版本控制中push大約10次新代碼,而這個項目你又要保證在3個主流的瀏覽器中功能一致,樣式相同,而這個項目又必須跨平台,可以在mac,window,linux上都可以運行,而且還要保證PHP5.4~5.6都可以運行。這個時候,持續集成系統的優勢就會顯示其真正的威力了。
總之,在一個專業項目中,持續集成服務所提供的自動構建和專業報告,可以把項目開發的專業水準再次提高到一個新的層次當中。
我用過的持續集成是Jenkins。
文章到此算完結了。其實開發中,還有很多優秀的工具,但無法和這些主要的開發工具相比,就不在這里說了。
2. SVN(版本控制系統)是個什麼東西
一個版本控制軟體,可以上傳、下載自己的代碼,同時SVN記載著修改、刪除等記錄,可以下載任何時候的上傳代碼。
3. Java程序員編寫代碼時用什麼上傳到公司伺服器上
利用SVN這個軟體,網路就能下載,安裝完後根據公司的SVN地址就可以訪問提交的代碼等文件並導入到本地,自己寫的代碼也可以提交上去。
而且eclipse、Myeclipse也可以安裝SVN插件,直接在軟體內檢出和提交代碼。
絕大部分公司都是用的SVN軟體來管理、同步代碼。