BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

文章:与Jolt大奖提名图书《Release It!》的作者精彩对话

| 作者 Ryan Slobojan 关注 0 他的粉丝 发布于 2008年2月5日. 估计阅读时间: 2 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

《Release It!: Design and Deploy Production-Ready Software》一书的作者是Michael Nygard,该书已获得2008年度Jolt大奖的提名。此书主要围绕怎样开发产品级软件(production-ready software)以及此类软件与功能完备软件(feature-complete software)之间的差别两个话题展开讨论。在Nygard个人的网站上,他是这样描述写这本书的源动力的:

这本书凝聚了我多年来与生产系统打交道的经验。我经常因为某些本该24x7运作的系统宕机,而在半夜三点受到惊扰。

关于系统设计和架构的书籍往往只告诉你怎样满足功能需求,的确这类书籍对你在QA面前过关会有很大帮助。然而这本书中的重点将放在怎样才能使一款软件成为真正的产品这个话题上。如果你不想整日被电子紧箍所束缚,这本书应该正是你所想要的东西。

详细请阅读: 与Jolt大奖提名图书《Release It!》的作者精彩对话

在这篇文章中,作者写道:

InfoQ: 开发产品级软件中倡导的预先工作的原则似乎与敏捷思想中的需要的时候再动手和必要时再重构的原则有些冲突,你是怎么看这个问题的?

Michael Nygard:作为一个敏捷开发人员,我也时常会面对这个矛盾。对此问题,目前还没有好的解决方法,但是要看到,这两个原则的目的是一致的,那就是设计出好的面向对象的产品。

当完成一段逻辑代码及其单元测试代码后——不管你先写的是哪个——为了改善质量,重构是免不了的。嗯,“改善”,你能告诉我“改善”的具体涵义吗?这是否意味着,对面向对象的设计你心中必须有一个好坏的标准?是的,而这个标准就是Martin Fowler《重构》一书中所说的“变味代码”。“变味代码”只是一个定性的衡量。这里硬要塞进一个严格的定量衡量标准是没有必要的。

我认为对于架构同样如此。对我来说,一个没有时间限制的远程调用,一个未加限制地取回客户所有订单的SOAP调用或者REST调用,都可以认为是“变味架构”。

因此,虽然不赞成预先做大的设计,或者说“大范围的预先架构”,但我认为在系统内部定义合理的边界,设计合理的异常处理机制并且排除“变味架构”是非常有必要的。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

re by michael ma

good, 好文章. 不知道这本书什么时候引进

好书啊,为什么没有中文的版本呢。 by Zong Gang

好书啊,为什么没有中文的版本呢。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

2 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT