代码大全—精华摘录(三)

关键的设计概念1

  1. 软件的首要技术革命:管理复杂度。
  2. 本质属性:是一件事物必须具备、如果不具备就不再是该事物的属性。
  3. 偶然属性:是一件事物碰巧具有的属性,有没有这些属性都不影响这件事物本身。
  4. 从本质上说,软件开发就是不断地去发掘错综复杂、相互连接地整套概念的所有细节。本质性困难的根源在于复杂性。
  5. 当没人知道对一处代码的改动会对其他代码带来什么影响时,项目也就快停止进展了。
  6. 降低复杂度的方法:
    (1) 软件架构:把整个系统分解为多个子系统来降低问题复杂度;降低子系统间的相互依赖;
    (2) 保持子程序的短小精悍;
    (3) 从问题的层面而不是从底层实现细节着手去编写程序,即在最抽象的层次上工作。
  7. 程序员的底线:写出既让自己容易理解,也能让别人容易看懂,而且很少有错误的程序代码。
  8. 高代价、低效率的设计的根源:
    (1) 用复杂的方法解决简单问题;
    (2) 用简单但错误的方法解决复杂的问题;
    (3) 用不恰当的复杂方法解决复杂的问题。
  9. 管理复杂度的方法:
    (1) 把同一时间需要处理的本质复杂度的量减到最少;
    (2) 不让偶然性复杂度无谓地快速增长。
  10. 一旦你能理解软件开发中任何其他技术目标都不如管理复杂度重要时,众多设计上地考虑都变得直截了当了。

  1. McConnell S. Code Complete 2nd Edition[M]. Microsoft Press, 2004. ↩︎

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值