標籤:

Mylyn 2.0,第 2 部分: 自動上下文管理

Mylyn 2.0,第 2 部分: 自動上下文管理

解決信息超載並簡化多任務處理

Mik Kersten, Mylyn 項目主管;總裁 & CTO, Tasktop Technologies

簡介:現在,在 2.0 版中,Mylyn(以前稱為 Mylar)通過將任務無縫集成到 Eclipse 中並在工作時自動管理任務上下文,提高了效率。Mylyn 項目主管 Mik Kersten 更新了他撰寫的分兩部分的 Mylyn 使用指南。第 1 部分介紹 Mylyn 的任務管理功能和它與 Bugzilla 之類的儲存庫的集成。本文為第 2 部分,解釋當在 Eclipse 中處理大型應用程序時,Mylyn 的上下文管理功能如何簡化多任務處理以及如何減少信息超載。

標記本文!

發布日期:2007 年 8 月 28 日 級別:中級 訪問情況 :6715 次瀏覽 評論:0(查看|添加評論 - 登錄)

平均分 (5個評分)為本文評分

在 本文的前半部分中,我解釋了 Mylyn 的任務管理功能如何輕鬆地聚焦與給定工作日或工作周相關的任務。一旦任務成為您的 Eclipse 體驗中的集成部分,您很可能會注意到許多重複性行為都是以所處理的任務的 上下文為中心的。多任務處理是當今知識工作中很普遍的一部分,它常常需要創建和重新創建與當前任務相關的上下文。任務的上下文是指在處理任務時需要引用的所有文件、搜索結果和其它相關信息。例如,在編程時,可能只想看到與正在修復的 bug 相關的 Java?元素。當完成修復時,您可能希望以獨立於當天處理的其它任務的方式提交這些更改。或者,希望通過只運行與對任務作出的更改相關的測試來節省時間。

什麼使 Mylyn 變得 「靈巧」 呢

儘管 Mylar 經常被稱作靈巧的用戶界面,但它本身並沒有任何靈巧之處:它只不過是利用了您的智慧。Mylyn 通過利用這樣一個事實做到這點:與每個任務涉及的細節相比,組成工作的各個部分(即您所處理的任務)更加容易檢索。它以一種可預測的方式自動捕捉您所處理的所有細節,使您無需再經歷重新檢索或重新查找的繁瑣過程。Mylar 上下文是您同系統元素及關係進行交互的一種可預測的投影,它並沒有使用難於預測和理解的知識型模型。這種模型十分靈活,正逐漸被擴展到廣泛的知識工作工具中。請參閱 參考資料小節,了解更多關於 Mylyn 內部原理和架構的信息,以及為項目擴展 Mylyn 的更多細節。

正如 Mylyn 可以幫助您聚焦工作周所包含的任務一樣,它可以使 Eclipse 工作區聚焦與當前任務相關的工件上。安裝 Mylyn 的 Task-Focused UI 之後,只需指出活動的任務,您所使用的所有文件都將自動添加到該任務的上下文中。管理上下文是為了精確地表示出對所從事的各種工件的聚焦程度,即使對長期運行的任務也是如此。當切換任務時,上下文將被保存,這使您可以通過一次單擊進行多任務處理,並且輕鬆地與其他人共享特定於任務的知識。

本文解釋了 Mylar 如何無縫地將其置於 Eclipse UI 之上來凸現編程任務的上下文。本文首先解釋 Mylyn 管理上下文的機制,然後介紹興趣修飾、視圖過濾、編輯器管理和上下文驅動的單元測試套件等 UI 工具。在文章的最後,展示了如何綜合運用 Mylar 的任務管理和上下文管理來協助團隊協作。

圖 1 中的編號區域顯示了 Mylyn 的一些上下文管理功能:

  1. 單擊 Focus on Active Task按鈕可以使 Eclipse Package Explorer 只顯示活動任務的上下文中的元素。
  2. 可以通過 Task List 切換活動任務。
  3. 切換後,Eclipse 視圖和編輯器將聚焦於新激活的任務的上下文。
  4. 更改集將被自動管理,以反映任務上下文中的更改。
  5. 摺疊功能和上下文可以幫助視圖聚焦相關的元素。

圖 1. 將 Eclipse 聚焦於任務上下文

