2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

代码重用的价值被严重高估?

  • 2007-07-29
  • 本文字数:1235 字

    阅读完需:约 4 分钟

Carl Lewis 最近发现了 Dennis Forbes 的一篇虽然有点老但仍然很有意思的文章,文章的主题是关于衡量代码重用。 Lewis 详细讲述了在 Forbes 的 Blog 上众多具有争议性的概念之一:与代码是资产的普遍观点相反,如果代码脱离了组织机构考虑创建这些代码时的原因的直接背景,代码本身而言并没有什么价值。Forbes 还声称,如果没有明确地为通用性而设计的代码,尝试在多个项目间进行代码重用,甚至只是在同一机构里也是困难重重的。

Forbes 谴责许多内部开发小组现在的倾向,他们花费大量时间来构建可在多个项目间重用的所谓的内部框架和库:

这样的代码你积累得越多,就越是需要依赖于你现有的开发人员(并且这些只适用于某组织或是开发小组的资料也越来越占用他们的头脑),同时也越难让新加入的开发人员上手。这样的框架和库对于新员工来说通常有极陡峭的学习曲线,而在缺乏文档的情况下更甚。如果没有经过有效的重构,代码被重用的可能性也是很小的(因为这些代码是以恣意肤浅的方式编写出来的,而不是真正为重用而设计的……)

……每个组织都有必要扪心自问的是,他们所谓的“可重用代码”到底有什么值得称道的 a 价值,有什么实际的地方让竞争对手和新参与者们会为此买帐吗?对于绝大多数的案例来说,答案是价值为 0,对手们甚至认为连 0 块也不值。在这一行里代码窃贼格外罕见(虽然我们身处一个刻录 DVD 和 U 盘的时代),因为大多数的代码,除了整个行业都广泛使用的框架和库,脱离了特定的项目和开发组环境的情况下是完全没有任何价值的。尝试在其它项目中使用这些代码的话还不如根本没有的好。

Forbes 总结道,设计和开发一个恰当抽象并通用的框架所花费的精力远比一次性的解决方案要多,因为在分析重用代码所带来的好处时,很少把开发者用于接受复杂的新框架所花费的时间和代价计算在内,所以这是实际发生的代码重用比起通常想象中的要少得多的原因。值得注意的是,Forbes 并没有一概反对重用代码和框架,他反而很支持作为工业标准库的可重用代码。实际上,Forbes 提倡采纳已被广泛应用的行业标准框架(如开源框架),因这些框架都有恰当的抽象和清晰的封装边界从而可作为复杂的内部开发框架的替换品。

在 Carl Lewis 的文章中他强调了 Forbes 的多数代码库无价值的观点。Lewis 和我们分享了他曾遇到的一个例子,某公司对他们自己的代码极度自信,并称他们的代码为“需小心守护之物”。当 Lewis 为了他们代码不外泄的前提而飞越数千公里到达现场时,发现他们一直以来小心翼翼保护的代码库实际上非常糟糕。从这些类似的例子中,Lewis 相信“在多数情况下,[代码失窃的] 风险发生的几率远比一般想象中要低”,所以在有意义的情况下企业不应该害怕把代码共享出来。

Lewis 和 Forbes 给我们举了很有意思的现实例子,告诉我们如何看待我们的代码资产,如 Lewis 所说:

如此困难又需花费如此多精力的东西竟然只有如此小的价值,听起来似乎有违常理。我想这就是为什么有那么多公司喜欢夸大他们的代码的价值的原因吧。

英文原文链接: Code reuse highly overrated?

2007-07-29 04:351301
用户头像

发布了 27 篇内容, 共 11.0 次阅读, 收获喜欢 15 次。

关注

评论

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

KaiwuDB 智能综采应用项目获中国信通院数据库星河“典型案例”

KaiwuDB

数据库

质变科技 AI-ready Data Cloud|行列混存格式下的读链路优化

AI数据云Relyt

数据仓库 AI-ready 数据云

质变科技 AI-ready Data Cloud|如何构建 Auto Table Service 保证高性能查询

AI数据云Relyt

数据库 大数据 数据仓库 数据湖

天谋科技时序数据库 IoTDB 入选工信部中国电子信息行业联合会优秀创新软件产品推广目录

Apache IoTDB

智源研究院与腾讯达成战略合作 推动大模型技术前沿探索和应用落地

智源研究院

智源发布FlagEval“百模”评测结果 丈量模型生态变局

智源研究院

火山引擎云基础、模型服务等多产品更新发布,为企业大模型应用落地再提效

极客天地

苦熬3个月,阿里Java岗五面,成功上岸获offer!Java面试题库分享

程序员高级码农

Java 程序员 后端 java面试 Java面试题

1219| 清华AI助攻科研升职 | Anthropic揭示模型风险 | Genesis开源物理引擎 | 字节新视觉理解模型 | OpenAI功能革新 | 武汉大学成立AI学院 | 上海报业数字人上线

言寡意多

鸿蒙 NEXT 开发之后台任务开发服务框架学习笔记

威哥爱编程

HarmonyOS HarmonyOS框架 HarmonyOS NEXT HarmonyOS5.0

《Django 5 By Example》读后感

codists

Python django

微店API接口深度解析:如何高效获取商品详情及Python代码示例

代码忍者

微店商品详情API接口 微店商品列表API

我国首颗可重复使用返回式技术试验卫星成功发射|数字孪生技术助力运载火箭仿真验证系统革命

DevOps和数字孪生

你敢信?清华毕业大佬用了一个坦克大战项目就讲完了23种设计模式

程序员高级码农

Java 编程 程序员 java面试 Java面试题

短期面试突击攻略大全!2025最全Java面试题目合集

Summer

Java 程序员 面试 大厂 八股文

OpenTiny 年度贡献者活动评选征集启动

OpenTiny社区

开源 前端 OpenTiny

提升海外SaaS访问效率的最佳方案

Ogcloud

网络加速 SD-WAN SD-WAN组网 海外网络加速 SD-WAN国际专线

质变科技 AI-ready Data Cloud|从存算分离到Serverless,数仓要解决的关键问题

AI数据云Relyt

大数据 Serverless 数据仓库 数据湖 存算分离架构

深入了解京东API接口:如何高效获取商品详情与SKU信息

代码忍者

京东评论API接口 京东商品API

2000道面试必问的Java面试八股文及答案整理(2024版)

Summer

Java 程序员 面试 大厂 八股文

深入了解 ByConity的BSP模式:云原生数据仓库的创新实践

数字扫地僧

ByConity

DNS DDoS攻击威胁加剧,国科云解析筑牢网络安全防线

防火墙后吃泡面

【杂谈】服务端能同时处理多少个 Socket 连接?背后的资源与限制分析

不在线第一只蜗牛

网络 服务器

智源大模型通用算子库FlagGems四大能力升级 持续赋能AI系统开源生态

智源研究院

基于豆包·视频生成模型打造创新体验,即梦成为“想象力的相机”

极客天地

解锁未来:深入探索去中心化应用程序(DApps)的潜力与挑战

chainwiseweb3

去中心化钱包 区块链技术开发 dapp开发 #Web3 DApps开发

代码重用的价值被严重高估?_架构_Mark Figley_InfoQ精选文章