11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

软件开发社区“宗教信仰”之争风波未息

  • 2007-10-17
  • 本文字数:2185 字

    阅读完需:约 7 分钟

James O. Coplien 在 10 月 9 日,以创造并追随宗教信仰来描述当今的软件产业,在社区中引起了轩然大波。他在文中提出,我们应该更关注于思考,而不是对所谓的最新技术和热门词汇言听计从,否则就有可能采用并非是最有效率的做法。

Dave Quick 对 Coplien 表示了赞赏

人们常常都在渴求一条“唯一正确的道路”,然后把对质疑他们观点的意见都视为异端……虽然我不清楚是不是人们只有对于新生的热门事物才投入如此的狂热,但这确实是个非常普遍的问题,你的文章把它带到了明处,做的棒极了! 有些人发现某些技术可以在某些场景下提高生产率,然后试图加以推广,这并没什么错。但人们很容易就只关注于技术本身而忽略了它们所适用的特定场景。

你所提到的所有热门词汇都有其价值所在。大多数阐述它们的文章都多把重点放在了其价值所在上面。但是,了解什么时候不该用某种技术,应该是和了解什么时候该用某种技术同样重要的……不幸的是,我们中的大多数人都抱着教条主义的观点,把对技术局限性的描述当作攻击来看待。

在 InfoQ 英文站的报道中,gcom nz 回帖支持说:> 用Jim 的说法来形容REST 狂热者(RESTefarians)真是再贴切不过了,那些人一直坚信只有他们的做法是正确的,GET,PUT,POST,DELETE 是唯一的真正的集成技术,所有胆敢对此提出质疑的人都会被他们大肆批判。

无独有偶,国内开源项目 SpringSide 创始人江南白衣在 9 月 22 日也对“REST 狂热者”提出了批驳:> 构建一个分布式的系统并不仅仅只有一种方法。REST 是一种,SOA 是另一种,分布式的对象和 RPC 也是。任何人认为 REST 是唯一的方法都是天真的!现实就是,许多真正成功的 Web 应用程序都不是 REST 的。这样不好吗?我不觉得——他们只是在利用 TimBL 和其他人发明的东西去很好地完成工作,并做 得很棒。他们没有遵循 REST 规则,这重要吗?只是对于 REST 盲从者来说很重要;那些应用程序运行得很好,可以伸缩,用户们喜欢——谁会说它们错了呢?

不迷信权威和热门技术,从实际出发,寻找最适合解决当前问题的方案,从实践中来,到实践中去,这不单单是开发人员所应遵循的原则,更是“人们正确地认识世界和能动地改造世界的无限发展的过程”。在几年前《J2EE Developement Without EJB》译文版上市的时候,ThoughtWorks 咨询师、InfoQ 中文站编辑熊节便在序中写到:

Rod Johnson 发出振聋发聩的一呼:尔等不必向泥胎偶像鼎礼膜拜,圣灵正在尔等自身——这就是他在书中一直倡导的“循证架构”(evidence- based)。选择一种架构、一种技术的依据是什么?Rod Johnson 认为,应该是基于实践的证据、来自历史项目或亲自试验的经验,而不是任何形式的偶像崇拜或者门户之见。书中谈到了企业应用方方面面的问题和 解决办法,而这些方案无一不是这种“循证方法”的产物。…… 这潮流不是 Spring 和 Hibernate,也不是 IoC 和 AOP,甚至不是“轻量级架构”,而是一切实事求是的“循证架构”的工作方式。

但是,Colpien 在文章中却拿出了 TDD 作为反例:

我们被告知“只有做 TDD 你才是一个专家”……,却不告诉我们为什么要相信这一点,没有证明,也没有证据。只是说“你就相信这一点吧,没错儿!”。

难道整个敏捷社区在宣传敏捷文化,推广敏捷实践中所做的种种努力,就真的如 Cosplien 所说的一样“盲目”么?在我们成功地使用了 TDD 来提高生产率和代码质量的时候,是不是也会对他的话产生怀疑呢?“信仰”这个词从广义来讲说范围太大,如果对其进行细化,至少可以分成两类:一种是自己并无亲身体验,只是听到众多技术专家、敏捷推动者对 TDD 的宣传、推 崇,就陷入了对这个“魔咒”无限的狂热中,这个可以算是“宗教信仰”;另外一种,则是在实际开发过程中有过使用 TDD 的丰富经验,并且对 TDD 所带来的益处深有体 会,所以才会坚定不移的继续使用 TDD,并致力于它的推广。那么,你对敏捷和 TDD 的感觉应该属于哪一种?

极限编程 Yahoo group 中,llja Preuss 对 Coplien 反驳说:

是的,我有时候也看得到身边的教条主义,但是却很难把它跟敏捷甚至是软件开发联系起来……我所亲见的,更多是对已经获得成功的事物所怀有的激情——它往往容易和教条主义 / 信仰相混淆。要是我们不和别人分享经验的话,我们的激情就会看上去有些不合情理。但如果去要求人们,或是整个社区“虔诚的程度低一些”,那就好像要人别容易动感情一样。纯属扯淡。

