项目自动化之道--如何构建、部署、监控Java应用
基本信息
编辑推荐
程序员修炼三部曲之末尾篇。您想可靠准确地建构、测试和部署您的软件吗?您想少花时间到简单劳动,而腾出大部分功力精雕细镂您的软件、锻炼您的技巧吗?本书正好符合您的需要。
内容简介回到顶部↑
您想可靠准确地建构、测试和部署您的软件吗?您想少花时间到简单劳动,而腾出大部分功力精雕细镂您的软件、锻炼您的技巧吗?本书正好符合您的需要。
让计算机为您干活,让它去做所有必需的枯燥的重复性工作和杂事——以规律间隔建构和测试代码,产生恒定的发布,部署和安装应用,以及监控所运行的程序。您将会有更多时间和精力去享受编写高质量代码的乐趣。
本书由程序员所写,也是为程序员所用。这里的自动化并非与处理工资表有关,它是对那些日复一日、周复一周编写应用软件的人而言的。为了跟上开发周期的脚步,我们需要更巧妙地工作,而不是更卖力地工作。
只要是手工过程,问题就会迅速积小成大,自动化正是其解决之道。
阅读本书,您将:
·学习怎样使用ant和cruisecontrol对建构和测试过程自动化;
·通过运行简单的脚本,就能根据需要生成经过测试的发布;
·使用电子邮件、短信、rss和可视装置让团队中的每个人知道项目的当前健康状况;
·创建安装/卸载程序,或者使用java web start部署到远端机器上;
·分发诊断测试代码,从而节约故障排错时间;
·探讨使程序自我监控和报告问题的技巧。
你还会学到实现自动化工作的很多诀窍花招,它们都是很有趣的。
本书所讲述的内容都是有关java领域的软件开发工具。
mike clark先生是一位咨询师、作家和演说家。更重要的是,他还是一名程序员。在他的clarkware咨询公司,他已经在让自己的团队更好更快地开发软件了。(您还等什么呢?)
让计算机为您干活,让它去做所有必需的枯燥的重复性工作和杂事——以规律间隔建构和测试代码,产生恒定的发布,部署和安装应用,以及监控所运行的程序。您将会有更多时间和精力去享受编写高质量代码的乐趣。
本书由程序员所写,也是为程序员所用。这里的自动化并非与处理工资表有关,它是对那些日复一日、周复一周编写应用软件的人而言的。为了跟上开发周期的脚步,我们需要更巧妙地工作,而不是更卖力地工作。
只要是手工过程,问题就会迅速积小成大,自动化正是其解决之道。
阅读本书,您将:
·学习怎样使用ant和cruisecontrol对建构和测试过程自动化;
·通过运行简单的脚本,就能根据需要生成经过测试的发布;
·使用电子邮件、短信、rss和可视装置让团队中的每个人知道项目的当前健康状况;
·创建安装/卸载程序,或者使用java web start部署到远端机器上;
·分发诊断测试代码,从而节约故障排错时间;
·探讨使程序自我监控和报告问题的技巧。
你还会学到实现自动化工作的很多诀窍花招,它们都是很有趣的。
本书所讲述的内容都是有关java领域的软件开发工具。
mike clark先生是一位咨询师、作家和演说家。更重要的是,他还是一名程序员。在他的clarkware咨询公司,他已经在让自己的团队更好更快地开发软件了。(您还等什么呢?)
目录回到顶部↑
关于程序员修炼三部曲 1
前言 iii
第1章 序言 1
1.1 瞧,不用手就能搞定 1
1.2 自动化的类型 4
1.3 关于自动化的问题 6
1.4 路线图 9
第2章 单步建构 11
2.1 建构软件很像做香肠 11
2.2 选择项目目录结构 16
2.3 生成你的首个建构 17
2.4 用ant建构 20
2.5 对建构进行“口味测试” 30
2.6 打扫战场 35
2.7 脚本化建构 36
2.8 提早开始 40
2.9 小结 41
第3章 定时建构 43
3.1 定时首个建构 44
3.2 将建构置于cruisecontrol 47
前言 iii
第1章 序言 1
1.1 瞧,不用手就能搞定 1
1.2 自动化的类型 4
1.3 关于自动化的问题 6
1.4 路线图 9
第2章 单步建构 11
2.1 建构软件很像做香肠 11
2.2 选择项目目录结构 16
2.3 生成你的首个建构 17
2.4 用ant建构 20
2.5 对建构进行“口味测试” 30
2.6 打扫战场 35
2.7 脚本化建构 36
2.8 提早开始 40
2.9 小结 41
第3章 定时建构 43
3.1 定时首个建构 44
3.2 将建构置于cruisecontrol 47
译者序回到顶部↑
大型应用的建构、分发和部署过程,如果手工实现的话,工作量会很大,往往占整个开发工作量的很大份额。由于它们的重复性比较强,如何让计算机自动实现,以减少人工干预和人为错误,从而使程序员们集中精力从事应用开发,是每个软件企业管理者和开发者应该关心的问题。而且如果在建构过程和软件运行中实现监控,就能让我们从盯着屏幕的简单劳动中解脱出来,在做好现有业务的同时,维护好原有的系统。
计算机是机器,擅长干重复性的繁重劳动,而我们人类这方面则不行,而且我们有更重要的事情要做——即计算机不善于做的创新性活动。因此我们要扬长避短,才能最充分地利用现有资源。Mike Clark先生的《项目自动化之道》一书正是阐述如何才能做到这一点。他所提出的方法简单易懂,对于每个程序员,而不仅是Java开发者,都有很高的借鉴价值。作者从简单的单步建构讲起,把单步建构放到时间表上定时执行就实现了定时建构。然后作者谈到按键发布,通过编写脚本,让团队中的每个人都能简单地敲入几个键,就能从当前的开发代码得到分发文件。最后作者自动化了对前述内容的监控方式,使自动化技术在以上领域的应用中达到了极致。
原著全文闪烁着作者和故事里每个人的智慧,希望能给读者一些这方面的启示,因为利用别人的现有经验,总比我们自己摸索可以让我们成长得更快。原著文笔流畅,简洁明快,通俗易懂,能够担当本书的翻译,我感到十分荣幸。
翻译过程中我曾与原著编辑Dave Thomas先生和作者Mike Clark先生联系,交流其中的疑问,得到热情指导,在此向两位老师致以崇高敬意。本书能够完稿,离不开胡云香、白荣献、张小潘、韩磊等人的大力帮助,尤其是我的老师兼朋友胡云香博士花费很多时间解决了最终的几个翻译难点,在此表示衷心感谢。译文成稿后由孟岩复审,他提出了不少改进意见,对提高译文的质量起到了很大作用,谢谢!博文视点的同仁们为我提供了不少支持和关心,趁此机会请允许我表达对你们的感激之情。还要感谢我的妻子雷顺及家人,谢谢你们对我的一贯支持和鼓励,妻子还帮我将大部分译稿输入计算机,节省了我不少时间和精力。
最后也是最重要的,我想感谢所有能够选择阅读本书的读者。您的肯定是我最好的慰藉,您的批评是对我进步的激励,您能够采纳本书中提到的自动化方案,甚至开发出比它们更好的方案将是我最大的企盼。
译文力争体现原著完美的语言风格。由于译者水平有限,可能存在某些翻译疏漏之处,请读者不吝赐教,也欢迎您发邮件到zhangfei97@163.com,与我交流本书有关的信息。再次感谢!
张 菲
2005年5月
计算机是机器,擅长干重复性的繁重劳动,而我们人类这方面则不行,而且我们有更重要的事情要做——即计算机不善于做的创新性活动。因此我们要扬长避短,才能最充分地利用现有资源。Mike Clark先生的《项目自动化之道》一书正是阐述如何才能做到这一点。他所提出的方法简单易懂,对于每个程序员,而不仅是Java开发者,都有很高的借鉴价值。作者从简单的单步建构讲起,把单步建构放到时间表上定时执行就实现了定时建构。然后作者谈到按键发布,通过编写脚本,让团队中的每个人都能简单地敲入几个键,就能从当前的开发代码得到分发文件。最后作者自动化了对前述内容的监控方式,使自动化技术在以上领域的应用中达到了极致。
原著全文闪烁着作者和故事里每个人的智慧,希望能给读者一些这方面的启示,因为利用别人的现有经验,总比我们自己摸索可以让我们成长得更快。原著文笔流畅,简洁明快,通俗易懂,能够担当本书的翻译,我感到十分荣幸。
翻译过程中我曾与原著编辑Dave Thomas先生和作者Mike Clark先生联系,交流其中的疑问,得到热情指导,在此向两位老师致以崇高敬意。本书能够完稿,离不开胡云香、白荣献、张小潘、韩磊等人的大力帮助,尤其是我的老师兼朋友胡云香博士花费很多时间解决了最终的几个翻译难点,在此表示衷心感谢。译文成稿后由孟岩复审,他提出了不少改进意见,对提高译文的质量起到了很大作用,谢谢!博文视点的同仁们为我提供了不少支持和关心,趁此机会请允许我表达对你们的感激之情。还要感谢我的妻子雷顺及家人,谢谢你们对我的一贯支持和鼓励,妻子还帮我将大部分译稿输入计算机,节省了我不少时间和精力。
最后也是最重要的,我想感谢所有能够选择阅读本书的读者。您的肯定是我最好的慰藉,您的批评是对我进步的激励,您能够采纳本书中提到的自动化方案,甚至开发出比它们更好的方案将是我最大的企盼。
译文力争体现原著完美的语言风格。由于译者水平有限,可能存在某些翻译疏漏之处,请读者不吝赐教,也欢迎您发邮件到zhangfei97@163.com,与我交流本书有关的信息。再次感谢!
张 菲
2005年5月
前言回到顶部↑
俗话说“遍身罗绮者,不是养蚕人”,对软件开发者也是一样——我们为别人写程序却鲜有时间让我们自己的工序自动化。如果让计算机为我们多承担一些枯燥乏味的重复性劳动,我们不仅多些时间做更有价值的工作,还能确保更多可重现的结果;那该多好!
本书中所谈的自动化并非如何自动备份或处理工资表之类,而是对那些日复一日编写应用软件的人而言的。为了跟上开发周期的脚步,我们需要更巧妙地工作,而不是更卖力地工作。只要是手工过程,问题就会迅速积小成大,自动化正是其解决之道。
本书淋漓尽致地向你呈现如何使软件项目自动化——从建构和测试代码到部署、监控成品软件的运行。遵循这些自动化处方,你的团队将会消除不一致因素,节约时间,让自己和你的软件用户都生活得更惬意些。
·从哪儿找示例
本书通篇讲述自动化机制:shell脚本、建构文件、配置文件及Java代码。其中有的完整列出,有的则只是片段。如果你需要运行示例或查看片段的完整清单,请看页边空白处:每个例子都来自于某个文件,文件名印刷在例子边上的页边空白处。
书中所有示例均可在《项目自动化之道》的网站找到,网址为:
http://www.pragmaticprogrammer.com/sk/auto
·本书之外
通读此书你会碰到程序自动化领域的故事。经历过的人乐于将其奉献出来,让大家了解实际开发项目时自动化是如何大有裨益的。
自动化有多种形式,可以应用于所有各类项目活动。本书着重于软件项目中那些我们认为是自动化条件成熟的核心过程。但这还不是全部。如果读完本书你还想了解得更多,欢迎访问:
http://www.pragmaticautomation.com
在此网站上,孜孜不倦的作者放着项目自动化有关的新闻和内容,包括你所发的项目经历。
·一个称为“主目录”的地方
为了确保最大可能的准确性,本书中所有例子均经过运行,只要条件允许还将其中的控制台输出逐字拷贝下来。因而,输出采用我所称之为“主目录”的MacOSX2操作系统习惯。下面是如何切换到主目录下work子目录的例子:
$ cd~/work
“$”字符为shell提示符。Unix上,波折号“~”为当前用户主目录的快捷表示。Unix风格的路径通常使用小写字母;Mac OS X则不同,许多默认路径采取大小写字母混用,所以路径可能与你的主目录所在机器上的路径有所不同。
所有示例文件都是在著书时动态插入的,以免Copy/Paste的危险。由于我用的是Mac O SX,意味着你会看到很多Unix的shell脚本,而非Windows批处理文件。如果你是Windows用户,将会发现其脚本语言足够强大,也能实现这里Unix脚本的功能。作为替代方案,Cygwin网站(http://www.cygwzn.com)提供了免费的POSIX仿真库,可以让你在Windows上运行这些Unix脚本。
·排版标记的约定
黑体
表明这里的名词是首次出现的专有名词,或者来自于其他语言的名词,如“日志记录器”。
本书中所谈的自动化并非如何自动备份或处理工资表之类,而是对那些日复一日编写应用软件的人而言的。为了跟上开发周期的脚步,我们需要更巧妙地工作,而不是更卖力地工作。只要是手工过程,问题就会迅速积小成大,自动化正是其解决之道。
本书淋漓尽致地向你呈现如何使软件项目自动化——从建构和测试代码到部署、监控成品软件的运行。遵循这些自动化处方,你的团队将会消除不一致因素,节约时间,让自己和你的软件用户都生活得更惬意些。
·从哪儿找示例
本书通篇讲述自动化机制:shell脚本、建构文件、配置文件及Java代码。其中有的完整列出,有的则只是片段。如果你需要运行示例或查看片段的完整清单,请看页边空白处:每个例子都来自于某个文件,文件名印刷在例子边上的页边空白处。
书中所有示例均可在《项目自动化之道》的网站找到,网址为:
http://www.pragmaticprogrammer.com/sk/auto
·本书之外
通读此书你会碰到程序自动化领域的故事。经历过的人乐于将其奉献出来,让大家了解实际开发项目时自动化是如何大有裨益的。
自动化有多种形式,可以应用于所有各类项目活动。本书着重于软件项目中那些我们认为是自动化条件成熟的核心过程。但这还不是全部。如果读完本书你还想了解得更多,欢迎访问:
http://www.pragmaticautomation.com
在此网站上,孜孜不倦的作者放着项目自动化有关的新闻和内容,包括你所发的项目经历。
·一个称为“主目录”的地方
为了确保最大可能的准确性,本书中所有例子均经过运行,只要条件允许还将其中的控制台输出逐字拷贝下来。因而,输出采用我所称之为“主目录”的MacOSX2操作系统习惯。下面是如何切换到主目录下work子目录的例子:
$ cd~/work
“$”字符为shell提示符。Unix上,波折号“~”为当前用户主目录的快捷表示。Unix风格的路径通常使用小写字母;Mac OS X则不同,许多默认路径采取大小写字母混用,所以路径可能与你的主目录所在机器上的路径有所不同。
所有示例文件都是在著书时动态插入的,以免Copy/Paste的危险。由于我用的是Mac O SX,意味着你会看到很多Unix的shell脚本,而非Windows批处理文件。如果你是Windows用户,将会发现其脚本语言足够强大,也能实现这里Unix脚本的功能。作为替代方案,Cygwin网站(http://www.cygwzn.com)提供了免费的POSIX仿真库,可以让你在Windows上运行这些Unix脚本。
·排版标记的约定
黑体
表明这里的名词是首次出现的专有名词,或者来自于其他语言的名词,如“日志记录器”。








点击看大图



加载中...

