《Eclipse精粹》学习笔记

David Carlson著,张欣译,《Eclipse精粹》,北京:机械工业出版社,2006.2

应该说机械工业社又为大家提供了一本好书,不过这本书更像是Eclipse的学习手册,使你充分了解Eclipse这个快速便捷的开发工具,“工要善其事,必先利其器”,熟悉你的“武器”是件非常重要的事情,但是看过一次之后,下次再打开可能是许多天之后了。因为许多用法只有在开发过程中体会了,才会感受到好处,还有的需要在开发中体会那种使用的尺度和感觉,因此我最开始没觉得这是本好书。为什么会被大力推荐也一直不太明白,可能外国人与我的思维方式不同吧。但是,后来在还书之前又仔细看了一遍,觉得里面许多精粹的东西还是值得记录下来,于是就有了这篇学习笔记,希望通过简单地阅读学习笔记可以对Eclipse和精粹这本书有所了解,如果觉得浏览过笔记后意犹未尽可以去图书馆借来看,对于我们穷书生这个不在我推荐购买的行列,不过有钱的兄弟姐妹还是希望支持一下作者,因为这本书的内容还是值得一读。
读书笔记中包含有原著中的内容,如果作者认为侵犯了对方的权益请与我联系,我会将之删除。

第一章 Java IDE及其他
1.1 Eclipse平台体系结构
Eclipse是用于创建和部署插件的开发和运行环境的一种抽象视图。
Eclipse是灵活的、可扩展的集成开发环境(IDE)。
Eclipse IDE的特点:
×多平台。Windows,Linux(motif和GTK),Solaris,AIX,HP-UX和Mac OSX。
×多语言。采用Java语言开发,支持Java、C/C++和Cobol编写应用程序,还支持Python、Perl、PHP和其他语言。插件必须用Java编写。
×多角色。支持建模、测试、编写程序和网页及许多其他角色。

1.1.1 Eclipse运行时平台
核心运行平台提供如下最基本的服务:
×插件注册。装载插件并管理可用插件的注册表信息。
×资源。管理操作系统文件和文件夹的独立于平台的容器,包括链接资源的位置。
×UI组件。用户界面组件是以SWT和JFace库为基础。
×更新工具。对安装和更新来自URL可建起位置的插件具有内置的支持。
×帮助工具。共享一个通用的帮助工具。
Java开发工具(JDT)是Eclipse SDK中唯一的程序设计语言插件。基本功能:编辑器,大纲,内容助手,模板,模式程序,Java视图,项目配置,调试器。
C/C++开发工具(C/C++ Development Tools,CDT)是Eclipse平台的C/C++开发工具。目前只能用于Linux平台。
插件开发环境(PDE)提供的工具可以自动化插件的创建、操作、调试和部署操作,是Eclipse SDK的一部分。
Web工具平台(Web Tools Platform,WTP)由Eclipse委员会由2004年6月正式批准,吸收了来自IBM和Object Web的开源代码。
Web标准工具(Web Standard Tools,WST)子项目为启用Web的应用程序提供一般的基础构造。提供的工具:标准语言(HTML/XHTML/XML...),编辑器(支持标准语言),验证器,服务器发布(多个目标服务器上启动、停止、发布和运行应用程序命令和窗口)。
J2EE标准工具子项目为J2EE应用服务器开发基于J2EE 1.4规范的应用程序提供了公用的基础构造。提供的工具:J2EE工具(EJB、Servlet、JSP、JCA、JDBC、JTA、JMS、JMX、JNDI和Web Services),JSP编辑器,JSP重构工具,搜索工具,语法对比。

1.1.3 多功能客户平台
Eclipse多功能客户平台(Rich Client Platform,RCP)的著名之处在于它不能做什么,而不是能做什么。只能用于构造任何客户应用程序。基础仍然是动态插件模型,UI是用同样的工具箱和扩展点构造的。

