写点什么

架构的“顺势疗法”

  • 2013-01-31
  • 本文字数:1292 字

    阅读完需:约 4 分钟

来自 CapGemini 的 Steve Jones 在去年撰写了一篇文章,阐述了在他是如何看待“思考已死”与“ IT 界将技术凌驾于思考之上”的。文章引出了漫长和热烈的讨论,Steve 的观点得到许多人的赞同。为了证明其观点,Steve 以 REST 为例,认为它作为一个技术被过分讨论和滥用,却没有充分的思考或证据来解释它在特定领域的效益。这在文章的评论中引来了大量的讨论,其中有相当数量的人反对这个例子,并认为 REST 优于其他一些 Steve 曾经推荐的技术,例如如 Web Services。

于是,Steve 在近期通过一个非常具体的例子,从另一方面来解释这类缺乏思考的行为方式:

有时候我们会在会议中遇到来自某人的令人赞叹的发言,今天我也有同样的经历,有人写道“我们自己就是病人,我们能停止假装自己就是外科医生吗?”她的观点很简单,过去在公司里已经遇到过这样的挑战,人们依据一些个人观点并在没有数据支持的情况下做出一些关键的决策,而这些决策实施的成果没有被追踪。

Steve 将其形容为“架构的顺势疗法”,用于描述 IT 界中人们仅依据个人观点便做出架构决策的现象。这些决策缺乏事实或案例来说明为何它们能够成功,同时除了部署外,实施的成果也没有被分析。Steve 使用这一现象来说明他的观点:

一个好的架构的挑战是类似于“X 不可行,是因为我们不是用集中的方式工作;我们需要 Y,因为我们采用分治的方式,而且 Y 已经被证明是可行的”。而架构的“顺势疗法”则提出“X 不可行,我们应该采用 Y”或更像是“X 不可行”。没有证据来支持这一“反馈”,基于这一反馈也无法进行建设性的改变。但如果出现任何问题,架构的顺势治疗论者会说:“你本应按我说的做”。

Steve 相信这些“架构的顺势治疗论者”可以用这种方式来建立其职业生涯,宣称“这对我是可行的”,同时这些人不能理解更多的可能带来成功的选择。此外,他相信这些人通常基于臆想的缺点,对经过证明的方式吹毛求疵;他还阐述道,对于那些坚持在企业整合中使用 REST,而对问题空间缺乏完整理解,或是不知道为何其他的技术更合适的人,是一个典型的“架构的顺势治疗论者”。 这些人描绘了架构的美好前景,却没有过亲自动手或是指导他人进行实践的经历。

无论你是否相信“架构的顺势治疗论者”的存在,每个人都应该认同 Steve 的这一论断:所有的架构决策应该基于事实或数据。即使该选择最终被证明是错误的,我们也应该把这一结果记录下来并从中汲取经验教训。

我反对人们基于一系列演示文稿和仅被顺势疗法佐证的个人观点,进行架构决策的方式(或实际的商务决策方式)。这些顺势治疗论者基于无知且自我的“信条”进行评论,扰乱进程并热衷于宣称“按我的方法做会更好”,却不会详细解释他们的方法的必需条件。

Steve 文章中关于 REST 的部分很容易成为焦点,容易使人忽视他努力阐述的中心思想:一些架构决策是在缺乏充分依据的情况下被作出的,而且也许还有一些人在传播推广这种决策方式。

查看英文原文 Architectural Homeopathy


感谢杨赛对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2013-01-31 04:512175
用户头像

发布了 256 篇内容, 共 72.2 次阅读, 收获喜欢 10 次。

关注

评论

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

新视界 | 透过鸿蒙OS看手机操作系统

架构精进之路

操作系统 HarmonyOS 6月日更

☕【JVM性能调优】「CMS垃圾回收器」调优化方案

洛神灬殇

CMS GC jvm调优 6月日更

第六次作业

Geek_9cf7b5

【架构实战营】第 6 模块作业

swordman

架构实战营

Kubernetes手记(16)- 网络通信

雪雷

6月日更

深入浅出 Ajax 的核心原理

悟空聊架构

ajax 架构 大前端 6月日更 悟空聊架构

软件技术从1996年以后就停滞不前了!?难道软件技术难返“春天”了么?

三掌柜

试用期 签约计划 人气作者 TOP10

解读SpringBoot和SpringMVC中配置类的@Impot等导入是如何解析的

赵镇

spring

JAVA面向对象(六)--类和对象

加百利

Java 6月日更

架构实战营 - 模块 6- 作业

泄矢的呼啦圈

架构实战营

Bzz矿机分币APP,深圳云矿机系统开发

JavaScript 学习(五)

空城机

JavaScript 大前端 6月日更

上云赋智的企业们,也许是这届618的最大赢家

脑极体

Kubernetes手记(15)- dashboard

雪雷

k8s 6月日更

【21-11】PowerShell文件 IO 操作

耳东@Erdong

PowerShell 6月日更

项目经理如何才能不背锅

escray

学习 极客时间 朱赟的技术管理课 6月日更

自然语言处理技术

Qien Z.

nlp 6月日更

Nike上货提醒:监控到商品尺码SKU

木头

Nike监控 上货监控 SKU监控

微服务的由来

卢卡多多

微服务 6月日更

「SQL数据分析系列」7. 数据生成、转换以及操作

Databri_AI

数据库 sql

ServeMux详解

Rayjun

HTTP Go 语言

网络攻防学习笔记 Day48

穿过生命散发芬芳

网络攻防 6月日更

Linux之cd命令

入门小站

Linux

简单实现springmvc中的请求处理

赵镇

springmvc

我曾与纪伯伦的对话

卢卡多多

6月日更

JSON转Excel

入门小站

工具分享

Java常用的几个Json库,性能强势对比!

xcbeyond

性能优化 6月日更

【Vue2.x 源码学习】第十八篇 - 根据 render 函数,生成 vnode

Brave

源码 vue2 6月日更

架构实战营模块6作业

Vic

架构实战营

【Flutter 专题】100 何为 Flutter Widgets ?

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

科技进步道阻且长,仍未来可期

架构精进之路

科技 6月日更

架构的“顺势疗法”_SOA_Mark Little_InfoQ精选文章