在具體開(kāi)發(fā)的過(guò)程中劝术,我們是以任務(wù)驅(qū)動(dòng)的乙嘀,開(kāi)發(fā)過(guò)程中無(wú)外乎下面幾種類型的任務(wù)
- 開(kāi)發(fā)新功能
- 修復(fù)bug
- 重構(gòu)或者優(yōu)化代碼
- 編寫和維護(hù)文檔
在我的開(kāi)發(fā)過(guò)程中,會(huì)通過(guò)任務(wù)管理系統(tǒng)將上述的所有的任務(wù)管理起來(lái)
我用到的任務(wù)工具是Redmine挂洛,是一個(gè)基于Ruby on Rails的開(kāi)源任務(wù)管理系統(tǒng)斩郎,在Redmine中可以新建一個(gè)任務(wù),然后將該任務(wù)相關(guān)的所有細(xì)節(jié)都記錄下來(lái)疮装,當(dāng)然你也可以用別的管理系統(tǒng)缘琅,看你的喜好和習(xí)慣了
一般我的任務(wù)記錄會(huì)細(xì)化為下面幾個(gè)部分
- 問(wèn)題的描述
- 任務(wù)的類型
- 具體的方案是什么
- 開(kāi)發(fā)方案
- 測(cè)試方案
- 上線注意事項(xiàng)等
- 解決過(guò)程中遇到的問(wèn)題和解決方案是什么
可以在任務(wù)完成一些階段性的目標(biāo)時(shí)就去更新任務(wù)的進(jìn)展,這樣不僅可以使進(jìn)度可見(jiàn)廓推,還能感受任務(wù)有序推進(jìn)帶來(lái)的成就感
如前面所說(shuō)刷袍,我們是通過(guò)Redmine進(jìn)行任務(wù)管理的,但是開(kāi)發(fā)卻是通過(guò)IDE進(jìn)行的樊展,如果能將我們正在工作的代碼和任務(wù)關(guān)聯(lián)起來(lái)那就再好不過(guò)了呻纹,好消息是鸽心,Idea已經(jīng)提供了這個(gè)功能
Idea可以整個(gè)多種任務(wù)管理系統(tǒng),像Redmine居暖,Jira,Trello等藤肢,可以對(duì)每一個(gè)任務(wù)建立一個(gè)與之相關(guān)的上下文太闺,當(dāng)你切換任務(wù)時(shí),Idea會(huì)為你清空workspace嘁圈,新建changelist省骂,changelist就是你在這個(gè)任務(wù)下修改的相關(guān)文件,這樣你就可以僅與比任務(wù)相關(guān)的workspace下工作了最住,其他任務(wù)不受當(dāng)前任務(wù)的影響钞澳,而且你提交代碼的時(shí)候會(huì)為你自動(dòng)填寫當(dāng)前任務(wù)名稱作為commit message
當(dāng)然,在你想要切回之前的任務(wù)時(shí)涨缚,Idea會(huì)清空當(dāng)前任務(wù)轧粟,重新載入要恢復(fù)的任務(wù),這時(shí)你的workspace和changelist又變成了你關(guān)閉之前的任務(wù)時(shí)的樣子
在實(shí)現(xiàn)這個(gè)功能之前脓魏,只需要在Idea上做一些簡(jiǎn)單的配置兰吟,關(guān)聯(lián)你的Idea和任務(wù)管理系統(tǒng)即可,具體配置可參照https://www.jetbrains.com/help/idea/2017.1/managing-tasks-and-context.html