1.2. 其他Eclipse项目
×图形编辑器框架(GEF)。用已有的应用程序模型创建多功能图形编辑器。
×Eclipse建模框架(EMF)。用于构造工具和其他基于结构化数据模型的应用程序的建模框架和代码生成工具。
×可视化编辑器(VE)。创建GUI构造程序的框架,包括Swing/JFC和SWT GUI构造程序的引用实现。
×UML 2.实现了UML 2.0元模型,支持建模工具的开发,支持通用的XML模式以简化语义模型的交互,支持测试用例以用作验证规约的方式,还支持验证规则以用作定义兼容性并对其强制分层的方式。
×XML模式信息集(XSD)。检验、创建或修改XML械(单独的或像XForms和WSDL文档这样的工具的一部分)的代码的引用库。XSD是独立的技术子项目,通常作为EMF的一部分下载。
×服务数据对象(SDO)。简化和统一面向服务体系结构(SOA)中的数据应用程序开发的框架。
×Eclipse测试和性能分析。用于整个开发周期(如测试、跟踪/配置、调整、记录、监控、分析、自治和管理)使用的测试和性能分析工具的框架和服务。
×商业智能和制表工具(BIRT)。用于在公司内设计、部署、生成和阅读报表的基础结构和工具。

1.5 精粹
×Eclipse平台的功能体系结构由构造模块构成,它们能给核心的运行时平台添加新特性。有几百个Eclipse子项目和独立的开源产品或商业产品构造在这个平台之上。
×提供了一般的IDE支持,这个IDE可针对Java、C/C++、Web工具和其他开发活动进行专用化。一般的IDE是一个面向小组的工作平台,支持多视图、窗口、搜索工具、调试等操作。
×Java开发工具(JDT)为配置Java项目提供了支持,为编辑和调试操作提供了多功能环境。
×从Eclipse的Web站点或其他独立的项目可以得到支持其他语言(如C/C++)的插件。
×Web工具平台(WTP)项目是Eclipse家庭的最新成员,它将为J2EE和以Web为中心的应用程序开发提供可扩展的、基于标准的平台。
×Eclipse提供了一个支持并能回事迭代式敏捷开发周期的开发平台。该平台具有持续测试、重构、持续集成、集体所有权和编码标准等专用特征。

1.6 参考文献
Beck, Kent, Extreme Programming Explained: Embracng Change. Boston, MA: Addison-Wesley, 1999.
Budinsky, Frank, et al., Eclipse Modeling Framework. Boston, MA: Addison-Wesley, 2004.
Clayberg, Eric, and Rubel, Dan, Eclipse: Building Commercial-Quality Plug-ins. Boston, MA:Addison-Wesley, 2004.
Gamma, Erich and Beck, Kent, Contributing to Eclipse: Principles, Patterns, and Plug-ins. Boston, MA:Addison-Wesley, 2004.

第二章 Eclipse,你好
2.1 安装与启动
四类Eclipse下载:
×最新正式版。开发组宣布为主要版本的软件,使用稳定的、测试过的版本,不需要最新的重要特性和改进,合适的选择。
×稳定版。已经证实对大多数用户来说都足够稳定的集成版。以重要的项目里程碑式的版本为基础。想与最新的开发进展保持同步,使用最新特征和修正Bug,不介意遇到一些问题,可以选择。
×集成版。周期性地得到确认的稳定、状态一致的组件,下个稳定版将会采用的版本,只有高级Eclipse用户才推荐使用。
×每夜编译版。每天夜晚发布到CVS储存库的HEAD流的版本生成的。完全没有经过测试,几乎一定会有重大问题。
启动Eclipse前必须安装Java JDK。启动Eclipse时,可以使用-vm选项指定使用的JVM。
eclipse.exe -showlocation -vm c:\jdk\bin\javaw.exe -vmargs -Xmx256M

2.5 精粹
×由于Eclipse是开源项目,所以可以看到正在进行开发的版本。新手不建议使用每夜编译版和集成版。
×Eclipse启动时默认显示Resource透视图,大多数开发工作需要切换到Java透视图。
×使用Java透视图的向导程序可以创建新的项目、新的包和新的类文件。
×定制用于给新Java文件插入代码的代码生成模板。
×在Eclipse工作台中运行应用程序,使用Console视图难容命令行式的输入和输出。

