10

折叠屏手机不会用?快来学学华为Mate X的养护诀窍

 4 years ago
source link: https://developer.51cto.com/art/201912/104328.htm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

折叠屏手机不会用?快来学学华为Mate X的养护诀窍

折叠屏手机不会用?快来学学华为Mate X的养护诀窍



磨刀不误砍柴工,拥有一个好的工具,在现代化编程、团队管理中拥有重要的地位。2008年的软件开发生命周期管理软件(software development lifecycle: SDLC)在2008年有了长足进展,JavaWorld的Java工具领域专家John Ferguson 为我们带来2008年Java领域自动构建框架,软件开发周期管理工具,测试工具,以及IDEs方面的总结。他指出java工具2008年的变化包括CI持续集成工具的改进,JVM脚本语言支持上升,以及对支持多核系统编程工具需求增加等。让我们开始吧!

Build automation

让我们从现代软件开发进程的核心部分开始:Build automation自动构建,整体来看,build automation包括持续集成(continuous integration :CI)工具,构建脚本build-scripting工具,代码质量控制工具,以及版本管理或者称为SCM存储管理工具。

build automation的第一个舞台是自动build脚本。传统工具类似于Apache Maven和Apache Ant,以及最新的Gant和Gradle,能够帮助创建build脚本。在2008年,我看到许多大型公司都开始使用Maven,被Maven能在内部软件组件中为多个团队之间提供标准化开发实践,和提供显著的连贯透明的架构所吸引。这个趋势明显将继续延续到2009年。

Maven:最新的和即将发布的功能

在2008年,Maven 2的最高版本2.0.9发布,Maven 2.0.9修正了bug和添加了一些新的功能,Maven拥有更好的稳定性,并提供很好的方式使用插件来驾驭依赖管理。比如,你能够使用Checkstyle 插件来更新Checkstyle的版本。

总而言之,Maven开发中最活跃的是专注于新的重要版本的发布:Maven 2.1,这个版本将于2009年初面世。新的版本将包含很多性能改进和最优化,包括为多模块项目提供更精细的build 规则,和能够平行下载不相关依赖包,而不是现在我们使用的串行方式。

Eclipse对Maven的支持更好,m2eclipse 插件为Maven开发提供了完整的功能化的图形编辑器,提供Maven pom.xml文件图形化管理。这些功能包括依赖图(见下图1)和依赖层次。比如它让你更容易可视化的查看编辑你的项目依赖,了解和解决依赖冲突。

0942180.jpg

依赖搜索也是m2eclispe提供的另一个很有用的功能,一旦你开始使用,你会发现你离不开它了。它让添加一个新的依赖包进入你的项目不会出现任何问题。你只需要通过名字搜索Maven存储空间,选择版本,加入到你的pom.xml文件中。

Maven存储管理是也是每个Maven用户都需要的工具,Maven存储空间能够同时支持作为Inter公共存储空间的一个依赖缓存存在,也支持作为一个库发布和分享给整个公司使用。2008年见证这个领域快速升起的一颗新星:Nexus,Nexus让管理Maven存储空间成为一种享受。

同时Maven的速度也有很大提高。

0942181.jpg

持续集成实践添加了一个新的方向是代码编写规则工具,随着时间推移帮助开发者显示和分析代码规则,2008年在持续集成控制方面也有不少进展,Bamboo,Atlassian的一个商业持续集成工具,为这个领域注入了大量新功能,包括图形显示随时间推移的build过程和独立测试过程。

引用:Gant和Gradle取代了Ant

传统的Java build脚本工具,Ant,在2008年似乎有点过时。相反,新的工具 Gant 在迅速发展中。Gant是也是一个build脚本工具,让你能够使用Groovy而不是XML来build Ant任务。Gant是前途光明的Grails web框架的底层build工具,因此也在2008年获得关注。如果你不能离开Ant在build脚本方面的灵活性,又无法忍受累赘的XML语法,Gant值得一看。

同样的,Gradle也是一个基于Groovy的build工具,于2008年初次露面。Gradle试图使用Groovy语法来提供Ant的灵活性,而且它还让你获得许多类似Maven的功能比如传递依赖管理和约定大于配置。

CI持续集成进入生命周期管理SDLC

