电话:0731-83595998
导航

用Mylar进行以任务为中心的编程

来源: 2017-12-23 14:24

   Mylar 通过将任务无缝集成到 Eclipse 中并管理那些任务的上下文,提高了效率。本教程是有关如何使用 Mylar 的指南,共分为两部分,在上半部分中,项目主管 Mik Kersten 向您介绍了 Mylar 的任务管理工具以及任何将其与 Bugzilla、Trac 和 JIRA 等库集成。

   虽然软件系统、框架及工具可以持续无限期地发展,开发人员处理信息的能力却有一个实际的上限。大多数现代 IDE 用增强的编辑工具、结构视图工具及搜索工具来试图解决这个问题。尽管这些机制使得在大型系统中导航变得十分简单,但对于开发人员为了完成编程任务管理而必须处理大量信息这一事实却于事无补。其结果是会导致 IDE 结构视图过载 -- 即使对于一个小的企业应用程序,Eclipse Package Explorer 都可能包含好几万个元素 -- 且开发人员会在滚动信息、导航信息、解析信息上浪费大量的时间,而不能及时完成任务。

   有趣的是,在大多数情况下,为完成编程任务,并不需要看到系统的整个等级结构或对一个特定方法的一个引用。对于处理 bug 或添加功能来说,您所关心的只是系统的一个子集。

   Mylar 是一项新的交互技术,它通过给 Eclipse 添加两种新工具:任务管理和上下文管理让子集变得清晰。任务管理工具将 bug/task/issue 跟踪器集成到 Eclipse 中,并提供高级的任务编辑及计划安排工具。上下文管理工具监控同 Eclipse 的交互,自动识别和手头任务相关的信息,并聚焦到 Eclipse 视图及编辑器,从而只显示相关信息。将此结合起来,这些工具极大地减少了过载并显著提高了开发人员的生产效率(有关该领域研究的成果,请参见 参考资料 中的文章 "Using Task Context to Improve Programmer Productivity")。

 

 
防止信息盲区
Mylar 使用显式的任务管理和上下文管理(和富 Eclipse IDE 一起),通过只显示所需信息,从而使得在大型系统上工作变得更加简单。事实上,这正是 Mylar 名字的来历:就好像在盯着日食看时,银质的 "Mylar" 胶片会防止盲区,当盯住 Eclipse 视图时,Mylar 会防止信息盲区。

   这个分为两部分的文章是使用 Mylar 的指南。第 1 部分是对 Mylar 的概述,同时介绍了其任务管理工具。第 2 部分 展示了其上下文管理工具,并探讨了 Focused UI 对日常编程及开发方法论的影响。为了方便您学习,这两篇文章是同时发表的。

   请注意假设您熟悉 Eclipse IDE。第 1 部分适用于任何编程语言或 Eclipse 发行版。第 2 部分专注于 Java™ 开发,但也探讨了适用于所有基于 Eclipse 的工具的特性。Bugzilla 是贯穿于全文的样例中所使用的任务库,但也可以推广至由 Mylar 支持的其他问题跟踪器。

Mylar 简介

   Mylar 以记录任务(参见 参考资料,获取支持版本)的复杂机制拓展了 Eclipse SDK。任务 被定义为想要回顾或同他人一起分享的任何工作单元,如一个由用户报告的 bug,或写给自己的一条关于改进功能的注释。可以将任务存储到本地的工作空间,或从一个或更多任务库中获取。要连接到任务库,必须有一个支持该库的连接器。(任务库 是如 Bugzilla、Trac 或 JIRA 等的 bug/ticket/issue 跟踪器。)

   任务一旦集成,Mylar 监控这些任务的活动,从而识别与手头任务相关的信息。Mylar 从中创建一个任务上下文,它是与任务相关的所有工件的集合。这些工件可以包括编辑过的方法、引用过的 API,以及浏览过的文档。Mylar 使用这个任务上下文使 Eclipse UI 聚焦于有趣的信息、隐藏无趣的信息并自动寻找相关信息。如果手边有了这些完成任务需要的信息,就会减少花在搜索、滚动及导航上的时间,从而提高效率。通过使任务上下文显式,Mylar 也便利了多任务的执行、计划、对过去的劳动成果的重用以及技术经验的分享。

   随着时间的流逝,使用 Mylar 将会让您的工作方式发生微妙的根本性转变。当习惯于在以任务为中心的工作方式下工作时,您会像其他 Mylar 用户那样,经历工作效率的急剧提高。组织好工作、主动应付大量的 bug 报告以及跟踪改进将逐渐变得毫不费力(参见 参考资料 中 Mylar 用户的反馈)。

   图 1 显示了工作中的 Mylar 的一些任务管理及上下文管理功能,编号为:(1)有一个活动任务的 Mylar Task List,以及计划在今天处理的分配好的 Bugzilla 报告;(2)引入的注释和过期的任务;(3)由任务上下文管理的更改集合;(4)有离线支持的富任务编辑器;(5)Eclipse 的 Package Explorer 上的以任务为中心的模式。


 

 

   接下来的部分中,将在 Eclipse 平台上设置并安装 Mylar,并介绍其使用频率最高的任务管理功能。在对 Mylar 任务管理工具的全貌有所了解后,将更加深入地理解它是如何影响日常工作过程的。