第三章 管理项目
3.1 项目工作空间
在运行Eclipse遇到问题时,可以查看当前工作空间中的.metadata文件夹下的.log文件,如果.log文件太大可以删除。还可查看.lock文件,如果Eclipse无法正常启动,可以删除.lock文件,但是正常情况下不要删除。
需要多个工作空间的原因:
×独立的工作主题,可能由不同的版本控制储存库管理
×顾问需要明确区分开客户的资源。
×区别维护CVS中的分支版本的并发工作。

3.2.1 项目
项目的特性:
×把一组文件和文件夹组织在一起。
×所在的位置决定了项目资源在本地文件系统中存放的位置。
×构造规约决定了如何构造它的资源。
×可以具有临时属性,也可以具有永久属性。
×可以是开放的,也可以是关闭的;关闭的项目是被动的,具有最小的内存分配。
×可以引用其他项目。
×可以属于一个或多个项目类。

3.2.2 链接资源的位置
可以把部分Eclipse工作环境映射到文件系统中不相关的位置,因为:
×加入存储到项目之外的配置或类文件目录。
×满足与Eclipse一起使用的工具要求采用固定的文件位置的要求。
×引用存放资源或库文件的共享网络驱动器单元。
×引用文件系统中安装的其他产品。

路径变量提供的支持:
×在定义多个具有共同根目录的链接资源时,提供了对绝对路径的统一引用。
×通过改变一个变量,可以重定义多个资源的位置。
×无需更新每个资源的路径,用户就能共享具有链接资源的项目。

3.4 精粹
×工作空间提供了一级相关的项目需要的所有资源的完整透视图。
×Eclipse资源提供了文件和文件夹独立于平台的逻辑透视图,但是,如果这些资源在Eclipse工作平台之外发生了变化,那么它们必须与文件系统保持一致。
×一个Java项目包括源文件夹和输出文件夹(最好分开旋转)。项目自动配置有一个渐增构造程序,会把所有源文件构造到输出文件夹。非Java项目不包括渐增构造程序,但除了这点之外,可以同样的方式安排项目文件夹。
×可以把部分Eclipse工作空间的分层用链接资源地址映射到文件系统中不相关的位置。在与对文件位置有特殊要求的产品或开发工具一起使用Eclipse时,这点尤其重要。
×用多个项目配置一个应用程序会带来长期好处,能提高独立模块的可重用性。项目依赖性控制了交叉项目导入的类的可视性。

第四章 定制工作平台
4.1 透视图
透视图定义了一级Eclipse视图和动作集合,被组织成一种布局,适合一般用户用来完成赋予该透视图的任务。用户可以使用默认透视图,还可以创建和保存专有透视图。还可以将当前透视图恢复到默认的视图和布局。

4.2 工作平台视图
常用的视图如下:
×Navigator。当前工作空间中的项目、文件夹和文件的通用视图;用于任何透视图。
×Properties。由工作平台的插件定制,显示和编辑资源或对象的名字/值属性。它会随着别的视图的改变而变化。
×Outline。由插件定制,显示资源内容的结构图。
×Problems。显示资源中发现的问题的列表。
×Tasks。显示要执行的任务的列表,每个任务还有资源引用和行数。
×Bookmarks。显示用于快速引用和定位文件中的特定行的书签。
×Search。显示搜索工作空间的结果。

4.2.2 窗口布局
Eclipse支持移动窗口位置,显示在主工作平台之外的独立窗口,设置成快速窗口,并且可以记忆自己的位置。

4.4.1 首选项设置的作用域
×Configuration。设置将被保存在Eclipse安装目录中,由所有的工作空间实例共享。
×Workspace Instance。每个工作空间实例定义的,由它的所有项目共享。
×Project。仅适用于项目本身。

4.6 精粹
×不要局限于一个透视图,要把所有的工作售中在一组视图中。利用多个透视图,把它们组织起来,发挥它们的最大生产力来完成一组相关的任务。创建或定制透视图来满足你的需求。
×探讨Eclipse中可用的专门视图。使用一个合适的视图或一组视图可以显著地提高你的生产力。
×用Package Explorer视图和标记视图(Problems、Tasks和Bookmarks)中的过滤器可以解决信息过多的问题。
×使用Eclipse个人化,以适应你的风格和工作。与你使用其他编辑器或IDE的习惯相匹配,探讨Eclipse中的更多选项。
×导出首选项,共享项目设置,可以与所有成员共享你最好的实践经验和小组标准。

第五章 快速开发
5.4 使用快速修正
可以使用快速修正的示例:
×删除未使用的、未解析的或看不到的import语句。
×为项目中存在但不能解析的类型添加一个impor语句。
×为不能解析的方法签名引用创建一个新方法。
×如果方法遗漏了return语句,则添加该语句。
×用try/catch块封装一个方法调用或给现有的try块添加一个catch块,处理未捕捉到的异常。
×当异常没有在它的try块中抛出时,删除不必要的catch块。

5.7 精粹
×Outline视图显示的是当前Java编辑器中所有域、方法和内部类的列表;选项会与编辑器的定位保持一致。
×用F3和Ctrl+F3为引用的类型和方法打开一个新的编辑器,可以分析不熟悉的Java类库。
×用内容助手可以插入类型和变量名或者在输入时完成方法,从而能够加速开发。
×配置源代码文件,获取在悬浮帮助和内容助手列表中显示的详细Javadoc信息。
×用源代码模板插入常用的编码模式(如for循环、switch语句或try/catch块),并导引你填写模式中的信息。定制或创建新的模板以适应你的需要和风格。
×快速修正为常见的编译错误(如未捕捉到抛出的异常)提供了修改建议,并能自动纠错。
×为类中选定的域生成获取器和设置器方法。定制方法模板,例如在所有设置器方法中加入记录日志的操作或改变通知。
×用Hierarchy视图可以分析Java代码中的类型分层,并能迅速在其中定位,这些分层由类扩展的类、接口扩展的接口和类实现的接口构成。

第六章 Java项目配置
6.1 Java构造路径
Java Build Path的四个标签:
×Source。源文件夹和输出文件夹。建议采用分离的源文件夹和输出文件夹,可以使用多个源文件夹。
×Projects。加入该构造路径的其他项目。
×Libraries。项目需要的其他档案文件的位置。
×Order and Export。项目和库出现在构造路径和默认的运行时类路径中的顺序。

6.5 精粹
×每个Java项目都有一个构造,用于编译源文件中的奖,把结果存放到输出文件夹。简单项目没有构造程序,其他项目类型则可以添加相关的构造程序,把合适的编译器或转换工具应用到文件上。
×项目是自动构造的;只要保存,就会自动应用构造程序。对于Java项目,构造程序使用工作空间首选项中配置的或项目重载的Java编译器设置。
×Java项目的Java构造路径定义了构造或运行项目时,应用把工作空间中的哪些项目和哪些JAR文件加入类路径。
×用户库是定义联合使用的一组相关JAR文件的便捷方法。
×当第三方的JAR文件存放在外部目录中时,可以使用混合的配置。这些档案中的一部分被打包在一个或多个用户库中,在Eclipse中,用简单项目和链接文件益可以轻松地访问所有档案。

6.6 参考文献
Apache Log4j is an open source logging facility available at http://jakarta.apache.org/log4j/.
Apache Axis is an open source Web Services development tolkit available at http://ws.apache.org/axis/.

第七章 调试代码
7.1 启动调试对话
单步调试执行
×Resume。继续执行线程,直到它结束或遇到断点为止。
×Suspend。挂起一个正在执行的线程。
×Terminate。终止Java VM。
×Step Into。跟踪进入下一个要执行的方法。会增加一个栈帧。
×Step Over。结束当前行的执行,在下一个可执行的行处挂起。
×Step Return。从当前方法中跳出。
×Run to Line。继续执行到选中的行。
×Use Step Filters。当切换到这个命令时,所有调试命令都将应用Java>Debug>Step Filtering首选项页中定义的调试过滤器。