Amr Elssamadisy 则在 InfoQ 英文站上对 Coplien 开火: > 我不知道 Jim Colplien 能不能算是 TDD 或是 Agile 的权威……看过他的众多文章后,我不得不怀疑他是不是真的亲身体验过 TDD,并且在宣布结论之前先把自己的成见放在一边。 他甚至在文中这样写:“集成测试和系统测试已经被长期实践证明为效率最低下的寻找 bug 的方式”。 他凭什么这么说?实际上,系统测试是除了代码审查以外,唯一一个得到全面的文档记录,并通过实验测试证明为可以改善代码质量的方式了……

基于以上种种,我只能得出一个结论,Colplien 先生是带着有色眼镜来写这篇文章的,而且他的说法也多多少少没有事实依据可言。

看来,Colpien 的核心观点并没有问题,只是选用了错误的论据进行了错误的证明。这也提醒我们要以冷静理性的态度对待问题,否则便有可能在远离一个极端的同时,走向另一个极端。您的身边是否也存在有对新技术、热门词汇的盲从者?或者敏捷文化的传播者?您对他们的看法是怎样的呢?欢迎与我们分享您的感受和经验。

2007-10-17 20:30702
用户头像

发布了 197 篇内容, 共 49.0 次阅读, 收获喜欢 20 次。

关注

评论

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

冰泉奶茶香牙膏好不好?奶茶控的宝藏牙膏就是它

Geek_50a546

计算机网络的 89 个核心概念

cxuan

后端 计算机网络 网络

HarmonyOS学习路之开发篇——公共事件与通知(一)

爱吃土豆丝的打工人

Java HarmonyOS 鸿蒙操作系统

联想服务斩获两项智能运维大奖 助力企业业务创新与数字化转型

科技大数据

为什么switch的case没有break不行

叫我阿柒啊

Switch case break

基于 Web 引擎扩展技术的 RTC 混合开发框架实践

白玉兰开源

大前端

神经网络吴恩达, 解析极限编程--Kent Beck, Cynthia Andres John 易筋 ARTS 打卡 Week 53

John(易筋)

ARTS 打卡计划

爆赞:这份Github神仙面试笔记,不愧是上了标星120k+的Java面试手册

Java 编程 程序员 架构 面试

带你认识9种常用卷积神经网络

华为云开发者联盟

神经网络 深度学习 卷积神经网络 图像 卷积

JAVA 面向对象 (十四)-- 关键字abstract、final

加百利

6月日更

Gopher China 2021,未来可期

非晓为骁

个人提升 架构师 Go 语言 GopherChina gopher

深入解读 Flink SQL 1.13

Apache Flink

flink

容器化 | 在 Kubernetes 上部署 RadonDB MySQL 集群

RadonDB

MySQL Kubernetes 容器

全球云计算大会|TcaplusDB一举斩获优秀解决方案奖

数据人er

数据库 nosql tencentdb TcaplusDB

AI如何赋能软硬件产品创新?百度大脑开放日西安站解密

百度大脑

AI 百度大脑 开放日 EdgeBoard

拥抱开放的英特尔 让PC行业再次越过创新鸿沟

新闻科技资讯

🏆「作者推荐」【JVM原理探索】深入理解G1垃圾收集器的原理和运行机制

洛神灬殇

G1 JVM 6月日更 垃圾回收器

30分钟接入SDK 融云是如何让开发者做到开箱即用的?

融云 RongCloud

掌门教育自研APM实际分享

白玉兰开源

从零开始学习3D可视化之事件绑定

森友小锘

大前端 物联网 3D 3D可视化

CentOS7 Linux服务器无法远程ssh登陆故障处理

Liyuanjie

Centos 7 linux运维 Linux内核

EasyRecovery——一款专业的数据恢复软件

淋雨

文件恢复 Easyrecovery破解 免费恢复软件 硬盘数据恢复

深度解读MRS IoTDB时序数据库的整体架构设计与实现

华为云开发者联盟

大数据 架构 时序数据库 FusionInsight MRS MRS IoTDB

379页满满的精华!2021版“深入骨髓层”JDK源码小册已封神

Java架构追梦

Java 阿里巴巴 架构 面试 jdk源码

AI论文解读:基于Transformer的多目标跟踪方法TrackFormer

华为云开发者联盟

预测 Transformer 多目标跟踪 TrackFormer 跟踪目标

使用 Scala 宏解决对象转换

GrowingIO技术专栏

scala protobuf 元编程 macro

可视化搭建的一些思考和实践

白玉兰开源

回忆录 | 那些你不能错过的CTF夏令营往届历程,2021精彩继续……

郑州埃文科技

面试官:你知道怎么求素数吗?

华为云开发者联盟

面试 开发者 开发 代码 素数

支持低代码开发和远程真机,DevEco Studio 2.2 Beta1来啦

科技汇

软件开发社区“宗教信仰”之争风波未息_敏捷_李剑_InfoQ精选文章