支持的任务库

   在中,使用 Mylar 的 Bugzilla Connector 以突出任务库集成中的主要概念。当使用其他支持的任务库时,这些概念是一样的。表 1 显示了由 Mylar 0.7 支持的任务库及其集成程度。当使用如 Bugzilla 等完全集成的连接器时,可以完全依赖 Mylar 同该库一起工作。当使用只支持查询的连接器时,可以从该库中保存并计划任务,并用 Eclipse 内嵌的 Web 浏览器对其进行编辑。如果 Mylar 尚不支持您的任务库,仍可以用它完成本地任务及与 Web 浏览器集成(例如,通过将 URL 拖到 Task List 来自动地创建链接任务)。然而,连接器的集成越是复杂,效率就越高,所以如果您的任务库还不被 Mylar 所支持,那么就投票选择一下吧(参见 参考资料)。

   表 1 的功能注释:富编辑 提供了集成编辑功能,如拖放附件。离线支持 无需在打开任务时等候慢吞吞的库,且允许离线工作。集成更改通知 允许将 Task List 作为收件箱使用,而不用依赖于电子邮件客户机。


连接器 查询 富编辑 离线支持 更改通知
Bugzilla * * * *
Trac * * *  
JIRA * *    

   通用 Web 库连接器(Generic Web Repository Connector)也为 Google Code Hosting(code.google.com)、IssueZilla(java.net, dev2dev, tigris.org)、GForge(objectweb.org)、SourceForge(sf.net)、JIRA、Trac、phpBB 及 vBulletinhe 提供了基本查询支持。参见 参考资料,以了解更多。

安装及设置

   Mylar 所做的一切都是关于如何减少信息过载。为达到此目的,它的关键设计目标之一是将 Eclipse 现有的 UI 工具无缝集成到一起。另一项目标是让您只安装及使用需要的功能。例如,如果您的角色是进行 bug 筛选而不是开发,可以安装 Mylar 的 Task List 而不安装 Focused UI,并为问题跟踪器单独挑选连接器。如果您是一名软件开发人员,很可能两个功能都要安装。本系列的第 1 部分涵盖了 Task List,在第 2 部分将介绍 Focused UI。


 

   要为 Eclipse 版本安装 Mylar,可以使用 Eclipse 软件更新机制:Help > Software Updates > Search for new features to install。更新 Eclipse 时,最好使用这个机制而不是 Search for updates,该机制通常不会执行正确的依赖项查找。如果使用的是 Eclipse 3.2,请添加 download.eclipse.org/technology/mylar/update-site/e3.2 更新站点并选定图 2 所示功能。如果使用的是 Eclipse 3.1 或 3.3,请参照 Mylar 下载页面中的正确更新站点(参见 参考资料)。|||

   提示:Mylar 构建在 Java 5 之上,所以如果使用 JDK 1.4 或更早的版本,Mylar 将不会运行。通过 Help > About Eclipse SDK > Configuration Details 检查您的 Eclipse 版本所使用的是哪个版本的 JRE。关于安装中的故障处理,请参照 Mylar FAQ(参见 参考资料)。

   假设安装了 Focused UI,在重新启动 Eclipe 前,将看到一个关于设置推荐的选项的弹出式向导。该向导会提示打开上下文管理性能,该性能能被打开或关闭,正如向导页所给出的那样。我将在第 2 部分中介绍 Mylar 的上下文管理功能,所以请选中这些选项,因为日后可以进行修改。现在,直接看一下 Task List 视图,如图 3 所示


 

 

使用任务和库

Mylar 以其对两种任务的支持拓展了 Eclipse。