7.5 精粹
×Debug称之为具有几个专用于调试的视图:Debug视图用于查看运行的线程以及它们挂起时的栈帧;Variables、Expressions和Display视图用于查看对象状态;Breakpoints视图用于管理代码中的所有断点的列表。
×当运行到一个断点时,有几种选择,可以继续执行或终止线程,或者逐句地单步调试程序。
×Variables视图显示了Debug视图中选定的栈帧的域、局部变量和方法参数。栈帧为这些变量提供了执行环境。
×可以执行显示、检查或更新程序状态的代码段。在调试对话期间,弹出式窗口可用来显示或检查在Java编辑器内选定的表达式。
×可以指派Detail Formatter,定义一个定制的输出字符串,用于显示调试过程中类的值。该格式程序会覆盖这个类的toString()方法。
×用Hot Code Replace可以在调试对话中修改代码,而无需重启Java VM,从而给实验性开发提供了便利。
×Java调试器的客户/服务器设计允许你从网络上的计算机启动Java程序,然后在你的工作站上运行的Eclipse调试它。

第八章 敏捷开发的特征
8.1 敏捷宣言(agile manifesto)http://www.agilemanifesto.org/http://www.agilealliance.org/
宣言包括12项准则,大致分为两类:程序员授权和迭代式开发。
×业务与开发必须在整个项目的开发过程中一起工作。
×最后的体系结构、需求和设计都是从自组的小组中产生的。
×每隔两个星期或两个月就交付一次可运行的软件,时间间隔越短越好。
×可运行的软件是进度的首要度量指标。
×采用优秀的技术和好的设计可以提高敏捷性。

敏捷开发以两种计划为基础:
×粗略计划:阶段或发布计划。
×一系列周密计划:迭代计划。

8.4 精粹
×敏捷软件开发是一组相关方法的通称,强调使程序员能够自组小组,与客户紧密协作,使用迭代式开发周期,由开发者进行持续单元测试与集成。
×项目由两级的计划指导开发,即粗略发布计划和周密迭代计划。
×Eclipse提供了支持和能够加速敏捷开发周期的开发平台,还可以通过插件进行彻底不同的定制。
×有5项敏捷开发准则与程序设计相关,即测试、重构、持续集成、集成所有和编码标准。

8.5 参考文献
Beck, Kent, Extreme Programming Explained: Embracng Change. Boston, MA: Addison-Wesley, 1999.
Fowler, Martin, Refactoring: Improving the Design of Existing Code, Reading, MA:Addison-Wesley, 1999.
Highsmith, James. A., Adaptive Software Development: A Collaborative Approach to Managing Complex Systems. Dorset House, 2000.
Kruchten, Phillippe, The Rational Unified Process: An Introduction, Third Edition. Boston, MA: Addison-Wesley, 2004.
Leffingwell, Dean and Muirhead, Dave, Tactical Management of Agile Development: Achieving Competitive Advantage, Rally Software Development, Boulder, CO, 2004. This white paper is available from http://www.rallydev.com/.
Schwaber, Ken and Beedle, Mike, Agile Software Development with Scrum. Prentice Hall, 2001.

第九章 更新Eclipse IDE
9.1 查找和安装特征
Eclipse特征:就是把构成Eclipse产品的相关功能集合在一起并描述它们的方法。
Eclipse平台自身被划分为三个主要特性:平台、JDT、PDE。
特性定义并不包括代码自身,它们只是把一个或多个相关插件或嵌套特性打包。组织特性的目的是为了颁发和更新产品,而组织插件的目的是帮助产品小组开发产品的功能。
特性会被看作普遍可移植的。特性还提供了说明、许可和版权信息。

9.4 精粹
×Product Configuration对话框列出了所有的安装路径和每个路径下的所有特性。当安装的插件没有特性定义时,它们不会出现在配置列表中。
×About Eclipse Platform对话框包括一个按钮,能够列出工作平台中启用的所有插件,它们是否被打包成了某种特性的一部分。
×可以为用于检索新的或更新特性的远程或本地站点添加书签。
×应该把新特性安装到扩展路径中,而不是安装在Eclipse的主产品路径中。这样即使以后删除并再安装了Eclipse,也不会丢失第三方插件。
×许多插件并没有特性定义或更新站点。不要像通常所做的那样把它们的ZIP文件解压缩到Eclipse的主plugins目录中,而是解压缩到允许你启用和禁用这些插件的扩展目录中。
×当你的防火墙使用了代理服务器时,需要首选项设置,用更新策略文件可以把特性的URL重定向到一个本地缓存站点。

