在具體開發的過程中,我們是以任務驅動的,開發過程中無外乎下面幾種類型的任務
- 開發新功能
- 修復bug
- 重構或者優化代碼
- 編寫和維護文檔
在我的開發過程中,會通過任務管理系統將上述的所有的任務管理起來
我用到的任務工具是Redmine,是一個基于Ruby on Rails的開源任務管理系統,在Redmine中可以新建一個任務,然后將該任務相關的所有細節都記錄下來,當然你也可以用別的管理系統,看你的喜好和習慣了
一般我的任務記錄會細化為下面幾個部分
- 問題的描述
- 任務的類型
- 具體的方案是什么
- 開發方案
- 測試方案
- 上線注意事項等
- 解決過程中遇到的問題和解決方案是什么
可以在任務完成一些階段性的目標時就去更新任務的進展,這樣不僅可以使進度可見,還能感受任務有序推進帶來的成就感
如前面所說,我們是通過Redmine進行任務管理的,但是開發卻是通過IDE進行的,如果能將我們正在工作的代碼和任務關聯起來那就再好不過了,好消息是,Idea已經提供了這個功能
Idea可以整個多種任務管理系統,像Redmine,Jira,Trello等,可以對每一個任務建立一個與之相關的上下文,當你切換任務時,Idea會為你清空workspace,新建changelist,changelist就是你在這個任務下修改的相關文件,這樣你就可以僅與比任務相關的workspace下工作了,其他任務不受當前任務的影響,而且你提交代碼的時候會為你自動填寫當前任務名稱作為commit message
當然,在你想要切回之前的任務時,Idea會清空當前任務,重新載入要恢復的任務,這時你的workspace和changelist又變成了你關閉之前的任務時的樣子
在實現這個功能之前,只需要在Idea上做一些簡單的配置,關聯你的Idea和任務管理系統即可,具體配置可參照https://www.jetbrains.com/help/idea/2017.1/managing-tasks-and-context.html