个人任务被存储至本地 Eclipse 工作空间,并提供基本任务管理功能,如计划安排。 共享的库任务被存储至服务器,并提供协作特性,如注释线程及文件附件。

   这一部分展示了如何创建并编辑个人任务,并探讨了操作库任务时可用的各种功能。请注意下面描述的功能是否可用取决于连接器的 集成程度,所以只需参照适合您的情况。不考虑集成程度,可以使用 Mylar 的所有任务管理功能,这将在 任务管理及个人计划 部分中探讨。

创建个人任务

   安装了 Mylar 后,使用 Task List 视图(如图 4 所示)上的工具栏按钮创建一个新任务,并填充其描述。创建本地任务的另一种方式是将文本或 URL 从 Web 浏览器中拖至 Task List。新任务的描述会根据相应 Web 页面的标题自动填充。操作很简单,在 Firefox 中,只需一个常规的拖曳;在 Internet Explorer 中,只需在拖曳时按住 Ctrl。双击 Task List 中的任务,打开任务编辑器,可以用该编辑器创建注释并按某个特定日期对任务进行安排。默认情况下,新创建的任务将按照其创建日期进行安排。可以使用任务注释来存储相关信息、粘贴超链接或创建粒度细微的要做的事情的条目。也可以创建任务分类将相关任务保存到一起。


 

添加任务库

   共享的库任务和个人任务类似,只是前者存储在服务器上,如 Bugzilla。库任务包括由用户填写的 bug 报告和计划要完成的新功能,以及涉及到协作的任何其他工作单元。库任务和个人任务使用同一个 Planning 选项卡来保存注释及个人计划。

   可以通过打开 Task Repositories 视图(Window > Show View > Mylar > Task Repositories)并使用该视图的工具栏添加新库来创建一个任务库。然后可以输入一些关于库的细节或从一些可用模板中选定一个。图 5 中显示的 bugs.eclipse.org 库是在安装 Mylar 时自动创建的,以使报告 Mylar 和 Eclipse 的 bug 及特性请求变得简单


 

 

查询库

   一旦添加了任务库,就可以通过 Task List 的弹出菜单中的 New Query 菜单项创建查询来访问该库中的任务。例如,我也许会编写一个查询来访问分发到我的电子邮件地址的所有 Bugzilla 报告,如图 6 所示


 

 

   设置好参数并单击 Finish,查询分类就被命中的内容所填充,如图 6 所示。打开一个命中的结果,就会检索其内容并将其转换为任务,这意味着当编辑该任务时,会出现个人 Planning 选项卡。要更改查询的参数,可以重新打开它(通过双击 Task List 中的查询)并编辑选中的值。|||

   Mylar 的 Web 集成用您所习惯的 Web UI 的形式提供了完美的灵活性。可以右键单击任何任务或查询,用 Web 浏览器来打开它(Eclipse 浏览器的设置在 Window > Preferences > General > Web Browser 内),任何库任务都有一个 Browser 选项卡。也可以用浏览器打开一个查询,在其中使用 Bugzilla Web UI 对其进行改进,然后在 New Query 向导的提示下,从生成的 URL(通过粘贴)在 Task List 中创建一个新查询。

搜索任务

   搜索任务和创建查询类似,但并不在 Task List 中存储结果。使用 Ctrl+H 或 Search 菜单(Search > Task Search),选定库,输入搜索条件,并单击 Search。打开 Search 视图,允许打开与搜索相匹配的任务,如图 7 所示。要改进搜索,简单地再次打开 Search 对话框,之前的搜索条件会恢复。请注意在 Task List 中匹配项和任务图标已经一起显示了出来。(参见 参考资料 中的 Mylar 文档,获取 Mylar 图形设计的图例。)


 

创建任务和重复探测

   要创建一个新的共享的库任务,请使用 Task List 工具栏中的动作或 File > New 菜单,如果有多个库,选定其中一个库,然后为任务选定一个产品。开启一个新编辑器来填写细节。与平台及 OS 等相关的属性被自动选定。

提示:一个捷径是,可以右键单击查询节点,该节点根据查询自动选定库和产品。

   也许要创建的另一种任务是为 Mylar 或您使用的另一种基于 Eclipse 的工具创建 bug 报告。添加bugs.eclipse.org 库和自动 bug 报告的动作(可以从 Eclipse 的 Error Log 视图中访问)使 bug 报告变得简单。如果看到想要报告的错误事件,右键单击它并选择 Report as Bug。New Repository Task 编辑器将打开并包含所有相关信息,比如堆栈踪迹信息。

   由于通过单击来报告 bug 的这种形式可能会潜在地导致大量重复的 bug 编档,Mylar 为此提供了自动重复探测。Search for Duplicates 按钮使用在报告的 Description 中自动插入或手动粘贴的堆栈踪迹的来查询相应的库以获得任何潜在的重复。重复探测的结果显示在 Search 视图中,如图 8 所示。如果找到一个匹配项,可以打开它并做出注释,而不必创建一个新的 bug 报告。


 

编辑和同步

   打开一个任务时,将会注意到编辑器上的 Bugzilla 和 Planning 选项卡。库任务提供所有个人任务的功能,但也允许直接编辑存储于库中的信息。当查看对 bug 的注释时,可以使用 Outline 视图进行导航,到其他 bug 报告的引用和 Java 堆栈踪迹元素均被做成了超链接。(参见 图 9)。


 

   如果连接器支持离线编辑,Mylar 会为打开的任何任务保留了一份缓存副本,并当相应的查询或任务同步时更新这份副本。可以通过按住 Ctrl+S,在本地保存更改,这将导致该任务上具有一个向外的 箭头(也如 图 9 所示)。准备好提交该任务时,单击编辑器底部的 Submit to Repository。|||

   如果有人更改了库中的任务,例如添加了新注释,会有一个弹出框指示该更改,该任务将同一个向内的 箭头一起显示。如果本地副本和服务器副本都更改了,会显示一个红色的冲突箭头,并提示您解决该冲突。

   如果一个任务之前被打开过,再次打开它将打开一个离线副本,并立即对任务的背景同步进行初始化。这确保了在开始阅读及操作一项任务前不必等待对服务器的来回访问。确保任务在离线工作前已经同步是一个好主意,因为这样可以在未连接到服务器时就可以进行查看及编辑。

   提示:由于 Mylar 的背景同步,可以不再依赖电子邮件通知就能在 Bugzilla 中掌握 bug 报告的改变。所需做的仅仅是设置用以获取所有感兴趣的任务(例如,复制的每份报告)的查询,同时,也会收到不会使收件箱过载的向内的箭头形式的通知。通过单击 Window > Preferences > Mylar > Tasks 设置同步计划。请注意,可以通过右键单击树中的节点并选择 Synchronize 来手动同步查询及任务。

附件

   可以通过单击任务编辑器 Attachment 部分的 Add... 按钮来为库任务添加附件。也可以将文件或文本从工作空间或从窗口管理器拖至编辑器的 Attachment 部分。添加附件触发了一个向导,允许选择附件是从 Clipboard 内容中创建,从计算机上的文件中创建,还是从 Eclipse 工作空间中创建。Attachment 表允许用 Web 浏览器或编辑器打开附件,并通过上下文菜单执行特定的行为,如保存或复制到剪贴板。

任务管理及个人计划

对许多开发人员来说,在任何给定的工作周中,要跟踪及安排的任务包括正在着手处理的产品要解决的缺陷及功能。 与您合作或您所指导或管理的同事所完成的任务。 所使用的框架、API 和软件的 bug 报告。 个人要完成的事项和剩下的事。

   需要将所有的任务集成到一个单一的视图中使它们便于管理,因为只需看一个地方就知道下一步该做什么了。为进一步便利任务管理,Mylar 收录了公认的任务管理的最佳实践,如安排任务和任务延期,以及 XP 风格的开发的立即性和适应性的特点。Mylar 的任务管理工具让您能够轻松适应一周当中不断更新的需求,而不会丢掉对长期优先事件的跟踪。除了能够让您将每个星期都控制在自己手上,Mylar 还通过使共享库属性(如里程碑及优先级)易于掌握来帮您将团队实践集成到一起,所有这些都不必离开 Eclipse。

编辑推荐:

下载Word文档

温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)

网络课程 新人注册送三重礼

已有 22658 名学员学习以下课程通过考试

网友评论(共0条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点!

最新评论

点击加载更多评论>>

精品课程

更多
10781人学习

免费试听更多

相关推荐
图书更多+
  • 电网书籍
  • 财会书籍
  • 其它工学书籍
拼团课程更多+
  • 电气拼团课程
  • 财会拼团课程
  • 其它工学拼团
热门排行

长理培训客户端 资讯,试题,视频一手掌握

去 App Store 免费下载 iOS 客户端