9.5 扩展
×Eclipse.org的社区主页上列出了许多可用的资源。http://www.eclipse.org/community
×Eclipse插件中心(Eclipse Plug-in Central)是Eclipse系统的信息入口和交流场所。http://www.eclipseplugincentral.com/
× http://www.eclipse-plugins.info/ 有分类的插件注册表。

第十章 用JUnit进行持续测试
10.1 选择测试策略
编写测试要:
×说明将要编写的代码的预期结果。
×说明Bug报告的修正操作。
编写测试的收益:
×帮助你为还未编写的类型定义API。
×帮助你理解新的复杂的API,或者确认你对它的理解。
×验证从另一个小组或销售商处得到的库的正确操作。
×验证由代码生成器生成的类的预期结果。

10.5 精粹
×Junit支持许多不同的单元测试策略,包括首次测试处理和编写验证对第三方API的理解的单元测试。
×Junit测试包含在一种复合结果中。可以运行整个测试组,也可以运行一部分。运行的最小单位是一个测试方法。
×组织测试时推荐的方法有两种,即在项目中创建第二个源文件夹,或者创建一个测试专用的项目。必须在被测试的类所在的包中编写测试用例,这样测试才能够访问保护的方法和包保护的方法。
×JUnit Test Case向导程序能够为要编写的测试生成具有方法存根的类模板,从而加速了开发。
×每当测试失败时,JUnit窗口会自动出现,能帮助你快速地识别导致失败的代码行,并且对比预期的结果和实际的结果。

10.6 扩展
×HttpUnit。在测试Web应用程序时,需要绕过浏览器,从程序中访问你的站点。HttpUnit模拟了浏览器行为的相关部分,包括表单提交、JavaScript、基本的HTTP验证、cookie和自动页面重定向,从而简化了这一操作,还允许测试代码验证返回的页面。http://www.httpunit.org/
×Cactus。测试服务器端的Java代码(Servlet、EJB、Tag Libs、Filters)的框架。http://jakarta.apache.org/cactus
×DbUnit。编写使用关系数据库数据的测试所用的框架。框架使用的是XML数据集(数据表的集合),在每次测试之前和之后都执行数据库操作,以确保数据库的内容处于已知状态。http://www.dbunit.org/

10.7 参考文献
JUnit home page, http://www.junit.org/.
Fowler, Martin, Refactoring, Chapter 4, Building Tests. Reading, MA:Addison-Wesley, 1999.
Graham, Steve, et al. Building Web Services with Java, Second Edition. Pearson Education, 2004.
Massol, Vincent. JUnit in Action. Greenwich, CT: Manning, 2004.

第11章 重构代码
11.4 精粹
×重构操作使软件更易于理解,修改更容易,为下次迭代开发做好准备,但不改变当前行为。
×要确定程序的行为是否被重构操作改变,唯一的方法就是在重构操作前后都完整地运行一次JUnit测试组。没有采用单元测试来验证操作的重构操作风险非常高。
×在重构操作前后都要把代码提交给储存库,以便为回滚操作建立一个已知状态。
×通常对于一个序列会应用几种不同的重构操作,以实现一个复杂的任务。
×通过预览重构操作的结果,可以省略一些改变,如果整个操作不能实现你的预期目标,还可以取消整个操作。
×重构操作可以更新对改变过的元素的引用,与通过搬运操作来实现同样的改变相比,这样可以节省大量时间。
×Eclipse中的所有重构操作是根据你的重构活动中的一般任务来分类的。

第12章 用Ant进行持续集成
12.6 精粹
×持续集成使许多项目免受常规的Java项目配置之苦。所有源文件在保存时都会被自动编译,唯一要做的就是完成单元测试。
×利用Ant构造文件补充默认的Java构造器通常可以满足非常规的构造需求。Ant是可扩展的构造工具,它的功能可以紧密地集成到Eclipse工作平台上。
×Ant构造文件编辑器与Java编辑器有许多共性。
×Ant的工作平台首选项包括运行时配置,在此可以把额外的JAR文件加入运行构造文件采用的类路径。
×每个构造文件还可以有自己的运行时配置,能够覆盖或扩展默认的配置。
×可以把Ant构造文件配置为在项目资源修改后就自动运行。
×一个完整的项目构造文件将编译所有的源文件,编译并运行所有的JUnit测试,准备Unit结果的HTML报告,以及生成Javadoc的API文档。构造文件既可以在Eclipse中运行,也可以作为自动持续构造处理的一部分,在单独的构造机上独立运行。

