专栏名称: AI产品阿颖
关注分布式相关的开源项目和基础架构,致力于分析并报道这些新技术是如何以及将会怎样影响企业的软件构建方式。
今天看啥  ›  专栏  ›  AI产品阿颖

软件工程的最大困境

AI产品阿颖  · 公众号  ·  · 2024-07-01 14:22
    

文章预览

我认为,大多数软件工程师特别是那些从事基础设施系统的工程师一定会陷入不必要的复杂性中,我认为这是因为存在以下三条基本定律。 软件复杂性第一定律:设计良好的系统必然会随着时间的推移退化为设计不良的系统。 我们先定义一下: 一个设计良好的系统是指易于随时间改变的系统;一个设计不良的系统是指难以改变的系统 。 假设系统 X 是设计良好的。有人过来轻松快捷地将其改为不同的系统 X'。现在 X' 要么继续保持设计良好;这样就可以轻松快捷地再改为不同的系统 X'';要么进入设计不良的状态,变得难以修改。 例如,考虑一个使用 RocksDB 在干净的存储引擎 API 后面的设计良好的数据库;然后有人来添加了一个 getLevelSize 调用;现在这个数据库无法简单地修改为非 LSM 存储引擎。由此可见,设计良好的系统是一种不稳定的、短暂的 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览