2008年java开发领域在持续集成工具方面进步巨大。持续集成工具被视为生命周期管理工具的关键部分。一个好的CI工具让你能够持续跟踪整个项目,不仅仅是测试总数,最新的测试失败,还包括你的整个测试是如何进行的。这种数据对于开发进程调优非常有好处。

引用:Hudson受到开发者宠爱

在过去的一年中,Hudson 从一个开发中的产品变成市场中流行的开源CI项目。虽然Hudson的魅力有时候来自于极少出错,Hudson的直观的用户界面和有用的报表功能让它成为一个强大的小CI持续集成工具。

Hudson也领导了Maven集成市场,成为目前唯一的能够基于Maven依赖图正确决定哪个项目需要重新build的工具。当你在管理多模块Maven项目时,这个功能能够让你节约大量的时间。Hudson也提供丰富的插件库,允许你添加其他功能,比如与JIRA或者Trac集成,或者自动部署到Tomcat服务器上

持续集成工具和代码质量工具集成

一些持续集成工具能够集成优秀的代码质量工具,比如Checkstyle,PMD,FindBugs,Cobertura和Emma。

这些工具提供有用信息,监控你的项目是否健康,比如代码标准,不良代码,以及代码覆盖等。开源代码质量工具相对比较稳定,今年Checkstyle发布了新的功能,持续发展的FindBugs控制了数据库,在商业市场,Clover发布了多个创新的功能,包括per-test每测试覆盖,让你能够不仅看到你的应用代码在测试中执行有多频繁,而且能够看到哪些测试执行了代码。

另外一个方面,2008年持续集成工具从独占的专家领域变得更加开放民主,让开发团队更多的参与进来。比如在Hudson中,一个插件让开发者"申明"一个失败的build,来告诉团队其他开发者他正在修改这个地方。在Bamboo中,你能对build添加注释,或者通过一个失败的build信息启动一个面向开发者的即时通讯讨论。Hudson甚至添加了一个CI游戏插件让你开发团队成员进行提升代码质量的比赛。

Subversion 1.5发布

在版本控制存储方面,2008年最大的新闻就是等待了很久的Subversion 1.5发布。它带来了一些强大的新功能,包括合并跟踪和存储复制支持改进。这个新的合并功能让多个不同的分支能够合并修改。

测试工具

基于Java的测试工具领域2008年发生了很多事情,尤其是behavior-driven development(BDD)行为驱动开发框架引起了大家的兴趣,以及web测试工具发展迈进了一大步。

BDD是一个在test-driven development(TDD)测试驱动开发技术上发展起来的敏捷开发领域的新的技术。JBehave在2008年9月发布,Jbehave是一个java BDD框架,你能够使用JUnit测试案例写BDD脚本,通过特殊的annotations,比如@Given, @When, 和@Then。你也能写相应的文本脚本,让你能够在实现解决方案之前描述你的行为流程。下面是例子:

Java代码

Simple JBehave test case
public class AccountDepositSteps extends Steps {
Account account = null;
BigDecimal initialDeposit = new BigDecimal("100.00");
@Given("I have created a new account")
public void createAccount() {
account = new Account();
}
@When("I deposit $100 into the account")
public void deposit() {
account.makeDeposit(initialDeposit);
}
@Then("My account should have a balance of $100")
public void checkBalance() {
ensureThat(account.getBalance(), equalTo(initialDeposit));
}
}

另外一个基于Groovy的BDD框架:easyb,提供了Groovy的强大功能,能够结构性的在java测试领域实现BDD。Easyb使用Groovy域特定语言DSL能够跟随BDD脚本模型。Groovy能让测试具有更大的表达性,尤其当你熟悉Groovy惯用方法,比如文件集成,激活和闭包。上面的例子用easyb重写如下:

Java代码

scenario "Make initial deposit onto a new account", {
given "I have created a new account",{
account = new Account()
}
when "I deposit $100 into the account", {
initialAmount = 100
account.makeDeposit(initialAmount)
}
then "the balance should be equal to the amount deposited", {
account.balance.shouldBe initialAmount
}
and "My account should have a balance of $100", {
account.balance.shouldBeEqualTo initialAmount
}
}

Web测试工具进化

这里有很多测试工具不仅仅是单元测试,2008年Web测试工具进展迅速。这个领域尤其值得注意的工具有两个:Selenium 和Canoo WebTest.