12.7 扩展
PMD可以协助静态分析Java代码。这个工具既可以作为Eclipse的插件,也可以是一个Ant任务。
http://pmd.sourceforge.net/index.html处可以下载Eclipse的PMD插件。

12.8 参考文献
Hatcher, Erik and Loughran, Steve. Java Development with Ant. Greenwich, CT:Manning, 2003.
Massol, Vincent. JUnit in Action, Chapter 5 Automating Junit. Greenwich, CT: Manning, 2004.
Copeland, Tom. Static Analysis with PMD. See http://www.onjava.com/pub/a/onjava/2003/02/12/static_analysis.html

第13章 用CVS实现小组所有权
13.7 精粹
×Eclipse具有通用的小组API,支持资源控制储存库的客户端。它包括完整的CVS客户端。
×CVS使用乐观模型协调小组成员之间的工作。如果采用的工作流能使你保持具有CVS的最近更新,能频繁地与储存库进行同步化操作,当发生冲突的时候能解决它们,这样才能最好地工作。
×在CVS Respository Exploring透视图中可添加CVS储存库的路径,浏览可用的模块。
×在共享项目时,加入配置文件,如.project和.classpath文件,这样可以使其他成员提取完整的Eclipse项目定义。
×还要在CVS中共享第三方的库和全局工作空间首选项设置,使小组成员能够提取出所有必要的依赖性。
×所谓同步化,就是把更新、提交和解决工作空间及储存库之间冲突的活动绑定起来。Team Synchronizing透视图支持所有这些活动。
×用Compare Editor可以浏览所有即将进入和出去的改变,对于合并版本冲突至关重要。
×把一个CVS版本标志赋予储存库中的一组文件即可创建一个项目版本。此后可以提供出所有具有相同标志的相关文件。
×创建一个分支标志和创建一个版本类似,只是以后学要把来自分支的改变合并回主HEAD流(主干)中。
×使用CVS补丁,可以在CVS服务器不能用或者你没有提交权限时与他人交换项目的改变。

13.8 扩展
http://www.eclipse.org/community/index.html

13.9 参考文献
Bar, Moshe, and Fogel, Karl. Open Source Development with CVS, 3rd Edition. Scottsdal, AX: Paraglyph Press, 2003. Available for free download in HTML and PDF formats at http://cvsbook.red-bean.com/.
Concurrent Versions System(CVS) Web site, http://www.cvshome.org/.
CVS for the Windows NT Platform, http://www.cvsnt.org/.
Cederqvist, Per. Version Management with CVS. http://www.cvshome.org/docs/manual
CVS User's Guide, http://www.loria.fr/~molli/cvs/docs/cvs_toc.html
Glezen, Paul. Branching with Eclipse and CVS. IBM, 2003. http://www.eclipse.org/articles/Article-CVS-branching/eclipse_branch.thml
Vesperman, Jennifer. Essential CVS. O'Reilly, 2003.

第14章 编码标准
Eclipse项目导引由三部分构成:
×命名规约。如何命名包、类、方法、变量和常量。
×编码规约。关于声明、语句、代码中的缩进、空格,以及其他影响源代码的理解、重用和调试源代码的程序设计样式的一致规约。
×Javadoc注释。如何编写文档注释,这些注释对公共API尤其重要。
Sun Microsystems的文档《Code Conventions for the Java Programming Language》常被用来作为软件开发的基础。
为什么需要编码规约?
×在软件的生命周期中,80%的时间都用于维护。
×在软件整个生命周期中,都由原始作者对它进行维护几乎是不可能的。
×在编码规约提高了软件的质量和可读性,使工程师能够迅速全面地理解新代码。

