谈谈复杂度——unix编程艺术学习笔记
来源:互联网 发布:成套报价软件 编辑:程序博客网 时间:2024/04/30 00:42
复杂度有三个来源:
1、 代码规模:一般就是代码的函数。
2、 实现复杂度:程序员为了理解一个程序从而建立其思维模型并调试该程序的困难程度。
3、 接口复杂度:主要是和用户接口的复杂度,比如用户界面,功能,操作等。
面对上面三个复杂度比较陷入三个陷阱:
1、 manularty(人力尺度)陷阱:主要是为了避免接口复杂度,而把许多底层人物抛给用户。
2、 blivet(硬撑)陷阱:主要是为了避免代码量复杂度,而使用极端晦涩复杂的算法。
3、 adhocity(过专用)陷阱:为了避免实现复杂度,不采用统一但是有些复杂的方案,而对每个问题都编写重复,专用的代码。
接口复杂度和实现复杂度的折中。所谓鱼和熊掌不可兼得,这两者是有冲突的地方。很多时候可以牺牲其中的一种复杂度而获得另一种的简单。有一个问题,就是该牺牲那个复杂度来换取整体的复杂度?
之前看过一篇文章,说到过一种理念:“差既是好”。这种理念强调实现的简单性,可以牺牲接口的简单性。
没有标准答案,重要的是培养斟酌每一种设计的习惯。
- 谈谈复杂度——unix编程艺术学习笔记
- 模块化编码——unix编程艺术学习笔记
- 透明性:来点光——unix编程艺术学习笔记
- 接口设计评估——unix编程艺术学习笔记
- 性能优化——unix编程艺术学习笔记
- unix+编程艺术学习笔记13+复杂度:尽可能简单,但别简单过了头
- Unix接口设计模式——unix编程艺术学习笔记
- UNIX编程艺术学习笔记-1
- UNIX编程艺术学习笔记-2
- unix编程艺术笔记
- 《unix编程艺术》笔记
- 【Unix编程艺术】第13章 复杂度
- 模块性: 保持清晰,保持简洁——《unix 编程艺术》学习笔记
- 4.2紧凑性和正交性——UNIX编程艺术学习笔记
- 4.3软件是多层的——UNIX编程艺术学习笔记
- 程序库和面向对象语言——unix编程艺术学习笔记
- 程序库,面向对象语言——unix编程艺术学习笔记
- 为透明性和可显性而编码——UNIX编程艺术学习笔记
- 确定swf嵌入资源的大小
- 性能优化——unix编程艺术学习笔记
- PrintWriter 和 Scanner实现文件读写
- 在排序数组中查找和为给定值的两个数字
- ipv6地址表示法
- 谈谈复杂度——unix编程艺术学习笔记
- JAVA随笔——多线程的简介与实现
- oracle warehouse builder 在ETL 中的数据质量控制
- 小东西
- linux下使用oracle和weblogic的一点经验
- 开博
- hdu 4006 The kth great number(使用优先队列)
- Wince .net ListView控件 闪烁的问题
- 如何处理输入函数留下的“垃圾”