現在,在 2.0 版中,Mylyn(以前稱為 Mylar)通過將任務無縫集成到 Eclipse 中并在工作時自動管理任務上下文,提高了效率。Mylyn 項目主管 Mik Kersten 更新了他撰寫的分兩部分的 Mylyn 使用指南。第 1 部分 介紹 Mylyn 的任務管理功能和它與 Bugzilla 之類的儲存庫的集成。本文為第 2 部分,解釋當在 Eclipse 中處理大型應用程序時,Mylyn 的上下文管理功能如何簡化多任務處理以及如何減少信息超載。
在 本文的前半部分 中,我解釋了 Mylyn 的任務管理功能如何輕松地聚焦與給定工作日或工作周相關的任務。一旦任務成為您的 Eclipse 體驗中的集成部分,您很可能會注意到許多重復性行為都是以所處理的任務的上下文 為中心的。多任務處理是當今知識工作中很普遍的一部分,它常常需要創建和重新創建與當前任務相關的上下文。任務的上下文是指在處理任務時需要引用的所有文件、搜索結果和其它相關信息。例如,在編程時,可能只想看到與正在修復的 bug 相關的 Java™ 元素。當完成修復時,您可能希望以獨立于當天處理的其它任務的方式提交這些更改。或者,希望通過只運行與對任務作出的更改相關的測試來節省時間。
 |
什么使 Mylyn 變得 “靈巧” 呢
盡管 Mylar 經常被稱作靈巧的用戶界面,但它本身并沒有任何靈巧之處:它只不過是利用了您的智慧。Mylyn 通過利用這樣一個事實做到這點:與每個任務涉及的細節相比,組成工作的各個部分(即您所處理的任務)更加容易檢索。它以一種可預測的方式自動捕捉您所處理的所有細節,使您無需再經歷重新檢索或重新查找的繁瑣過程。Mylar 上下文是您同系統元素及關系進行交互的一種可預測的投影,它并沒有使用難于預測和理解的知識型模型。這種模型十分靈活,正逐漸被擴展到廣泛的知識工作工具中。請參閱 參考資料 小節,了解更多關于 Mylyn 內部原理和架構的信息,以及為項目擴展 Mylyn 的更多細節。
|
|
正如 Mylyn 可以幫助您聚焦工作周所包含的任務一樣,它可以使 Eclipse 工作區聚焦與當前任務相關的工件上。安裝 Mylyn 的 Task-Focused UI 之后,只需指出活動的任務,您所使用的所有文件都將自動添加到該任務的上下文中。管理上下文是為了精確地表示出對所從事的各種工件的聚焦程度,即使對長期運行的任務也是如此。當切換任務時,上下文將被保存,這使您可以通過一次單擊進行多任務處理,并且輕松地與其他人共享特定于任務的知識。
本文解釋了 Mylar 如何無縫地將其置于 Eclipse UI 之上來凸現編程任務的上下文。本文首先解釋 Mylyn 管理上下文的機制,然后介紹興趣修飾、視圖過濾、編輯器管理和上下文驅動的單元測試套件等 UI 工具。在文章的最后,展示了如何綜合運用 Mylar 的任務管理和上下文管理來協助團隊協作。
圖 1 中的編號區域顯示了 Mylyn 的一些上下文管理功能:
- 單擊 Focus on Active Task 按鈕可以使 Eclipse Package Explorer 只顯示活動任務的上下文中的元素。
- 可以通過 Task List 切換活動任務。
- 切換后,Eclipse 視圖和編輯器將聚焦于新激活的任務的上下文。
- 更改集將被自動管理,以反映任務上下文中的更改。
- 折疊功能和上下文可以幫助視圖聚焦相關的元素。
圖 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 的最值得注意的關鍵方面。您只需理解任務激活的概念,就可以開始使用以任務為中心的方式工作。這種小但重要的工作方式的改變會立即使您獲益:當您切換任務時,您在工作中建立起來的所有有價值的上下文不再會丟失。
在 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 對本文提供了有幫助的回饋。