CONAN ZONE

          你越掙扎我就越興奮

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            0 Posts :: 282 Stories :: 0 Comments :: 0 Trackbacks
          現在,在 2.0 版中,Mylyn(以前稱為 Mylar)通過將任務無縫集成到 Eclipse 中并在工作時自動管理任務上下文,提高了效率。Mylyn 項目主管 Mik Kersten 更新了他撰寫的分兩部分的 Mylyn 使用指南,以便包括根據 Mylyn 1.0 的大量用戶反饋而作出的改進。第 1 部分介紹 Mylyn 的任務管理功能和它與 Bugzilla、Trac 和 JIRA 等儲存庫的集成。在 第 2 部分,您將了解上下文管理如何簡化多任務執行,以及如何減少信息超載。

          雖然軟件系統、框架和工具可以無限制地發展,但開發人員實際處理信息的能力具有一個上限。大多數集成開發環境(IDE)嘗試使用結構化視圖、編輯器和高級搜索功能來解決這個限制。這些機制雖然可以使大型系統的導航變得更容易,但是它們常常不足以幫助您管理完成典型編程任務所必須處理的大量信息。因此,結構化視圖越來越不堪負荷 —— 例如,即使在導航一個小型的企業應用程序時,Eclipse Package Explorer 也常常會顯示數千個源文件 —— 您要浪費大量的時間來滾動、導航和跟蹤這些信息。

          有趣的是,在大多數情況下,不需要查看系統的整個層次結構或者某個特定方法的每個引用就可以完成編程任務。例如,對于要修復的任何 bug 或者要添加的任何特性,您只對系統的某一部分感興趣。Mylyn 是一種交互技術,通過將集成的任務管理自動上下文管理 這兩個功能添加到 Eclipse 中,可以突出顯示您感興趣的系統內容。任務管理將 task/bug/defect/ticket/story/issue 跟蹤器集成到 Eclipse 中,并提供高級的任務編輯和任務調度功能。上下文管理監視您與 Eclipse 的交互,自動識別與當前任務相關的信息,并聚焦結構化視圖和編輯器,使其只顯示相關信息。這兩個功能一起組成了 Mylyn 的 Task-Focused(以任務為中心)UI,使多任務處理變得更容易,并且極大減少了信息超載。(至于實際研究結果,請參閱 參考資料 小節中研究論文 “Using Task Context to Improve Programmer Productivity” 的鏈接。)

          加速思考

          myelin(髓磷脂)是體內自然產生的一種物質,它通過使神經元更高效地導電而加快我們的思考。Mylyn 這個名稱源于 myelin,因為很多用戶聲稱 Mylyn 大大提高了工作效率,能夠以思考的速度編寫代碼。以前,這個項目被稱為 Mylar,與一種朔料薄膜的名稱相同。

          這個由兩部分組成的文章是一份 Mylyn 使用指南。本文的某些內容(尤其指關注編程而不是任務管理的內容)假設您熟悉 Eclipse IDE。第 1 部分是 Mylyn 入門,并介紹了它在任務管理方面的功能。第 2 部分 介紹 Mylyn 的上下文管理功能,并討論它的 Task-Focused UI 對編程和開發方法的影響。為方便起見,將同時發表這兩部分內容。

          第 1 部分并不適用于編程活動,它適用于在任何 Eclipse 發行版或者集成 Mylyn 的獨立應用程序中使用 Mylyn。第 2 部分 主要討論 Java™ 編程,但是也討論了適用于所有基于 Eclipse 的工具的一些特性。在本文的例子中,我使用 Bugzilla 作為任務儲存庫,但是這里的概念和 UI 同樣適用于 Mylyn 支持的其它任務跟蹤器。即使您打算通過不同的連接器使用 Mylyn,建議您還是看看使用 Bugzilla Connector 的步驟,以便熟悉關鍵特性。

          Mylyn 簡介

          Mylyn 通過任務跟蹤這樣的復雜機制擴展了 Eclipse SDK(從 參考資料 小節查看受支持的版本)。任務(task)是您希望回調或與他人共享的任何工作單元,例如一個用戶報告的 bug,或者關于一個特性改進的說明。Mylyn 使您可以在工作區本地存儲任務,或者處理一個或多個任務儲存庫中的任務。(任務儲存庫 指諸如 Bugzilla、Trac 或 JIRA 之類的問題跟蹤器)。要連接到一個特定的任務儲存庫,還必須安裝用于該儲存庫的 Mylyn 連接器

          集成任務之后,Mylyn 將監視這些任務上的活動,以識別與當前任務相關的信息。此時,Mylyn 創建一個任務上下文 —— 與任務相關的所有工件的集合。這可以包括瀏覽過的文檔、編輯過的方法和引用過的 API。Mylyn 使用任務上下文使 UI 聚焦感興趣的信息、隱藏不感興趣的信息、自動發現相關的信息。具備了完成任務所需的信息,就可以減少執行搜索、導航和滾動操作的時間,從而提高工作效率。通過突出任務上下文,Mylyn 還有助于多任務處理、計劃、重用過去的工作以及共享專家經驗。

          使用 Mylyn 一段時間之后,您的工作方式會發生微妙但是重要的變化。一旦習慣了以任務為中心的工作方式,您很可能會發現工作效率有了極大的提高。您的工作變得井井有條,可以統籌管理數十個協作任務并跟蹤進程,這些事情都變得非常容易。

          圖 1 中的編號區域顯示了 Mylyn 的一些任務管理和上下文管理特性:

          1. 含活動任務的任務列表(Task List)和當天計劃好的 Bugzilla 報告
          2. 由任務上下文管理的更改集
          3. 具有離線支持的富任務編輯器
          4. Eclipse Package Explorer 上以任務為中心的模式

          圖 1. Mylyn 的 Task-Focused UI

          單擊 這里 查看全圖。

          接下來的小節講解 Mylyn 的安裝和配置,并介紹它的關鍵特性。對 Mylyn 任務管理功能有了大致了解后,您將更深入地了解它對日常工作流程的影響。





          回頁首


          任務儲存庫連接器

          在本文中,我使用 Mylyn 的 Bugzilla Connector 來展示使用任務儲存庫集成的關鍵概念。對于其它受支持的任務儲存庫,這些概念是相同的,只是集成級別和連接器的成熟度有所不同。與 Mylyn 捆綁的 Bugzilla 和 Trac 連接器非常成熟,并且被視作參考實現。Mylyn Extensions 頁面(參閱 參考資料 小節)列出了用于其它問題跟蹤器和項目管理工具的連接器(例如 CollabNet、Rally、Mantis 和 XPlanner)。

          完全集成的連接器提供以下特性:

          • 查詢(Queries):查詢是用于將各組任務取回到 Mylyn 的 Task List 中的一種機制。查詢編輯和檢索功能特定于連接器,它們可以提供一個基于 Eclipse 的查詢設計器,或者從服務器中的一個帳戶檢索查詢,或者同時提供這兩種功能。

          • 富編輯(Rich editing):可以用一個集成的編輯器編輯任務和查詢。該功能提供任務和其它結構化元素的超鏈接,以及 Eclipse 和桌面集成,例如拖放功能。提供富編輯的連接器仍然可以提供在 Eclipse 的嵌入式瀏覽器中打開任務和查詢的功能。

          • 附件(Attachments):可以將文件附加到儲存庫中,或者從儲存庫中檢索文件。該特性允許從操作系統或 Eclipse 工作區附加文件,并且支持上下文共享等功能(請參閱 第 2 部分)。

          • 離線(Offline)支持:可以在斷開連接的情況下工作,直接訪問文件和查詢,而不必等到與服務器建立連接。該功能還提供更改通知,可以使用 Task List 作為任務收件箱,而不用依賴于電子郵件客戶端。

          為了讓您從 Mylyn 獲得完整的集成,并停止對外部或基于 Web 的 UI 的依賴,連接器必須支持這里列出的所有四個功能。但是,只要 Eclipse 具備足夠 可用于處理任務的功能,則仍然可以從 Mylyn 的 Task-Focused UI 中獲益。如果連接器的任務儲存庫不可用,您仍然可以:

          • 使用 Mylyn 對 本地任務 的支持。如果不受支持的儲存庫有一個基于 Web 的 UI,那么可以從瀏覽器中將 URL 拖放到 Mylyn 中,從而創建任務。

          • 使用 Generic Web Repository Connector,它為很多基于 Web 的儲存庫提供基本查詢支持:Google Code Hosting (code.google.com)、IssueZilla (java.net、dev2dev、tigris.org)、GForge (objectweb.org)、SourceForge (sf.net)、JIRA、Trac、phpBB 和 vBulletin。請參閱 參考資料 小節,了解更多信息。

          • 請求任務儲存庫提供商創建一個用于 Mylyn 的連接器。還可以考慮在 Mylyn bug 網頁為您的連接器投票(參閱 參考資料 小節)。

          • 創建自己的連接器(請參閱 參考資料 小節,提供了到 Integrator Reference 的鏈接)。




          回頁首


          安裝和設置

          Mylyn 現在被包括在大多數 Eclipse 發行版中,所以獲得它的最簡單方法是從 Eclipse Downloads 頁面下載一個包含 Mylyn 的包(見 參考資料 小節)。但是,對于更新至新的 Mylyn 版本,或者將 Mylyn 安裝到沒有捆綁 Mylyn 的 Eclipse 版本中,下面的說明仍然會提供幫助。

          技巧:Mylyn 要求 Java 5 或更高版本

          Mylyn 構建在 Java 5 的基礎上。如果試圖用 JRE 1.4 或更早的版本運行它,那么它不能工作,并且會在啟動時報錯。可以通過 Help > About Eclipse SDK > Configuration Details 檢查 Eclipse 使用哪個版本的 JRE。有關安裝方面的故障排除,請參考 Mylyn FAQ (參閱 參考資料 小節)。

          要安裝適合您使用的 Eclipse 版本的 Mylyn,可以使用 Eclipse Update Manager: Help > Software Updates > Find and install > Search for new features to install。 當對 Eclipse 3.2 更新時,最好使用這種機制,而不是 Search for updates,因為后者不會執行正確的依賴性檢查。在 Eclipse 3.3 上,這兩種方法都可行。想要了解提供 Update Manager 的最新 Mylyn 更新站點,請參考 Mylyn 的下載頁面(參閱 參考資料 小節)。

          Mylyn 的一個關鍵設計目標是與 Eclipse 已有的 UI 工具無縫集成。另一個目標是要求用戶只安裝和使用需要的特性。圖 2 顯示了用于選擇要安裝的特性的 UI。例如,如果您的任務是 bug 歸類(triaging)而不是開發,那么可以安裝 Mylyn 的 Task List,而不必安裝 Task-Focused UI,并且可以獨立地選擇用于問題跟蹤器的連接器。軟件開發人員很可能要同時安裝這兩個特性。


          圖 2. 選擇 Mylyn 特性和儲存庫連接器

          當從更新站點選擇要安裝的特性時,可以選擇一個或多個要使用的任務儲存庫。注意,正如 Mylyn Downloads 頁面提示的,您可能需要添加額外的更新站點,以獲得所需的連接器。當安裝推薦的 Task-Focused UI 特性時,還應該選擇所有可安裝到當前 Eclipse 版本的橋接器。(關于橋接器的詳細信息,請參閱 第 2 部分)。重新啟動 Eclipse 3.3 或更高版本之后,可以看到圖 3 所示的歡迎屏幕。如果當前使用的是 Eclipse 3.2,那么可以從 Help 菜單手動打開這個歡迎屏幕。


          圖 3. 歡迎屏幕





          回頁首


          任務和查詢

          Mylyn 提供了使用兩種類型任務的支持:

          • 本地任務存儲在 Eclipse 工作區,提供基本的任務管理特性,例如調度。本地任務是私有的,并只對您可見。

          • 儲存庫任務存儲在與一個外部應用程序或服務器對應的一個任務儲存庫中。儲存庫任務常常在多人之間共享,但是仍然提供所有的本地任務功能,例如個人調度和注解。

          本節展示如何創建和編輯本地任務,并考察用于使用儲存庫任務的可用特性。這里談到的特性的可用性取決于連接器的 集成級別,所以只需參考那些適用的特性。無論連接器集成級別是多少,都可以使用 任務管理和個人計劃 中討論的 Mylyn 的所有任務管理功能。

          本地任務初解

          安裝 Mylyn 之后,遵循以下步驟:

          1. 在 Task List 視圖上單擊 New Task 工具欄按鈕,創建一個新任務。
          2. 選擇 Local Tasks 儲存庫。
          3. 輸入一個任務概要。
          4. 單擊 Eclipse 工具欄上的 Save 或按 Ctrl+S,保存更新后的描述。

          創建本地任務的快捷方式是 Insert 鍵,或者也可以從 Web 瀏覽器中將文本或 URL 拖放到 Task List 中。新任務的描述將由相應 Web 頁面的標題自動填充。(在 Firefox 中,只需常規的拖動動作;而在 Internet Explorer 中,在拖動的同時還需按下 Ctrl 鍵。)在 Task List 中雙擊任務可以打開任務編輯器(如圖 4 所示),在該編輯器中可以創建注解、粘貼相關超鏈接或者調度特定日期的任務。默認情況下,新創建的任務是在創建之日調度的。


          圖 4. 編輯本地任務

          創建了十幾個或者更多的本地任務之后,您可能想通過創建類別 來組織它們。如果創建任務時沒有在 Task List 中選擇類別,那么該任務被放入到 Uncategorized 容器中。可以使用 Task List 中的 Move to 彈出菜單或者任務編輯器或者通過拖放操作將一個創建好的任務轉移到另一個類別中。

          要將本地任務標記為已完成,可以使用任務的彈出菜單或者任務編輯器。 默認情況下,被標記為已完成的任務會被過濾掉,但是也可以通過 Task List 的視圖菜單(使用 Task List 視圖工具欄右側的倒三角形打開)選擇不過濾它們。為了避免凌亂,不要顯示那些不顯示任何任務的類別(例如,所包含的任務全部完成的類別)。使用 Task List 頂端的 Find: 框訪問被過濾的任務。最后,可以通過任務編輯器為本地任務設置優先級和計劃信息。任務管理和個人計劃 小節將更深入地討論計劃。

          為了熟悉 Mylyn 的圖標模式,可以使用 Task List 視圖菜單中的 Show UI Legend 動作(見圖 5)。 我將在整個文章中引用該圖標模式。


          圖 5. Mylyn UI 圖例

          添加任務儲存庫

          不同任務儲存庫在功能和任務管理的指代方面可能有較大差別。Mylyn 的任務管理功能提供了一種統一的方式使用多種儲存庫,包括:

          技巧:添加儲存庫后確認設置

          Mylyn 的最常見問題和任務儲存庫的連接有關。使用 Validate Settings 按鈕來驗證您輸入的憑證是正確的。如果需要任何其它設置,例如網絡代理,可以使用提供的其它區域中的其中一個再次驗證。通常,如果驗證失敗,任務儲存庫連接器應該會提供一條有用的消息。如果沒有提供消息,則可以參考連接器的文檔或者 Mylyn FAQ(參閱 參考資料 小節),對連接問題進行故障排除。還應注意,有些連接器要求在服務器上進行特殊的設置。

          • 本地任務:用于使用存儲在 Eclipse 工作區的簡單任務的一種特殊的儲存庫。

          • 共享任務:如果您的團隊使用共享任務儲存庫,例如 Bugzilla 服務器,那么可以使用這種儲存庫來與其他人協作完成任務。

          • 項目管理任務:有些連接器,例如 XPlanner,提供用于將任務組織到項目階段和用戶事件中的任務管理功能。

          • bug 和增強報告:這是一種特殊的任務,通常在產品用戶與支持團隊之間共享。Mylyn 提供集成的 bug 報告,以幫助跟蹤與其它任務一起歸檔的 bug 報告。

          要創建一個任務儲存庫,可以打開 Task Repositories 視圖(Window > Show View > Mylyn > Task Repositories),或者使用一個包含它的透視圖,例如 Team Synchronizing 透視圖。打開后,使用視圖的工具欄添加一個新的儲存庫。然后,可以輸入儲存庫憑證和任何其它連接細節,或者從可用模板中選擇一個模板。圖 6 中的 bugs.eclipse.org 儲存庫是在安裝 Mylyn 時自動創建的,這是為了便于報告 Mylyn 和 Eclipse 的 bug 和特性請求。


          圖 6. 添加 Eclipse.org Bugzilla 儲存庫

          查詢儲存庫

          成功地添加了任務儲存庫之后,就可以通過 Task List 的彈出菜單中的 New Query 動作創建查詢來訪問那個儲存庫上的任務。例如,可以編寫一個查詢來訪問指定到我的電子郵箱地址的所有 Bugzilla 報告,如圖 7 所示:


          圖 7. 創建新的 Bugzilla 查詢

          查詢設置建議

          為了支持各種不同的組織樣式,Mylyn 的 Task List 可以靈活地設置和使用類別和查詢。例如,如果您的團隊對于管理重復任務和使用里程碑(milestone)標識每個 Bugzilla 報告很謹慎,那么可以設置與這些里程碑對應的查詢,并使用這些查詢來跟蹤項目的進度。但是,根據我與 Mylyn 團隊和其他 Mylyn 采用者的合作經驗,我建議,如果與其他人之間有很多合作,則根據人員范圍界設置查詢,如果主要是完成分配給自己的任務,則根據組件或產品范圍設置查詢。然后,可以使用 Task List 的 Go Into 動作(位于所有任務容器的彈出菜單中)聚焦被分配的任務或與一個特定組件相關的任務。可以使用 Task Search (Ctrl+H) 功能隨時更新里程碑的進度。具體而言,建議執行如下操作:

          • 為所有分配給您的任務設置一個查詢(例如 “All Mine”)。如果有不同的產品或組件范圍,則可以將這個查詢拆分成多個查詢。通常,一個查詢應該就足夠了,它可以幫助您更容易地確定下一步執行什么,因為 Task List 會按照處理順序排列任務。

          • 如果與其他人密切協作,那么可以為他們中的每個人設置一個查詢。然后,Mylyn 的傳入(incoming)通知可以幫助您對此進行響應,并排列與這些個體進行討論的優先次序。

          • 為已經報告、注釋或者用 CC 處理過的(例如 “Products - Eclipse” 和 “Products - Mozilla”)所有 bug 設置另一個查詢。對于感興趣的每個任務儲存庫都執行這個操作,以確保可以收到您感興趣的每個報告的更改通知。通過排除為自己的任務設置的查詢中所包括的組件,可以避免查詢之間的重復任務。

          • 如果對 bug 進行歸類,那么可以為 bug 收件箱帳戶設置一個單獨的查詢,以便監視即將來臨的報告。

          雖然設置查詢時通常只包括打開的/未決的/未完成的任務,但是我強烈建議包括所有任務。默認情況下 Mylyn 會過濾完成的任務,并且使這些任務很容易通過 Task List 頂端的 Find: 框來檢索。如果查詢只包括未完成的任務,那么一旦這些任務完成之后,就不再會在查詢下顯示。注意,我的用于所有 Mylyn 任務的查詢目前返回 1,420 個元素,其中大多數已經完成。通常,這樣大的結果集不會造成問題。

          查詢中不顯示的已經完成的任務在 Archive 中仍然會顯示,那里包含所有您工作過的任務。

          為調度信息(例如里程碑)設置查詢會很有用,但是這也會造成 Task List 中充塞著彼此重復的查詢。考慮使用 Search 功能來查詢像目標里程碑之類的內容。通常,查詢對于設置 Task List,使之盡可能簡明地顯示正在處理的和與人協作的任務很有用,而搜索可以快速給出 “在這個里程碑之后應執行什么操作” 之類問題的答案。

          設置參數并單擊 Finish 之后,Task List 中的查詢容器被相應的任務填充。在查詢執行同步時,Mylyn 在后臺檢索任務的信息。下載完任務信息之后,可以立即打開任務,因為不需要往返服務器來檢索任務的信息。要更改查詢的參數,可以重新打開它(通過在 Task List 中雙擊查詢)并編輯所選擇的值。雖然對于不同的連接器查詢參數的設置不盡相同,但是查詢參數設置都是用于反映連接器的 Web UI 所提供的功能。有關創建查詢的詳細信息,請參閱連接器文檔或服務器 Web UI 文檔。

          默認情況下,查詢每隔 20 分鐘自動進行同步,并顯示與查詢參數匹配的新任務。(可以通過 Preferences > Mylyn > Task List 更改這個時間。)當與 Web 斷開連接時,不需要使 Mylyn 處于離線模式。但是,如果想關閉同步 —— 例如,假設您要長時間離線工作,或者直接根據所使用的帶寬付費 —— 那么可以這么做,方法是在 Task List 視圖菜單中切換 Synchronize Automatically 設置。然后,可以通過工具欄上的按鈕手動地同步所有任務和查詢,或者通過彈出菜單或快捷鍵 F5 單獨同步每個任務或查詢。必要時,可以從彈出菜單中將一個任務儲存庫置于離線模式。當儲存庫不可用,需要長時間離線工作時,這樣做很有用。

          對于可以通過 Web 瀏覽器訪問的連接器,Mylyn 集成了用戶已熟知的 Web UI,如果 Mylyn 的富編輯功能不支持某些操作,您可能需要依賴于這個 Web UI。可以右鍵單擊任何任務或查詢,以便用 Web 瀏覽器打開它(Eclipse 瀏覽器設置位于 Window > Preferences > General > Web Browser 中),具有關聯 URL 的所有儲存庫任務都可以通過 Task Editor 的工具欄或者任務的彈出菜單上的 Open with Browser 動作打開。還可以用瀏覽器打開 Bugzilla 查詢(例如,假設您想將它粘帖到一封電子郵件中,以便使用 Bugzilla Web UI 對它進行改進)。然后,可以按照 New Query 向導的提示粘帖它,從而使用更新后的 URL 在 Task List 中創建一個新的查詢。

          搜索任務

          搜索任務類似于創建查詢,但是它不將結果存儲在 Task List 中。使用 Ctrl+H 或 Search 菜單(Search > Task Search),選擇感興趣的儲存庫,輸入搜索條件,然后單擊 Search。搜索視圖隨之打開,在該視圖中可以打開與搜索匹配的任務,如圖 8 所示。要改進搜索,只需再次打開 Search 對話框,以恢復之前的搜索條件。可以在 Search 視圖中將搜索結果從彈出菜單轉移到一個查詢中。


          圖 8. 任務搜索和結果

          創建儲存庫任務

          要創建新的儲存庫任務,可以在 Task List 工具欄或 File > New 菜單中選擇相應的動作,如果有多個儲存庫,那么要選擇一個儲存庫。然后,連接器會要求輸入任務的其它屬性,例如它的 Bugzilla 組件。然后會打開一個新的編輯器,在其中可以填入任務的屬性和描述。有些屬性會自動選好,例如,如果使用 Bugzilla 連接器,則會自動選擇操作系統。

          技巧:右鍵單擊一個查詢節點

          作為一種快捷方式,可以在一個查詢節點上單擊右鍵,這樣可以自動選擇與查詢對應的儲存庫和產品。通常,當調用需要輸入的功能時,Mylyn 會嘗試使用您的選擇來預先選定相關輸入。

          您可能要創建的另一種任務是有關 Mylyn 或使用的另一個基于 Eclipse 的工具的 bug 報告。通過自動添加 bugs.eclipse.org 儲存庫,以及添加可以從 Eclipse 的 Error Log 視圖和 Help 菜單中訪問的用于自動報告 bug 的動作,制作 bug 報告很容易。如果要查看想要進行報告的錯誤事件,只需右鍵單擊它,選擇 Report as Bug。然后會打開 New Repository Task 編輯器,其中包括所有相關信息,例如棧跟蹤。

          由于這種通過一次單擊生成 bug 報告的方式可能導致大量重復的 bug 歸檔文件,因此 Mylyn 還提供自動的重復檢測。Search for Duplicates 按鈕使用報告的 Description 中的自動插入式或手動粘帖式棧跟蹤來查詢相應的儲存庫,以發現潛在的重復內容。重復檢測的結果顯示在 Search 視圖中,如圖 9 所示。如果發現匹配,可以打開它,作出注釋,而不是創建新的 bug 報告。


          圖 9. 集成的 bug 報告和重復檢測

          編輯和同步

          在打開一個 Bugzilla 任務時,您將注意到在編輯器上有一個 Bugzilla 和一個 Planning 選項卡。儲存庫連接器提供一個富編輯器,例如這個 Bugzilla 選項卡,用于編輯在儲存庫上共享的任務信息。而且,Planning 選項卡提供使用本地任務創建個人注解的相同功能。

          當查看 bug 上的注釋時,可以使用 Outline 視圖在注釋之間導航,但是未讀注釋的自動折疊意味著可以在 Task Editor 中進行大多數導航操作。對其它任務和其它結構化元素(例如 Java 棧跟蹤元素)的引用被設置為超鏈接(參見圖 10 和 圖 1)。超鏈接的語法特定于連接器。通常,在任務編輯器左上角出現的引用可用于對 bug 進行超鏈接。連接器的 Web UI 支持的其它語法也受支持。始終支持 task <key> 語法。


          圖 10. 儲存庫任務編輯器和內容輔助

          如果連接器支持離線編輯,則 Mylyn 維護打開的任何任務的一個緩存副本,并且每當相應的查詢或任務進行同步時,對這個副本進行更新。如果作出任何更改,例如設置一個屬性或者編制部分注釋,那么可以通過按下 Ctrl+S 在本地保存更改。這將導致任務上出現一個 outgoing 指示符。當準備好提交任務時,單擊編輯器底端的 Submit

          如果一個任務之前已經被打開,那么再次打開它時將檢索離線副本,并開始在后臺對任務執行同步。這樣可以確保不需要等待往返服務器就可以開始讀取和處理任務。如果發現新的更改,或者當編輯器打開時他人更改了任務,那么編輯器的標題欄會顯示出來,并提示刷新編輯器。

          技巧:整理電子郵箱收件箱

          由于使用了 Mylyn 的后臺同步功能,不需要依賴電子郵件通知就能知道 Bugzilla 中最新的 bug 報告更改。只需設置可捕捉您感興趣的所有任務(例如復制的每個報告)的查詢,就可以收到簡明的進入式箭頭形式的通知,這種通知不會使您的收件箱超載。通過選擇 Window > Preferences > Mylyn > Tasks 設置同步調度。通過右鍵單擊樹中的節點并選擇 Synchronize,可以手動地同步查詢和任務。

          如果有其他人更改了儲存庫中的任務,例如添加一條新的注釋,那么在屏幕的右下角會彈出一個窗口顯示更改,而任務則使用進入式 箭頭標記顯示。如果打開任務,則被更改的部分會高亮顯示,被添加的新的注釋自動展開。如果本地副本和服務器上的副本都被更改,那么可以看到一個紅色的沖突指示符,并提示解決沖突。如果看到沖突,那么應該單擊任務編輯器的 Synchronize 按鈕,并且提交您的更改,或者通過彈出菜單的 Mark > Clear Outgoing 放棄您的更改,以確保任務被同步。

          附件

          可以用任務編輯器的 Attachments 區的 Add... 按鈕將附件添加到儲存庫中。還可以從工作區或窗口管理器將文件或文本直接拖到編輯器的 Attachments 區。添加附件時會出現一個向導,通過該向導可以選擇根據剪切板內容、計算機中的一個文件還是從 Eclipse 工作區中創建附件。通過 Attachments 表,可以用 Web 瀏覽器或編輯器打開附件,并通過上下文菜單執行特定的動作,例如保存或復制到剪切板。





          回頁首


          任務管理和個人計劃

          現在,我將討論如何使 Mylyn 成為您的一個單獨的任務列表和收件箱,以管理工作周內所有相關的任務。對于很多開發人員,要在一個給定的工作周內跟蹤和調度的任務的范圍包括:

          • 為您正在開發的產品解決產品缺陷并分析特性
          • 由您的同事完成的任務,這些同事包括您的搭檔、上司或屬下
          • 針對您所使用的框架、API 和軟件的 bug 報告
          • 個人待辦事項和提醒

          將所有任務集成到一個視圖中,可以使它們更易于管理,因為只需查看一個位置就知道接下來該做什么。為了進一步簡化任務管理,Mylyn 隱式包含了一些公認的任務管理最佳實踐,例如調度和延遲任務,并且還包括了 XP 式開發的即時性和適應性。Mylyn 的任務管理工具使您可以輕松地適應一周內的任務變化需求,而不會丟失對長期優先級的跟蹤。除了將工作周的控制權交到您手上之外,Mylyn 通過簡化使用共享的儲存庫屬性(例如里程碑和優先級),在 Eclipse 中執行所有操作,從而幫助您更好地集成團隊實踐。

          預定日期與到期日期

          Mylyn 提供兩種用于調度的日期:預定日期(scheduled date)到期日期(due date)。(您可能已經注意到,任務編輯器中顯示了這兩種日期)。預定日期可以幫助管理和優先排列自己的工作周,而到期日期則對應于最后期限之類的固定事件。

          任務的預定日期是根據個人日程安排的可變日期,可以根據優先級的變化而推遲。它定義您計劃開始處理任務的時間。當任務到達預定日期時,任務變成紅色,以指示您應該開始處理它或者考慮推遲它的起始日期。定在今天執行的任務會變成藍色而不是紅色,并且在工作日的最后進行安排,避免重新安排整個工作日的任務。

          相反,任務的到期日期是固定的日期:任務必須完成的日期。這個日期常常與外部的約束(例如最后期限)相關。如果使用共享的任務儲存庫或者日歷工具,到期日期會進行同步,以便使團隊的其它成員可見。例如,如果 Bugzilla 的時間跟蹤功能被啟用,那么可以通過任務編輯器的 Attributes 區中的 Time Tracking 區設置 Bugzilla 任務的到期日期,團隊中的其他成員可以看到這個日期,還可以編輯它。到期日期的臨近是通過任務圖標上的一個小鐘指示的,這個小鐘在到期日期之前為藍色,在到期日期之后為紅色。

          聚焦工作周任務

          由于 Mylyn 使得創建和共享任務變得如此容易,似乎您一旦開始使用它,Task List 中很快就會裝滿數十個甚至數千個任務。對于 Mylyn 的早期用戶,包括我在內,確實會發生這樣的事情。也許是因為我是第一批用戶,目前我的 Task List 包含超過 5,000 個任務,其中有超過 1,000 個任務尚未完成。乍一看來,這似乎與 Mylyn 減少而不是增加信息超載的目標有沖突。為了解決這個問題,Mylyn 提供了改進的功能來調度和推遲任務,使用這些信息讓 Task List 只顯示與您的工作周有關的任務。新創建的任務定在創建日調度,并且可以通過任務編輯器的 Planning 區或上下文菜單快速地將任務推遲到靠后的一個時間或日期。

          當任務到達預定日期之后,任務和它的容器(例如一個查詢)變成紅色,桌面上顯示一個彈出窗口作為提醒。(和其它 Mylyn 顏色和字體設置一樣,可以用 Window > Preferences > General > Appearance > Colors and Fonts 將任務設置為高亮顯示)。當任務被推遲到將來的日期執行時,Window > Mylyn > Tasks > Scheduling 中設置的工作日起始時間決定任務被調度的時間。通過更改工作日的結束時間,可以確定被定為那天調度的任務在什么時間到期。

          Mylyn 任務管理模型的關鍵是基于興趣的分類和過濾,您可以通過 Task List 工具欄上的 Focus on Workweek 動作啟用該功能。聚焦模式導致只有與工作周相關的任務才可以顯示。這包括以下任務:

          • 預定在本周執行或者超過預定日期的任務
          • 有新的更改和注釋的儲存庫任務

          如圖 11 所示,任務被著色和分類,以幫助您快速確定下一步任務:

          • 逾期任務為紅色,總是顯示在列表的頂部。
          • 調度為在今天執行的任務以藍色突出顯示。
          • 調度為在本周靠后時間執行的任務為黑色。
          • 今天完成的任務為綠色。
          • 之前完成的任務為灰色。

          圖 11. 調度任務

          每天執行預定的任務

          通過輕松地調度和推遲任務,并將視圖限制為顯示給定工作周內預定的任務,Mylyn 幫助您全盤考慮優先級。為了突出工作日,Mylyn 用藍色高亮顯示所有在當天調度的任務。由于在聚焦模式下工作時不大可能看到滾動條,因而 Task List 保持展開,所以您總是知道應該考慮對什么作出響應或者下一步執行什么。

          考慮使用 Mylyn 的聚焦功能管理工作周的示例流程:

          1. 在工作周的開始,任務列表包含很多紅色的任務,這些任務是之前定在本周執行或者推遲到本周執行的。

          2. 紅色不是令人愉快的顏色,所以您使用上下文菜單將每個任務安排在今天或本周靠后某一天執行。當所有紅色都消失之后(定在今天執行的任務變成了藍色,定在本周靠后時間執行的任務變成黑色),您可以查看這周的日程安排,確認它符合實際,必要時推遲或委托他人執行任務。

          3. 當 Task List 被激活時,可以將鼠標懸停在 Task List 頂端附近的綠色進度條上(如圖 11 所示),以檢查是否為工作周安排了太多的任務。如果有些任務要比其它任務花費更長的時間,那么可以打開任務的 Planning 區,調整預計時間,這樣可以相應地調整工作周進度條。

          4. 在工作日的最后,所有已經完成的任務變成了令人愉快的綠色。然后,您可以檢查剩下的藍色或紅色的任務,將它們推遲到明天或更靠后的日期。

          5. 在第二天的開始,安排在這一天的所有任務都為藍色,而所有逾期的任務為紅色。在安排工作日時,您會將某些任務推遲到本周靠后的日期,因此可見的藍色任務表示您可以當天完成的所有任務。任務完成后變為綠色。

          6. 在工作周結束時,滾動條應該會消失,列表上的大多數任務應該都變成綠色。

          由于任務調度是任務管理最重要的部分,Mylyn 在 Task List 中提供了 Scheduled 表示,它根據到期日期而不是類別和查詢來組織任務。在聚焦模式下,這種表示會顯示這一周每天必須完成的所有任務。這對于平衡整周的工作負載很有用。它的另一個優點是當您使用共享任務時可以避免分心,因為不會顯示有新注釋但是未調度的任務。要檢查新到來的任務,需要切換回 Categorized 表示,重新確定優先次序,然后再重新審視時間表。當不在聚焦模式下,可以使用 scheduled 表示來平衡未來工作周的任務負載 —— 例如,通過將鼠標懸停在 Next Week 容器上檢查有多少任務被推遲。

          創建工作集

          到目前為止,本文描述的所有功能都是將 Task List 當作一個統一的相關任務的集合,您可以靈活地調度這些任務。此外,可以用查詢來組織任務,還可以進一步嵌套子任務,前提是儲存庫連接器提供這種支持(例如 Bugzilla 連接器就提供這種支持;可以從 Task List 的視圖菜單中啟用該選項)。但是,由于 Mylyn 2.0 對工作集(working sets)的支持,還可以對由完全不相關的任務組成的集合進行處理。假設您在開發一個產品和兩個不同的開源項目。您可能想把工作日的大多數時間花在最重要的產品上,但是還想跟進其它項目。Mylyn 的工作集使您可以組織與一個特定產品或項目相關的查詢和類別,并提供限定在 Eclipse 工作區中顯示的文件和其它資源的數量的功能。

          技巧:顯示所有元素

          可以從工作集切換器下拉列表中選擇 Show All 來查看所有元素,就好像沒有設置任何工作集一樣。這對于定期獲得 Task List 的整體概況非常有用。

          使用 Task List 頂端的切換條,創建包括相關查詢、類別和工作區資源的工作集(參見圖 12)。只要 Eclipse 視圖被設置為顯示 Window Working Set(默認設置),切換 Mylyn 工作集可導致 Task List 和 Eclipse 都只顯示屬于工作集的任務和項目。例如,如果為一個開源項目設置了一個工作集,并用下拉列表啟用該功能,那么 Eclipse Task List、Package Explorer 和 Problems 視圖都只顯示與那個項目相關的內容。Task List Find 只顯示工作集中的匹配項。甚至可以通過 Search (Ctrl+H) 只查找工作集中的內容,如果工作區較大的話,這樣做很有用。換句話說,整個 Eclipse 只顯示與您創建的工作集相關的東西。工作集可以減少工作區的凌亂,并且可以避免使用多個工作區。在 第 2 部分 中,您將看到 Mylyn 如何進一步利用這種聚焦思想,將 Eclipse 中的可見內容縮小到單個任務。


          圖 12. 編輯和切換工作集

          過濾、分類和搜索

          除了一些自動化功能外,Mylyn 還提供手動分類和過濾功能:

          • 通過視圖菜單中的 Sort by 項,根據 Priority 之類的屬性分類。
          • 使用視圖菜單中的 Filter Priority Lower Than 項,根據優先級進行過濾。
          • 通過視圖菜單過濾所有 Archive 類別和完成的任務(建議啟用該功能,在聚焦模式下會自動啟用)。
          • 通過單擊 Go Into 過濾特定類別或查詢中的任務(在聚焦模式下同樣適用)。
          • 通過拖放操作手動分類;將儲存庫任務分類到各類別中。

          圖 13 顯示了可用的手動 Task List 過濾器:


          圖 13. 手動 Task List 過濾器

          手動搜索和過濾會增加重復切換不同過濾器和分類器的負擔。對于默認模式下的操作不建議使用,但是它們對于計劃和組織任務的確有用。注意,當 Focus on Workweek 活動時,手動過濾和分類設置被禁用;可以通過關閉聚焦模式來恢復它們。

          當組織 Task List 時,可以通過 Move to Category 上下文菜單或者選擇上下文菜單中的 Remove from Category 移動任何任務。除非通過上下文菜單顯式地刪除任務,否則即使任務已經從查詢中消失或者從類別中刪除,仍然會顯示在 Task List 中。被刪除的任務可以在 Archive 容器中找到。可以通過 Task List 頂端的 Find 框方便地搜索 Archive 或其它地方的舊任務。單擊它右邊的 Clear 按鈕或按下 Esc 鍵可以恢復之前可見的任務。Archive 容器對于查看之前已解決且被注釋的任務也很有用,因為創建查詢的一種通用方法是排除已解決任務(但是請參閱 查詢設置建議,了解有關這一做法的注意事項)。

          備份和導出

          技巧:共享任務數據

          當使用多個工作區時,可以不通過 Import 獲得任務,而是通過選擇 Window > Preferences > Mylyn > Tasks,將任務數據目錄設置為一個共享的位置。如果將這個位置放在一個網絡驅動器上,那么它應該可以通過一個快速的連接進行訪問,因為它將被頻繁訪問。這是一個高級選項,只建議那些手動管理其工作區位置的用戶使用。

          聚焦模式使用得越頻繁,您的 Task List 就變得越有價值。默認情況下,Task List 的自動備份已被啟用,可以通過 Window > Preferences > Mylyn > Tasks 設置備份目錄。 要從備份恢復 Task List,可以選擇相應的單選按鈕,并選擇一個備份快照。默認情況下,Mylyn 每天為所有任務數據制作快照,并保留 30 天的備份(通過 Preferences > Tasks 配置)。可以通過單擊 File > Export 導出任務。





          回頁首


          第 1 部分結束語

          在這個 Mylyn 使用指南的前半部分中,我介紹了 Mylyn 的任務管理功能。我向您展示了這些功能如何支持個性化的任務管理,以及它們如何將 Bugzilla 之類的基于 Web 的問題跟蹤器完全集成到 Eclipse 中。我還對 Mylyn 管理的典型的工作周或工作日作了概述,并展示如何管理 Task List。

          無論您感興趣的任務儲存庫有多少,Task List 視圖只提供一個單獨的位置來從中管理所有工作。這使您可以將工作日中的更多時間花在高效的 Eclipse 中,而不必頻繁切換到外部的瀏覽器窗口。這還意味著您可以獲得基于 Web 的問題跟蹤器的富客戶機體驗,例如拖放附件和離線支持。

          分享這篇文章……

          digg 提交到 Digg
          del.icio.us 發布到 del.icio.us
          Slashdot 提交到 Slashdot!

          使用 Mylyn 的最精彩部分即將出現。一旦任務顯式呈現為工作的組成部分,Mylyn 就開始自動管理它們的上下文。本文的第 2 部分介紹 Mylyn 的上下文管理功能,并展示這些功能如何減少信息超載,以及如何使多任務處理簡單到只需一次單擊即可完成。現在就請閱讀 第 2 部分

          posted on 2008-06-22 18:51 CONAN 閱讀(647) 評論(0)  編輯  收藏 所屬分類: EclipseMylyn
          主站蜘蛛池模板: 新竹市| 图们市| 萍乡市| 苏尼特左旗| 南阳市| 孝昌县| 崇文区| 资兴市| 宜宾县| 长泰县| 临沂市| 乡城县| 东乌珠穆沁旗| 宜城市| 方山县| 苏尼特左旗| 寿宁县| 宁明县| 汶上县| 武夷山市| 绥滨县| 东乡| 木里| 井研县| 凤阳县| 漾濞| 民权县| 寿阳县| 南丹县| 卢龙县| 蕉岭县| 拜泉县| 若尔盖县| 张家口市| 肥城市| 泰安市| 渑池县| 威信县| 华阴市| 类乌齐县| 徐水县|