Selenium 是一个原始测试工具,在浏览器中运行你的web测试。在2008年,Selenium 1.0 beta发布了,提供更好的稳定性和新的功能。通过录制Selenium测试脚本,你能使用Selenium做功能测试和回归测试,也能通过Java甚至Groovy写Selenium测试案例来支持TDD测试驱动开发。2008年也见证了Selenium Grid的出现,一个非常有前途的工具,帮助你分布你的测试到多个不同的服务器,并且平行运行测试或者在特定平台浏览器上运行。

Canoo WebTest 在2008年也非常活跃。这个强大的web测试框架非常适合TDD或者BDD实现。使用Canoo WebTest,你能够用XML或者Groovy为你的Web应用写测试案例。Canoo WebTest运行在Web应用上,提供清晰,详细的HTML测试报告。Grails使用Canoo WebTest用于自动生成功能测试。Canoo WebTest并不像Selenium功能那么强大,对JavaScript的支持没有Selenium那么好。

IDEs

在IDE方面,2008年见证了 Eclipse 3.4 Ganymede 和NetBeans 6.5的发布,两者都带来了很多新功能。Eclipse 3.4 改进了java开发环境,包括:更好上下文帮助功能,更好的快速修复,大量提升可用性。一个很好的被重构的功能是Extract Class option,让你能够从class中获得一组属性和函数,创建一个新的class封装这些字段和函数。Eclipse 3.4的编译速度变快,能从多核进程中获得优势,把计算分布到不同的芯片上运行。Eclipse 3.4支持外部Subversion,完全支持Subversion插件。

引用:Groovy Grails和IDEs

Groovy和Grails 2008年大量侵入java社区,Groovy是一个动态脚本语言,Grails是一个强大的基于Groovy的类似Ruby的web框架。2008年Groovy和Grails,以及Scala和Clojure发展很快,但是对于它们的IDE支持并不好,主要是因为它们是动态语言,比如很难提供很好的代码完成功能,因为动态语言缺乏类型。目前支持动态语言最好的是IntelliJ,其次是NetBeans,Eclipse仍需努力。可以预见到,2009年对于动态语言的支持会继续发展。

我最喜欢的Eclipse 3.4的功能是 Mylyn 3.0,Mylyn 是一个任务管理工具,Mylyn管理构成了一个开发者工作日的所有任务,例如我们修复的bug或者我们增加的特征,都被无缝的集成到IDE的界面中了。IDE集成提供了例如代码补全,变更管理和离线编辑等功能。

NetBeans 6.5

随着NetBeans 6.5的发布,NetBeans成为最舒服的开发环境之一。和以往一样,它提供了比Eclipse更流畅的用户使用体验,虽然和Eclipse相比缺少了一些插件。对Maven用户一个好消息是:NetBeans 6.5对Maven更加友好。虽然没有Eclipse的m2eclipse功能那么丰富,NetBeans Maven插件质量很好,并且视Maven项目为第一类成员对待。

NetBeans 6.5提供优秀的动态语言支持,包括JavaScript,Groovy和Grails,PHP,甚至是Ruby/Rails。你能使用所有这些语言创建项目,NetBeans为它们提供强大的开发环境。

NetBeans也支持JavaFX开发,通过可选插件,能够创建和调试JavaFX应用。

最后NetBeans 6.5为库提供更好的本地支持,比如Spring, Hibernate, 和 JavaServer Faces (JSF),提供比如进入Spring Bean的对话框这样的功能,并且支持在IDE内运行Hibernate 查询语言查询。

总结

2008年在Java开发工具领域出现了许多重要的大事,开发环境提供更丰富的功能,更容易使用,并且满足了日益增加的对动态语言类似Groovy和Ruby的支持。对动态语言兴趣的增加在2008年趋势明显。另外一个整体趋势就是自动build工具在2008年发展很快。Groovy在测试领域成为领头羊,它让开发者更加容易编写更富表达能力和更加强大的测试工具,比如Hudson和Bamboo,将CI持续集成从专家手中释放出来面向一般的开发者。Maven也更加容易使用,拥有丰富的用户界面让Maven更加能够被理解。同时Subversion也提供新的自动脚本功能。

【编辑推荐】

【责任编辑:田超 TEL:(010)68476606】

点赞 0

关注“51CTO技术栈”微信公众号获取更多精彩内容


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK