软件设计,两句话概括 » 代码简洁性
管理同意
为了提供最佳体验,我们使用如cookies等技术存储和/或访问设备信息。同意这些技术将允许我们处理数据,如浏览行为或本网站的唯一ID。不同意或撤回同意可能会对某些特性和功能产生不利影响。
功能性
功能性 始终活跃 技术存储或访问对于使订阅者或用户明确请求的特定服务的合法目的是严格必要的,或仅用于通过电子通信网络传输通信的唯一目的。
偏好
偏好 技术存储或访问对于存储订阅者或用户未请求的偏好的合法目的是必要的。
统计
统计 技术存储或访问仅用于统计目的。技术存储或访问仅用于匿名统计目的。没有传票、互联网服务提供商的自愿合规或来自第三方的额外记录,仅为此目的存储或检索的信息通常无法用于识别您。
营销
营销 技术存储或访问是创建用户配置文件以发送广告,或在网站或多个网站上跟踪用户以用于类似营销目的所必需的。
管理选项 管理服务 管理{vendor_count}供应商 阅读更多关于这些目的 接受 拒绝 查看偏好 保存偏好 查看偏好 Cookie政策 {title} 法律声明
代码简洁性
软件设计,两句话概括
2010年5月13日,作者:Max Kanat-Alexander
在软件设计方程的背景下,现在可以将软件设计的主要原则简化为仅两条陈述:
- 降低维护成本比降低实现成本更重要。
- 维护成本与系统的复杂度成正比。
这基本上就是全部。如果您对软件设计仅了解这两条原则和软件的目的,您可以推导出软件开发的每一个其他通用原则。
-Max
分享 点击在Facebook上分享(在新窗口中打开) Facebook 点击在LinkedIn上分享(在新窗口中打开) LinkedIn 点击在Hacker News上分享(在新窗口中打开) Hacker News 点击在Reddit上分享(在新窗口中打开) Reddit 点击在Threads上分享(在新窗口中打开) Threads 点击在X上分享(在新窗口中打开) X
12条评论 留下回复
Mark Castillo 说:2010年5月13日下午1:01 呵呵……我仍在寻找实现和维护零成本的原则。也许基本原则可以在这里找到……“零成本是不可实现的”。 回复
Wanderson Santos 说:2010年5月18日上午5:39 我完全同意,但我们能否将其与敏捷原则(如XP中的“简单设计”)对齐? 回复
Max Kanat-Alexander 说:2010年5月20日下午3:12 嗯,我并不真正认同任何特定的现有软件方法。所以,如果有人想说“哦,这听起来有点像某些XP原则,可以这样与之配合”,并且这对某人有所帮助,那很好。但如果目的仅仅是因为XP存在而有人认为一切都应该适应XP,那么我认为这并不那么好。通常,那些希望将所有东西都融入其特定软件方法的人有个人利益可图——例如,他们是该方法的顾问,或者他们写了一本关于它的书并希望销售更多书籍。并不是说卖书或当顾问有什么错。但仅仅因为个人利益而推广一套想法是有问题的。
-Max 回复
Ape 说:2010年6月12日上午2:43 我想看一些您如何推导出其他原则的例子。观察这个思维过程和涉及的推理模式会很有趣。 回复
Max Kanat-Alexander 说:2010年6月12日下午12:36 嗯。好吧,这里有几个简单的例子: 我们知道复杂度导致更多的维护成本。什么导致复杂度?嗯,我们可以证明导致复杂度的一件事是系统组件的紧密耦合。因此,通过寻找减少复杂度的方法,我们可以推导出松耦合的原则。 我们想减少维护成本。所以,我们会花一些时间观察什么占用了我们的维护时间。修复错误肯定占用了相当一部分时间。那么,如果能在错误存在之前捕获它们,从而消除错误维护,不是很好吗?通过一些实验,我们可能会推导出自动化测试的想法。 如果您将较低级别的原则追溯到这些更高级别的简洁性,甚至更简单。 它适用于几乎每一个软件开发原则,除了HCI原则,我认为那是一个单独的领域。
-Max 回复
Todd A » 两句话的软件设计 说:2010年7月15日上午10:41 […] 这就是我在网页设计中一直争论的,尽管我从未像代码简洁性那样雄辩地表达过:1. 降低维护成本比降低实现成本更重要。 […]
回复
Harald Wellmann 说:2010年10月27日上午7:36 假设系统中的维护问题数量与其大小成正比,您还需要考虑在较大系统中隔离和修复问题所需的额外时间。 这就是为什么我认为维护成本与系统大小之间的关系不是线性的: 在复杂度分析方面,您的第二条陈述相当于 m = O(c) 我甚至声称 m = O(c log c) 或 m = O(c^2) 回复
Max Kanat-Alexander 说:2010年11月4日晚上11:42 是的,我实际上认真思考了您的评论,我认为您是对的。一个更数学准确的陈述可能是:维护成本是系统复杂度的函数。 但我担心有些人可能不太清楚“是……的函数”是什么意思。 回复
Mike W. 说:2017年9月21日晚上9:41 “维护成本与系统的复杂度成正比。” 我认为这是一个很好的句子;它只是使用了“proportional”的英语含义,而不是数学定义。 为了不打扰数学家,您可以这样说: “随着系统复杂度的增加,维护成本增加。” 或者如果您不在乎非数学家是否理解您: “维护成本是系统复杂度的严格递增函数。” (如果您过多思考最后一条陈述,您会意识到无法数学测量系统的复杂度,但您_可以_简单地检查两个系统并确定它们的相对复杂度。) 回复
Max Kanat-Alexander 说:2017年9月24日晚上11:15 基本上。 回复
Enrique Dewulf 说:2012年3月10日下午3:10 我认为热情甚至高于专业技能。没有时间用于枯燥的单调。当然有时间工作。也有时间爱。那就不剩其他时间了! 回复
两句话的软件设计 说:2015年1月23日上午9:50 […] 这就是我在网页设计中一直争论的,尽管我从未像代码简洁性那样雄辩地表达过: […]
回复 留下回复取消回复
联系 关于 书籍:《理解软件》 书籍:《代码简洁性》 输入您的电子邮件… 订阅 © 2025 版权所有。由The Fox提供支持。 管理同意联系 关于 书籍:《理解软件》 书籍:《代码简洁性》 转到顶部