14.3 精粹
×对于敏捷开发小组的成员协作以及软件的长期维护来说,编码标准非常重要。这些标准包括命名、编码样式和Javadoc注释的规约。
×Eclipse工具可减少与这些标准保持一致性的工作量。代码格式化程序能应用样式规则,代码模板能够插入Javadoc注释,拼写检查程序能够捕捉到注释中的错误。Java编译器不仅能检查语法,还能对未使用的代码提出警告。
×在小组储存库中共享格式化规则、代码模板和拼写检查词典,可以使所有小组成员的工作保持一致。
×使用Checkstyle插件(或其他类似的扩展)可以审查代码与标准的一致性。自动运行样式审查可以作为完整Ant构造文件的一部分。

14.4 扩展
×Checkstyle。http://checkstyle.sourceforge.net/可以下载Checkstyle。http://eclipse-cs.sourceforge.net/可以下载插件。
×PMD分析工具。http://pmd.sourceforge.net/可以下载插件。
×实例化CodePro Advisor。http://www.instantiations.com/codepro/advisor.htm可以下载商业化插件。

14.5 参考文献
Apache Jakarta Project, Source Repositories. See http://jakarta.apache.org/site/source.html
Eclipse Foundation. Standards, Conventions and Guidelines. See http://dev.eclipse.org/
Sun Microsystems. Code Conventions for the Java Programming Language. 1999. See http://java.sun.com/docs/codeconv/
Sun Microsystems. Requirements for Writing Java API Specifications. 2003. See http://java.sun.com/products/jdk/javadoc/writingapispecs/
Sun Microsystems. how to Write Doc Comments for Javadoc. 2003. See http://java.sun.com/products/jdk/javadoc/writingdoccomments/
SCOWL(Spell Checker Oriented Word Lists) is a collection of word lists split up in various sizes, and other categories, intended to be suitable for use in spell checkers. See http://worllist.sourceforge.net/

转载于:https://www.cnblogs.com/zhuyx/archive/2007/07/16/10402029.html

绝版的书,貌似淘宝还能找到。原来只有页码,边看边加的目录,有一半花了一晚上添加的目录,方便看了。 《Eclipse插件开发》由浅入深、有重点、有针对性地介绍了Eclipse插件开发技术,全书分为4篇共24章。第一篇介绍Eclipse平台界面开发的基础知识,包括SWT控件的使用、界面布局、事件处理等内容;第二篇是插件开发核心技术,主要介绍插件开发的核心知识要点,包括行为(Action)、视图(ViewPart)、编辑器(Editor)、透视图(Perspective)等10章的内容;第三篇主要讲述插件开发的高级内容,包括开发高级内容、富客户端平台技术(RCP)、Draw2d,以及GEF介绍与实现等4个章节;第四篇则围绕插件开发和GEF应用两个主题,精心设计了两个程序开发实例,使读者能更加全面地理解插件开发相关技术。 目录: 第一篇 开发基础 第1章 Eclipse平台简介 1.1 Eclipse集成开发环境(IDE)介绍 1.1.1 安装及使用Eclipse IDE 1.1.2 为Eclipse IDE安装中文语言包 1.1.3 IDE的环境设置 1.1.4 使用帮助系统 1.2 什么是Eclipse 1.3 SWT/JFace技术 1.4 插件技术和OSGi 1.5 RCP技术 1.6 EMF技术 1.7 GEF技术 1.8 本章小结 第2章 SWT/JFace概述 第3章 SWT编程基础 第4章 使用基本控件与对话框 第5章 容器与布局管理器 第6章 界面开发工具 第7章 高级控件使用 第8章 SWT/Jface的事件处理 第二篇 核心技术 第9章 Eclipse插件体系结构 第10章 开发 第一个插件项目 第11章 操作(Actions) 第12章 视图(Views) 第13章 编辑器(Editors) 第14章 透视图(Perspectives) 第15章 对话框和向导(DialogsWizards) 第16章 首选项(Preferences) 第17章 帮助内容(Help Contents) 第18章 备忘单(CheatSheet) 第三篇 高级进阶 第19章 插件开发高级内容 第20章 富客户端平台(RCP)技术 第21章 Draw2d 第22章 GEF介绍与实现 第四篇 综合实例 第23章 插件开发实例 第24章 GEF实例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值