單擊 這裡查看全圖。

以任務為中心的編程

設想一下,假設您正在將更改封裝到新功能里,來應對迫近的代碼凍結期限。在工作中,創建此功能時,構建了關於所有修改過的類和方法以及所有訪問過的 API 的頗有價值的知識。由於在使用 Mylar,這個知識會自動地在任務上下文中獲取到。任務要完成時,卻出現了一個嚴重的 bug,需要立即給予注意。

您通過單擊激活 bug 報告,並開始調查該問題。在 Mylar 的富任務編輯器中瀏覽該 bug 加了超鏈接的堆棧跟蹤,新的任務上下文被探查和診斷結果所填充。當單擊 Mylyn 的自動化 Context Test Suite(該套件運行與已創建的任務上下文結構相關的單元測試)時,您發現這個 bug 位於一個同事的代碼中,而不在您的代碼中。由於 Mylyn 提供了對任務的修改歷史的鏈接,您可以立即查看該同事的任務,它對應於出現問題的更改。通過再一次單擊,將該 bug 再分配給同事並共享由您的診斷得出的任務上下文。完成這些都未離開 Eclipse,所以通過單擊 Task List 的 Back按鈕可以立即回到之前任務的上下文。同時,您的同事也恰在您停止的地方拾起該 bug 報告。這只是程序員使用 Task-Focused UI 輕鬆工作和協作的場景之一。

支持的工具

類似於需要使用 連接器與任務儲存庫集成,Mylyn 使用 橋接器(bridge)將它的上下文模型與特定於域的工具集成。Mylyn 附帶了用於 Eclipse SDK 的一組核心的橋接器,其中包括對 Java 代碼、JUnit、Plug-in Development Environment (PDE)、Ant 和純文本文件的支持。為了獲得完全集成的體驗,Mylyn 需要一個用於所有要使用的工具和語言(例如 Ruby 和 JSP)的橋接器。如果缺少特定於您所使用的編程語言或其它文件類型的橋接器,Mylyn 仍然會提供文件級別的聚焦,但是不能監視您與文件內部結構的交互(例如編輯特定的聲明)。這意味著在 Package Explorer 中只能看到感興趣的文件,但是不能執行細粒度的聲明過濾(例如在 Outline 視圖中)以及在編輯器中自動摺疊聲明,也不具備諸如任務 Context Test Suites 等高級特性。

為了提供 自動化更改集管理,Mylyn 還需要對版本控制集成進行某種擴展。Mylyn 附帶了對 CVS 的支持,但是對 Subversion 等其它版本控制系統的支持則需要單獨安裝。請查看 參考資料中的 Mylyn Extensions 清單,下載用於 Mylyn 的額外的橋接器和版本控制集成。

接下來的小節展示如何利用 Mylyn 的上下文管理功能以任務為中心的方式工作。雖然這裡的例子基於 Java 開發,但其中的概念和大多數特性同樣適用於可能使用的任何基於文件的工件。(請參閱 支持的工具,了解更多細節。)

興趣等級模型

Mylyn 中的任務上下文管理基於這樣的思想:開發人員與系統的交互可以轉換為一個 興趣等級(degree-of-interest)模型,在該模型中,系統中的每個元素都根據其與手頭任務的興趣等級來衡量其權重。這種相關度加權形成了與任務相關的所有元素的上下文。然後,就可以通過突出最重要的元素、過濾無關緊要的元素以及允許在感興趣的元素上執行操作(例如,只提交相關更改)來使任務上下文聚焦於 UI。任務上下文是在您工作時以一種可預測的方式構建的:當您激活一個任務時,您選擇或編輯的每個元素 —— 例如文件或 Java 方法 —— 就成為任務上下文的一部分。和元素交互越多,該元素相對於任務的興趣等級就越高。如果一個元素的興趣級別足夠高,那麼它就成為一個 里程碑(landmark),這是一個隱式創建的書籤。每一次交互也導致組成任務的所有元素已積累的興趣逐漸衰減,這樣興趣元素的集合就會同當前的興趣相匹配,而不會無限制的擴張下去。

