最新消息:

Laws of Software Engineering,软件工程的经验法则和定律

佳软 yeeach 420浏览 0评论

在软件开发的世界里,我们每天都在踩着各种坑前行:项目延期、代码腐化、团队协作卡壳、技术债越堆越高……这些坑及最佳实践应对方案其实都有客观规律可循。很多软件行业的前辈早就把这些规律提炼成了各种设计模式、架构模式、定律,只不过它们散落在书籍、论文、博客、推文、StackOverflow 答案、口口相传的行业经验中。

Laws of Software Engineering 就是把这些散落的智慧系统化整理起来的绝佳资源。

Laws of Software Engineering:https://lawsofsoftwareengineering.com/

 

Laws of Software Engineering 收集了56条软件工程定律,涵盖架构、团队、规划、质量、规模、设计和决策七大维度。每一项都附带简短描述和出处,页面采用卡片式设计,支持按Junior / Mid-Level / Senior 三个级别和七大类别过滤,点击卡片还能看到更详细的解释。无论你是刚入行的开发者,还是带团队的架构师,都能快速找到“对症”的智慧。

几个最经典的例子:

Conway’s Law(康威定律)(Architecture类):组织设计的系统,结构必然镜像其沟通结构。团队割裂,代码必然割裂。

Brooks’s Law(布鲁克斯定律)(Teams类):给一个已经延期的软件项目增加人力,只会让它更延期。经典图书《人月神话》里的永恒真理。

Hyrum’s Law(海勒姆定律):只要API用户足够多,所有可观察的行为都会被某个人依赖。

YAGNI(You Aren’t Gonna Need It):不要提前实现你“可能”需要的功能。

Technical Debt(技术债)(Quality类):一切让后续开发变慢的东西。

Pareto Principle(80/20法则)(Decisions类):80%的问题来自20%的原因。

Linus’s Law(林纳斯定律):只要有足够多的眼睛,所有bug都会变得浅显。

 

这些定律从本质上都其实揭示了:软件开发最大的挑战往往不在于技术本身,而在于组织结构、沟通成本和人类对复杂性的认知极限。

 

Laws of Software Engineering 值得每个软件工程师收藏并持续更新,核心价值:

  • 避免重复发明轮子:很多“新手错误”其实是老前辈早就总结过的。
  • 提升决策质量:面对“要不要加人”“要不要重构”“要不要上新框架”时,用这些定律快速判断。
  • 团队沟通利器:将复杂的工程现象总结为简洁的定律,有助于团队达成共识。
  • 终身学习框架:随着经验增长,你会不断发现新定律与旧经验的呼应。

 

定律(Laws) vs 设计模式(Design Patterns) vs 架构模式(Architectural Patterns)

定律(Laws):描述世界如何运作以及不可违背的约束

设计模式(Design Patterns): 提供局部问题的标准解法

架构模式(Architectural Patterns): 定义系统级结构组织方式

在AI时代,Laws of Software Engineering 各种定律的价值

在AI 编程席卷传统开发流程的当下,很多人产生了一种错觉:既然 AI 可以生成代码、自动重构、甚至辅助设计架构,那么传统的软件工程定律是否已经失效了?

事实恰恰相反。在 AI 时代系统复杂度的增长方式、团队沟通成本、规模化的物理极限、人类认知偏差并没有改变,因此这些定律的价值不仅没有削弱,反而因为开发速度的极速提升而变得更加至关重要。

  • AI 不只是加速开发,也在加速犯错:以前写错一行代码要半天,现在 10 秒就生成 1000 行垃圾。定律是刹车和减速器。
  • AI时代定律是工程系统的约束引擎:用好定律可以校验 AI 输出、控制系统复杂度、防止错误决策。
  • AI时代最稀缺的能力是判断力:顶级工程师的护城河从“会写”变成“会选”,会 Prompt 的人越来越多,会用定律做架构决策、团队设计、风险评估的人,依然稀缺。

正如Google Cloud AI 工程总监 Addy Osmani 在书评中直言:AI 正在改变软件工程的本质,这本《Laws of Software Engineering》提供了理论基础和实用工具箱,帮助从业者理解系统、驾驭未来。

 

 

类似Laws of Software Engineering 总结软件行业方法论的资源:

Hacker Laws:https://github.com/dwmkerr/hacker-laws

Laws of Softwarehttps://www.laws-of-software.com/

56 Laws of Software Engineering:https://leadership.garden/56-laws-of-software-engineering/

 

 

更多方法论

 

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址