写点什么

临时代码、可持续代码以及二者之间的一切

  • 2010-03-25
  • 本文字数:1122 字

    阅读完需:约 4 分钟

有些代码经过良好的测试和重构,而且要长久存在下去。有些代码打算在几天内就抛弃掉。在这两个极端之间,有很多灰色地带。人们在开发处于灰色地带的代码时,打算稍后做清理,却从未完成。

William Pietri 从开发人员和业务人员的两个角度,分析了代码的相关成本。在 William 看来,代码可以分为 3 种类别:

  • 临时的——开发的代码打算在短时间内抛弃掉。
  • 可持续的——打算长久存在的代码,经过团队的良好重构和理解,还经过有力的单元测试,并且易于维护。
  • 半途而废的——一切都没有完成。临时的快速修复从未得到修复,成为永远的麻烦。匆忙之作。

William 提出:故事中有一部分很有趣。在开发人员和业务人员之间,对于代码相关的成本感觉不同。他给出了下面的比较:

业务人员 开发人员 临时的

可持续的

半途而废的

因此,利益干系人最喜欢半途而废的选择,因为成本不高,而且仍能交付他们想要的价值。这是非常严重的错误。William 认为,比较代码成本,要看长期成本和短期成本,而不是看角色。他提出:

短期成本 长期成本 临时的

可持续的

半途而废的

长期来看,半途而废的代码成本要高得多,而且会伤害业务。另一方面,尽管可持续的代码也许在开始时看起来成本高昂,但最终,经过长期运转后,可以说是“物美价廉”。

当然,那对开发人员来说不算糟糕,受影响的是公司整体。如果公司在软件方面的成本不断增加,对于在软件开发方法方面深思熟虑而且规范严谨的竞争对手来说,他们将会获得强有力的竞争优势。

Alex Chaffee 评论了上面三个分类,同时指出:在他看来,可持续的代码=测试+半途而废的代码+重构。 Chris Sterling 同样同意 William 的看法,他说:

过高业务期望值+工程人员的弱势反弹=高昂的技术债务,并导致工程方面的糟糕表现

Alberto Gutierrez 做出类似分析,提出看待代码的不同机制。他基于简单性和可扩展性,将代码的打分设定为从 A 到 F 。简单性定义了代码理解和阅读的难易程度。可扩展性定义了向现有代码中加入功能的难易程度。A 至 F 的范围定义了从最出色的代码到必须重新来过的代码这两个极端。

分析再次指出一个事实:最好的代码是既简单又可扩展的。这又映射到了 William 提出的可持续的代码种类。

那么,如何避免处于灰色地带?

在 William 看来,要让利益干系人知道:代码在长期的表现能够帮助团队交付业务价值。这也有助于团队避免技术债务的陷阱。一旦人们了解了这一点,那就更容易区分可持续的代码和处于中间阶段的代码。

很多项目就像我见过的一样,是半途而废的代码,却像可持续的代码那样得以销售。这很危险,就像牛仔程序员一样,他们冲进来拯救危机,离开时剩下很多半途而废的代码,让别人去解决。

查看英文原文: Temporary Code, Sustainable Code and Everything in Between

2010-03-25 22:242184
用户头像

发布了 143 篇内容, 共 34.8 次阅读, 收获喜欢 8 次。

关注

评论

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

云渲染和自己的电脑渲染哪个好?

Renderbus瑞云渲染农场

云渲染

【冲破信息孤岛】华为云大数据BI,助力金融行业进行数字化转型

秃头也爱科技

跨浏览器测试策略

FunTester

Android程序签名打包

芯动大师

Android Studio 打包签名 签名的含义

架构中实时引擎与离线渲染的主要优势

3DCAT实时渲染

Unity 渲染 实时渲染 AEC

软硬协同造就极致性能 天翼云紫金DPU打造为云而生的全新一代云计算体系结构

极客天地

还在为数据存储而烦恼?不妨进来看看华为云对象存储服务OBS

清欢科技

华为云OBS对象存储:企业“上云”的好帮手

清欢科技

推动企业稳定发现,华为云大数据助力能源企业纾困

秃头也爱科技

敏捷技术实践之重构

华为云PaaS服务小智

不止于大,华为云对象存储服务OBS的全能一面

清欢科技

2022-12-30:某天小美进入了一个迷宫探险,根据地图所示,这个迷宫里有无数个房间 序号分别为1、2、3、...入口房间的序号为1 任意序号为正整数x的房间,都与序号 2*x 和 2*x + 1

福大大架构师每日一题

算法 rust 福大大

即时通讯软件WorkPlus助力政企应用快速移动化

BeeWorks

提升企业决策能力,华为云用大数据BI助力企业腾飞

秃头也爱科技

华为云对象存储OBS,助力企业降本增效

清欢科技

解决“双十一”电商行业数据存储难题,华为云OBS值得期待

清欢科技

什么是云仿真,云仿真平台有哪些好处

3DCAT实时渲染

虚拟仿真 实时云渲染 云仿真 三维仿真

海量、安全、高可靠的华为云对象存储服务OBS,助力企业数据存储降本提效

清欢科技

RayLink测评 | 完全免费,功能超越同类付费远程控制软件!!

RayLink远程工具

远程控制软件 远程办公软件 远控软件

阿根廷夺冠梅西加冕,球场外视频平台角逐世界杯

易观分析

视频 足球 卡塔尔世界杯

HTTP的四种认证方式

穿过生命散发芬芳

HTTP 12月月更

2022“易观之星”奖项公布,聚焦数字经济,助力数智创新

易观分析

金融 易观 颁奖

BI-数据可视化 | 年度干货合集

搞大屏的小北

数据可视化工具 BI 分析工具 BI分析 市场分析

打碎软件应用,在产业互联场景中串联—钉钉7.0关注企业间高效协同

B Impact

华为云对象存储,助力企业驶入“数据快车道”

清欢科技

FL STUDIO2023最新版本号21新变化

茶色酒

FL STUDIO20.9 FL Studio FL Studio 21

大数据一站式服务,华为云大数据BI驱动企业业务线增长

秃头也爱科技

华为云对象储存OBS,为企业提供优秀且安全的数据储存环境

清欢科技

企业内部使用的即时通讯软件有哪些?

BeeWorks

中国电信发布《天翼云安全白皮书》 打造高质量云网安全保障体系

极客天地

存储数据如何更省钱?华为云告诉你!

清欢科技

临时代码、可持续代码以及二者之间的一切_研发效能_Vikas Hazrati_InfoQ精选文章