写点什么

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

2008 年 2 月 04 日

《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 调用,都可以认为是“变味架构”。

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

2008 年 2 月 04 日 03:41366
用户头像

发布了 60 篇内容, 共 13.9 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

熟悉又陌生的 k8s 字段:finalizers

郭旭东

Kubernetes

从零开始搭建完整的电影全栈系统(四)——restfulApi用户的认证授权及用户注册

刘强西

RESTful API yii

朱嘉明:全球科技革命正在逼近“奇点”,区块链影响未来人类社会的走向

CECBC区块链专委会

人工智能 科技 科技革命

探路人与解题者:腾讯数字生态大会上AI语音助手+X的无限可能

脑极体

字节跳动半夜给员工发钱,全员沸腾了

程序员生活志

字节跳动 职场 薪资

[翻译]Go Code Review Comments

卓丁

Pulsar Flink Connector 2.5.0 正式发布

Apache Pulsar

flink 开源 flink 消费 kafak Apache Pulsar

区块链支付通道系统搭建,USDT跑分承兑商系统

13823153121

区块链数字钱包开发,数字钱包app

13530558032

合约跟单模式系统开发,交易所合约跟单源码

13530558032

拥抱K8S系列-06-K8S如何解决docker部署的问题

张无忌

Docker Kubernetes 运维 service

大厂面试爱问的「调度算法」,20 张图一举拿下

小林coding

算法 操作系统 内存 进程

LiteOS间歇计算技术:IOT终端真正感受“电量自由”

华为云开发者社区

物联网 LiteOS

云小课 |选定合适的证书,做“有证”的合规域名

华为云开发者社区

证书 课程练习 ssl

滴滴AR实景导航背后的技术

滴滴技术

人工智能 滴滴技术 实景导航 地图与公交事业群分享月

USDT承兑支付系统,区块链跨境支付源码

13530558032

不要以为Bug写的好就是好程序员,其实这只占不到15%

小Q

Java 学习 程序员 架构 面试

JavaScript引擎的事件循环机制是怎样工作的?

Walker

Java 前端 运行时栈帧 事件循环

大项目写代码写到晕头转向?敏捷多项目框架解君愁

Philips

敏捷开发 程序设计 软件架构

数字货币交易所开发方案,交易所源码

13530558032

oeasy教您玩转linux010210管理应用aptitude

o

大数据任务调度 - 有向无环图(DAG)之拓扑排序

海豚调度

数据结构 大数据任务调度 DAG 拓扑排序 Apache DolphinScheduler

这篇文章,把中国科技的真实底子讲透了

CECBC区块链专委会

中国 科技 产业竞争

年薪150万的阿里大佬工资全部上交!家务全包!却被老婆嘲讽嫌弃!网友:你老婆外面有人!

程序员生活志

互联网 职场 大厂 薪资

USDT支付通道搭建,USDT承兑商跑分系统

13823153121

我四面字节跳动,拿下1-2级offer,太感谢这份“神仙级面试真经pdf”

云流

编程 计算机网络 架构师 java面试

超酷! Atlas给黑白视频“上色”

华为云开发者社区

视频 Atlas

多线程与高并发之锁

彭阿三

多线程 多线程与高并发

这13道面试题,哪怕背你也要背过来。别说我没提醒你

小Q

Java 源码 架构 面试 多线程

如何利用Chrome DevTools优化网页性能

熊斌

学习

MySQL最全整理(面试题+笔记+导图),面试大厂不再被MySql难倒!

Java成神之路

Java MySQL 编程 程序员 面试

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

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