使任務上下文模型簡單易用的關鍵特徵是它具有可預測性並且一目了然:您期望看到的內容就顯示在眼前,每當您開始處理一個元素時,就立即可以看到該元素填充了上下文。還可以直接操縱元素的興趣等級,或者使元素變得不相關,或者顯式地將元素標記為里程碑。換句話說,您已經熟悉的 bookmark/starring/tagging UI 沒有任何損失。但是,一旦您習慣使用 Mylyn,您很可能會發現自己對那些手動管理任務上下文的機制的依賴性大大減少。

興趣修飾和過濾

Mylyn 的上下文管理功能使用傳統的 Eclipse 視圖以一種新的方式來凸現信息。您只需通過一次單擊激活任務,就可以使 Eclipse UI 聚焦於那個任務。然後,您與之交互的每個元素都成為任務上下文的一部分。Mylar 興趣修飾器隨後使用字體著色來高亮顯示每個元素從交互中積累的興趣等級。非興趣元素以灰色顯示,興趣元素以黑色顯示,里程碑為粗體。

儘管只高亮顯示在減少信息過載方面有其局限性,但它還是一直應用於所有能看到諸如 Java 成員和文件等元素的視圖中。這便於您在查看一長串的元素時快速挑選任務上下文中的元素。例如,當查看搜索結果時,可以立即發現最感興趣的元素,因為它們以粗體修飾為里程碑形式(參見 圖 2)。

僅僅使用修飾還不足以減少包含幾十萬個文件的大型工作區中的信息超載。一些結構化視圖,例如 Eclipse 的 Project Explorer,在瀏覽大型層次結構內容方面已變得令人難以置信的高效。超載問題與那些視圖無關,而應該歸因於開發人員使用的巨大的信息系統並不匹配與任何給定編程任務相關的相對較少的信息。對於這種不匹配,最明顯的表現是,大量時間浪費在反覆滾動以及展開 / 摺疊龐大的樹視圖以查找完成工作所需的信息。

技巧:不過濾子節點

為了減少需要關閉聚焦模式的次數,Mylyn 提供了 Alt+Click 機制,使您可以在樹視圖中暫時不過濾一個節點的子節點。例如,為了選擇一個不可見的方法,可以按住 Alt 鍵並單擊類,並選擇那個方法,以便將它添加到任務上下文中。如果在視圖中的空白處按住 Alt 並單擊滑鼠,則會顯示所有的根節點(例如項目)。如果繼續按住 Alt 鍵,可以快速地從一個項目節點導航到感興趣的方法。

Mylyn 的目標是消除所有不需要的滾動和單擊操作。為此, Task-Focused UI 提供基於興趣的過濾和結構化視圖管理。通過 Focus on Active Task按鈕激活後,這些功能可以過濾掉所有不感興趣的元素,從而將相應的視圖聚焦於活動任務的上下文。例如,聚焦模式確保 Package Explorer 只顯示您正在處理的內容:屬於任務的一部分的所有源文件、庫文件和方法。除了過濾外,當應用聚焦時,Mylyn 還自動維護樹視圖的展開狀態,所以您不需要手動地展開和摺疊樹節點就能看到感興趣的元素。

開始在視圖上使用聚焦模式後,您將注意到興趣模型如何隨著工作而演進。一個元素的被選中次數越多,元素的興趣等級就越高,直到它變為粗體的里程碑。低興趣的元素(如只選過一次的搜索命中結果)將在興趣等級中衰減並從過濾過的視圖中消失,這確保該視圖不會被非興趣元素所脹滿。由於任務上下文在一種可預見的模式下被積極地管理,上下文只包括了有興趣等級的元素,即使在長期運行的任務中也是如此。儘管設計 Mylar 的任務上下文模型是為了能夠一直反映當前與任務相關的東西,但也可以手動地增加或減少元素的興趣等級(例如,通過使用元素的上下文菜單行為或使用快捷鍵 Ctrl+Alt+Shift+ 向上 / 向下的箭頭)。

回頁首

以任務為中心的工作區

在深入探討 Mylyn 提供的用於支持 Java 開發的高級集成之前,您需要大體了解在處理純文本文件時,Task-Focused UI 對 Eclipse 工作區的關鍵貢獻。圖 2 演示了這些關鍵概念:

  • 在左側,Project Explorer 視圖聚焦於活動任務,它只顯示感興趣的文件,並高亮顯示里程碑。在這裡,可以使用 Alt+Click 機制臨時顯示一個名為 presentations 的目錄中的所有文件,以便選擇其它感興趣的文件。
  • 在右側,Task List 顯示一個活動任務。當該任務停止活動時,Package Explorer 視圖上的焦點被關閉,當前打開的所有文件被關閉。如果一個新的任務被激活,則重新應用焦點,用於處理那個任務的所有打開的編輯器立即恢復。
  • 圖 2. 以任務為中心的工作區

    本文後面的內容以 Java 開發為例,較詳細地闡述如何以以任務為中心的方式工作。但是,任務激活、視圖聚焦和編輯器管理等概念是使用 Mylyn 的最值得注意的關鍵方面。您只需理解任務激活的概念,就可以開始使用以任務為中心的方式工作。這種小但重要的工作方式的改變會立即使您獲益:當您切換任務時,您在工作中建立起來的所有有價值的上下文不再會丟失。

    技巧: 配置 Task-Focused UI

    默認情況下大多數 Task-Focused UI 特性都是打開的,但是可以通過視圖或編輯器中相應的按鈕或者偏好設置關閉它們。要了解更詳細的信息,請參閱 Mylyn FAQ (見 參考資料)。

    在 Java 開發中使用 Mylyn

    將 Mylyn 用於 Java 編程的開發人員常常使 Package Explorer 處於聚焦模式。因此,默認情況下,當激活一個任務時,Focus on Active Task按鈕自動打開,當將一個任務變為不活動時,該按鈕自動關閉。當該功能打開時,只能看到上下文中的 Java 元素。當選擇一個 Java 類時,不管是通過瀏覽還是通過常用的 Open Type 機制(Ctrl+Shift+T),這種類型就成為上下文的一部分,並顯示在過濾後的 Package Explorer 中。您選擇和編輯的每個方法都被添加到任務上下文中,因此會顯示在 Package Explorer 中。圖 3 顯示聚焦模式下的 Package Explorer。注意 Package Explorer 和 Debug 視圖中 Java 元素的基於興趣的修飾和活動過濾。

    圖 3. 使 Java 元素視圖聚焦於任務上下文

    當視圖在聚焦模式時,Eclipse 用於打開元素的工具運行良好(使用 Ctrl+Shift+T 打開一個類型,使用 Ctrl+Shift+R 打開一項資源,Ctrl+O 用於就地打開大綱,Ctrl+T 用於就地打開層次結構)。為使在 Open Type 對話框中選擇類型更加簡單,感興趣的類型被自動放在列表的最上面。當切換任務時,列表中包含新任務感興趣的類型。當沒有活動任務時,該列表恢復為最近使用類型的 Eclipse 全局列表。

    如果使用 Java Browsing 透視圖,請使用窗口的工具欄按鈕,通過單擊將三種 Java 元素視圖設為聚焦模式,而不必逐個聚焦每個視圖。

    技巧:快速視圖

    如果使用沒有可見導航視圖的透視圖(例如 Debug 視圖),或者將編輯器區域最大化,那麼仍然可以從 Navigate > Quick Context View(快捷鍵為 Ctrl+Shift+Alt+ 右箭頭)導航上下文。和 Quick Outline (Ctrl+O) 等其它快速視圖一樣,這種彈出視圖的優點是允許您輸入,以導航到感興趣的文件或元素。

    自動摺疊和內容輔助排序

    Eclipse 成熟的 Java 編輯器使您可以在編輯器中處理大多數結構導航。此外,Mylyn 還提供了自動摺疊和內容輔助排序,以幫助 Java 編輯器聚焦與當前任務相關的元素。如果打開窗口工具欄中 Mylyn 的 Automatically Fold Uninteresting Elements按鈕,那麼在編輯器中只有感興趣的元素被展開。這可以增加編輯器的信息密度,並且更易於導航大型文件中的聲明,而不必打開 Outline 視圖。當選擇一個元素時,它立即成為任務上下文的一部分,並且被展開。注意,在圖 4 中,大多數元素都是摺疊的,因為它們沒有被選擇或編輯過;同時,活動元素是打開的,左邊的編輯器裝訂線提示它是一個里程碑:

    圖 4. 自動摺疊和內容輔助排序

    與視圖中的過濾相似,Mylyn 還根據興趣等級對 Java 內容輔助建議進行排序。在興趣分隔符下的所有條目都使用 Java Development Tools 的標準排序試探法進行排序。這意味著,只需按幾次向下箭頭鍵就可以選擇感興趣的建議。如果在選擇建議前開始輸入,該列表會恢復為典型排序。還應注意到,在圖 4 中,諸如 getTask()等感興趣的方法在編輯器中也是展開的。公開元素興趣等級的各種機制間的一致性有助於 Focused UI 變得可預見且易於使用。

    自動編輯器和透視圖管理

    Mylar 也使用任務上下文來動態地管理和任務相關的打開編輯器的數目。當文件中的元素從興趣等級中衰減,該編輯器會自動關閉。當停用一個任務時,它所有的編輯器都會關閉,任務激活時重新打開。減少元素的興趣等級會關閉其編輯器,且反之亦然,關閉一個文件也會減少其興趣等級。這可能需要一點時間才能適應,但是這意味著您不再需要自己管理打開的編輯器的狀態,並且打開的編輯器的數量也不至於太多。確保所有打開的編輯器與感興趣的元素相對應,這還使您可以使用 Eclipse 的編輯器導航功能在感興趣的文件之間導航。例如,如果 Package Explorer 之類的導航視圖不可見,可以使用 Ctrl+E 和 Ctrl+F6 方便地在編輯器之間切換。

    同樣,Mylar 也能通過恢復上次完成一項任務時激活的透視圖(通過單擊 Window > Preferences > Mylyn > Context啟用)來管理 Eclipse 的透視圖。當不同的任務對應於 Eclipse 提供的不同視圖(例如,有些任務對應於 Java 開發,有些任務對應於 PHP 開發)時,這一點很有用。當使用 Mylyn 的 Planning 透視圖時,該功能特別管用。如果在沒有活動任務時切換到 Planning 透視圖,那麼當停止要處理的下一個任務時,就會自動切換到那個透視圖。使用 Planning 透視圖可以更容易地發現接下來要處理哪個任務,因為這個透視圖會將任務編輯器和 Task List 的區域最大化。

    使用 Ant、PDE 和其它源文件

    Mylyn 的聚焦功能可以應用於所有在 Eclipse SDK 中顯示上下文的視圖:Package Explorer、Navigator、Project Explorer、Outline、Problems、Tasks、Debug、Packages、Types 和 Members。任何樹視圖的聚焦模式,如 Project Explorer 都添加了興趣修飾、過濾和展開管理。在聚焦模式下,列表視圖,例如 Problems,也會按照興趣等級分類。由於這種通用的支持,即使定製的橋接器不支持您的工具(見 支持的工具),仍然可以將 Mylyn 用於非 Java 項目,例如 PHP 開發。本節簡要地概述如何將 Mylyn 用於使用其它語言和工具的編程。要了解更多信息,請訪問 參考資料中的 Mylyn Extensions 鏈接。

    例如,考慮使用 Ant 和 PDE 開發一個應用程序。在這個場景中,Eclipse 工作區看上去和圖 5 類似,其中有多個視圖被打開,並顯示上下文:

    圖 5. 使通用 IDE 視圖聚焦於任務上下文

    技巧:清理 to-do 標記

    與 Mylyn 的 Task List 視圖相比,Eclipse SDK 的 Tasks 視圖顯示 to-do 標籤等標記,這種標記指示與一個資源有關的本地問題,類似於編譯器警告。與 Mylyn 的任務相比,這些標記的粒度要小得多,因為它們對應於數行源代碼,而一個 Mylyn 任務可能包含多個標記。由於 Tasks 視圖很快會發生超載,因此使用聚焦模式可以很方便地提醒開發人員在提交前清理 to-do 標記。

    注意,圖 5 中的 Project Explorer 視圖只顯示任務上下文中的文件,這裡包括一些圖像和 XML 文件。打開的文件是 build.xml,該文件由數十個 Ant 聲明組成。在 Outline 視圖中,只能看到您正在處理的聲明,而不是許多不感興趣的聲明。Problems 視圖也聚焦於活動任務,只能看到感興趣的東西(如所有的錯誤及警告或任務上下文中其他的元素標記),而不是被數百條無關的警告堆滿而超載。最後,Eclipse Tasks 視圖也處於聚焦模式,因而將只看到與任務上下文相關的標記,而不會看到數百條不會立即去做的 to-do 標記。

    Context Test Suite

    在以任務為中心的方式下編程更易於頻繁運行單元測試。通常來說,單元測試實踐讓您為一個或多個當前正在從事的枯燥測試創建一個新的測試啟動程序。其他的測試方案是:在一個項目上運行所有測試,這會錯過一些相關測試;或運行一整套測試,這很慢。為解決這些問題,Mylar 在任務上下文中自動維護了元素的單元測試套件 —— 稱為 Context Test Suite(見圖 6)—— 並在操作任務時使重複運行測試變得很簡單(用快捷鍵 F11):

    圖 6. Context Test Suites

    要啟用該特性,為 JUnit Plug-in 測試或普通 JUnit 測試創建一個 Context Test Suite。Context Test Suite 被自動更新,以包括當前活動上下文中的所有測試用例。

    回頁首

    將上下文用於協作

    協作性工具都是關於共享信息的,任務上下文能聚焦於該信息而阻止信息超載和分散。開發人員不斷來回發送電子郵件、即時消息及文件,來交換執行日常任務所需的必要消息。儘管 Mylar 仍沒有排除對即時消息或電子郵件的需要,但它能夠通過將它們鎖定在任務周圍來簡化一些協作活動。由於任務定義了清晰、易於理解的工作單元,且任務上下文定義了與工作相關的信息,所以用單擊來共享任務上下文的功能能夠減少協作通信負擔。

    在 第 1 部分中,我演示了 Mylyn 的任務管理如何將基於 Web 的儲存庫(如 Bugzilla)集成起來,從而提供了您期待從電子郵件客戶機中得到的那種協作集成程度和響應程度。這一節則解釋 Mylar 對跟蹤更改集和任務活動的自動支持(聯合了對上下文共享的支持)是如何進一步便利了團隊工作及獲取專門技術的。通常,您可以根據需要以及 Mylar 同源文件及任務存儲庫集成的程度挑選要使用的功能。

    自動化的更改集

    技巧:更改集模式

    Eclipse 有兩種更改集模式,3.2 版中新出現的基於模型的更改集和標準更改集。儘管這些模式實際上很難辨別,但是基於模型的模式較為可取,因為它同時顯示引入和傳出的更改。要了解關於在這兩種模式之間切換的詳細信息,請參閱 Mylyn FAQ(參見 參考資料)。

    更改集是一項用於對資源分組的內置的 Eclipse 工具,可以在 Synchronize 視圖中對其進行操作,以提交、更新或創建補丁。除非在一個靜態的項目中工作,否則手動管理更改集常常得不償失。Mylar 通過自動管理更改集便利了對源存儲庫的操作。一旦激活一項任務,該任務的更改集即被添加,並隨後顯示在 Synchronize 視圖(見圖 7)中。操作該任務時做出的更改被添加到該更改集中。可以使用位於視圖的 Change Set 節點的上下文菜單來覆蓋、提交或創建一個補丁。由團隊成員做出的更改按照任務分組顯示,可以通過右鍵單擊一個引入的更改集來打開相應的任務。如果有了更改,但任務停用,更改集不變,使您可以同時操作多項傳出更改。Mylar 確保在上下文和更改集之間的一對一映射,所以如果將一份文件手動地添加到更改集中(通過 Synchronize 視圖中的上下文菜單),該文件也會被添加到上下文中。當前支持的源存儲庫是 CVS 和 Subversion(包括 Subclipse 和 Subversive)。

    圖 7. 更改集管理並將其映射到任務

    技巧:將項目與任務儲存庫關聯

    為了對文本和 Java 編輯器的引用啟用超鏈接,例如對於 Bugzilla 的 「see bug 123」,或者對於 JIRA 的 「ABC-123」,必須將與資源對應的項目與一個任務儲存庫相關聯。為此,可以右鍵單擊項目,選擇 Properties,然後選擇 Task Repository。每當 Mylyn 解析資源中對任務的引用時,都要使用項目到任務儲存庫之間的這種關聯,所以這種關聯對於 History 或 Team Annotation 超鏈接也是必需的。如果項目是共享的,可以將該設置放入版本控制中。

    儘管一開始效果也許不明顯,Mylar 使用上下文將任務和資源綁到一起的方法將對您工作的方式產生根本性影響。例如,對於 Mylar 項目本身,不需要編寫提交消息,因為它們是由 Mylar 的更改集集成(使用 Window > Preferences > Mylyn > Team頁面編輯用於生成自動提交消息的模板)自動生成的。這使我們能夠通過單擊從 History 視圖導航至與修訂相對應的任務,這節省了跟蹤更改及修訂至原始任務的時間。相反地,這也使得可以通過 CVS 日誌查詢所有針對一個特定任務更改過的文件。這個功能與 Eclipse 用於顯示 Team Annotations 的功能和 Mylyn 的普通超鏈接(見圖 8)相結合,意味著您將大量減少花費在查找與一個更改相關的 bug 或任務上的時間,因為通常只需一次單擊即可完成。(注意,為了在彈出的文本編輯器中顯示超鏈接,必須按下 Ctrl 鍵,如果要將彈出窗口放在最前面,需要按 F2 鍵)。

    圖 8. 超鏈接和團隊注釋

    共享上下文

    任務上下文獲取執行任務時創建的知識。重新激活一個任務會立即將您帶回到該任務的上下文,而不是迫使您恢復與該任務相關的那部分系統。如果半途將任務移交給團隊成員,任務上下文會為他或她提供一個起點。由於上下文是從交互中創建的,而不僅從更改中創建,每個任務上下文都包含了相關信息,如處理該任務時訪問過的 API 以及引用過的文檔。為支持這個及類似的協作場景(如結對編程),上下文能被輕易地共享。可以通過 Task List(如圖 9)中的上下文菜單或通過單擊任務編輯器中相應的複選框來激活上下文共享:

    圖 9. 通過任務附件進行上下文共享

    當使用支持附件的任務存儲庫連接器時,可以將任務上下文附加在 bug 報告中來輕易地實現共享。當獲取一個共享上下文時,可以從所有可用的上下文中選擇(如果當前有多個上下文的話)。例如,在 Mylar 項目中,我們將上下文附在每一個解決了的 bug 報告中,並且要求每一個貢獻的補丁都要附上上下文。這種通過上下文共享專門技術的方法使應用補丁、與團隊成員協作處理 bug 報告、在結對編程會話結束後清理代碼變得更加簡單。所有已解決的 bug 都存儲了一個上下文,這一事實意味著只要 bug 被重新打開或類似的錯誤發生,我們都能立即恢復並使用過去的技術。

    回頁首

    結束語

    性能方面如何?

    Mylyn 的設計確保它的上下文管理功能不影響 Eclipse 的性能。無論您使用的系統大小如何,Mylyn 都可以做到這一點,因為任務上下文只與您所做的少量交互對應,而與您使用的系統的大小沒有關係。Mylyn 對內存或速度的任何明顯影響都被視作一個 bug,都應該作為嚴重問題進行報告。而且,當沒有活動任務時,Mylyn 的任務上下文管理是完全休眠的。要了解關於 Mylyn 性能的更多信息,請參閱 Mylyn FAQ(參見 參考資料)。要打開 Eclipse 的內存監視器,可以使用 Window > Preferences > General > Show Heap Status。

    在這個由兩部分組成的文章中,我介紹了如何用 Mylar 進行以任務為中心的編程。我展示了 Mylar 是如何通過將任務作為 Eclipse 中頭等重要的部分對待而讓您日常的工作變得相當地簡單。我也介紹了 Mylar 如何使用 Eclipse 視圖來幫助您聚焦於手邊的任務,並為個人及團隊的使用凸現這些任務的上下文。

    Mylar 背後的哲學是 少就是多。它將集成的任務管理和自動上下文管理工具結合使用,使您能夠在不丟失上下文的情況下進行多任務處理,並確保您只需要查看感興趣的信息。一個針對於將 Mylar 用於日常工作的業內開發人員所做的現場用戶的研究已經驗證了 Mylar 的任務上下文模型(參見 參考資料)。根據統計,這些用戶的生產率有了顯著的提高。而且,由於進行了數千個 bug/ 增強報告,Mylyn 2.0 很快成熟起來,滿足其快速增長的用戶社區的需要。自從在 2004 年 8 月創建 0.1 原型以來,我一直將 Mylyn 用於我的所有工作。和很多其它 Mylyn 用戶一樣,我已經無法想像還要手動尋找並識別工作中的相關信息的情景了。我完全依賴 Mylyn 來管理工作中的大量以任務為中心的交互和多任務處理。

    如果 Mylar 支持您的任務存儲庫,它能使您的日常工作變得更加簡單、更加有效且更加專註。如果它不支持您的任務存儲庫,您可以試著用它來完成個人任務。不管何種情況,都請使用 Bugzilla 集成來給出回饋並為您願意看到被支持的其他連接器投票。(參見 參考資料)。您的貢獻將幫助我們進一步改進 Mylyn,因為它將持續圍繞嚴密的回饋機制快速發展,該工具本身允許我們通過用戶社區建立這種回饋機制。其他 Mylyn 提交者和我一樣,都期待收到您的回饋。

    致謝

    Mylyn 能獲得成功並且走到現在,很大程度上得益於大量的用戶參與,他 / 她們報告 bug 並貢獻補丁。正是這種協作讓 Mylar 從一個研究原型發展成為了 Eclipse 用戶在日常工作中所依賴的一個重要部分。

    Athen O"Shea、Robert Elves、Gail Murphy 和 Ducky Sherwood 對本文提供了有幫助的回饋。

    參考資料

    學習

  • 您可以參閱本文在 developerWorks 全球站點上的 英文原文。
  • 「Mylyn 2.0,第 1 部分 : 集成的任務管理」(Mik Kersten,developerWorks,2007 年 7 月):Mylyn 的集成任務管理和 bug 跟蹤功能入門。
  • "Using Task Context to Improve Programmer Productivity" (Mik Kersten 和 Gail C. Murphy,FSE 2006):這篇論文描述了 Mylyn 的上下文模型,並給出了證實顯式的任務上下文可以使程序員更高效的實際研究結果。
  • Mylyn FAQ和 User Guide: Mylyn 的用戶文檔。
  • Mylyn 主頁:Mylyn 用戶和開發人員的參考資料和支持。
  • Mylyn Integrator Reference: 關於將 Mylyn 與現有工具集成的指南。
  • Eclipse 新手入門: 了解 Eclipse 平台和 Eclipse 正在進行的項目,包括 Mylyn。
  • Mik"s Blog:訪問作者的網上博客。
  • Java 技術專區:這裡有數百篇關於 Java 編程方方面面的文章。
  • 獲得產品和技術

  • Mylyn Extensions:下載沒有綁定到 Mylyn 中的連接器、橋接器和版本控制支持。
  • Generic Web Repository Connector:解析 HTML 的精簡版的連接器,為沒有富連接器的任務存儲庫提供基本查詢集成。
  • Mylyn 下載:更新站點和受支持的 Eclipse 版本和儲存庫的列表。
  • Eclipse 下載:Eclipse 3.2 和其它下載。
  • 討論

  • Mylyn bugs and votes:提交 Mylar 的 bug 報告及功能需求。在這裡為 Mylar 連接器和橋接器投票。
  • Eclipse Plug-in Central:使用評論表單評價 Mylyn。
  • developerWorks blogs:加入 developerWorks 社區。
  • 關於作者

    Mik Kersten 是 Tasktop Technologies 公司的總裁和 CTO,Eclipse Mylyn 項目主管,AspectJ 項目的提交者,並且是 Eclipse Architecture 委員會的成員。在 Xerox PARC 擔任研究科學家期間,Mik 創建了第一個面向方面的編程工具支持,並實現了面向 JBuilder、JBuilder、NetBeans、Visual Studio 和 Emacs 的 AspectJ 插件。在 British Columbia 大學攻讀計算機科學博士學位期間,他創建了 Mylyn 和 Task-Focused UI 技術。Mik 的興趣是構建一些工具,使在大型系統上的工作變得更加簡單輕鬆。

    推薦閱讀:

    怎樣管理
    從管理到治理
    前知名銀行安全專家為你細細分享信息安全管理經驗
    時間管理100條細則
    運輸車拋灑滴漏現象的管理

    TAG:管理 |