2015070306 - EffactiveJava笔记 - 第55条 谨慎地进行优化(2)
2015-07-04 00:20
323 查看
讲诉优化的深刻真理:优化弊大于利,特别是不成熟的优化!
在优化过程中可能既不快速,又不正确,而且不容易修正.
1.不要因为性能而牺牲合理的结构.要努力编写好的程序而非快的程序.如果好的程序不够快,它的结构将会使它可以得到优化.好的程序体现在信息隐藏原则(个人认为封装性好):只要有可能,他们会把设计决策集中在某个模块中.根据单一职责原则,可以改变单个决策,而不会影响到系统其它部分.
请不要错误认为在完成程序之前忽略性能问题,实际问题可以通过后期优化解决,但是遍布全局并且限制性能的结构缺陷是不可能更改的,除非重新编写系统.在系统完成后该改变设计某个模块,会破坏系统结构,难以维护和改进,因此必须在设计过程中考虑性能问题.
2.努力避免那些限制性的设计决策.当系统设计完成后,其中最难以更改的组件是那些指定模块之间交互关系,以及模块与外界交互关系的组件.这些组件中,最重要的就是API,路线层协议以及永久数据格式.这些组件事后很难甚至不可能修改,而且它们都可能对系统本该达到的性能产生严重的限制.
在优化过程中可能既不快速,又不正确,而且不容易修正.
1.不要因为性能而牺牲合理的结构.要努力编写好的程序而非快的程序.如果好的程序不够快,它的结构将会使它可以得到优化.好的程序体现在信息隐藏原则(个人认为封装性好):只要有可能,他们会把设计决策集中在某个模块中.根据单一职责原则,可以改变单个决策,而不会影响到系统其它部分.
请不要错误认为在完成程序之前忽略性能问题,实际问题可以通过后期优化解决,但是遍布全局并且限制性能的结构缺陷是不可能更改的,除非重新编写系统.在系统完成后该改变设计某个模块,会破坏系统结构,难以维护和改进,因此必须在设计过程中考虑性能问题.
2.努力避免那些限制性的设计决策.当系统设计完成后,其中最难以更改的组件是那些指定模块之间交互关系,以及模块与外界交互关系的组件.这些组件中,最重要的就是API,路线层协议以及永久数据格式.这些组件事后很难甚至不可能修改,而且它们都可能对系统本该达到的性能产生严重的限制.
相关文章推荐
- 10001-Java集合--概述
- Eclipse在线集成maven M2eclipse插件
- 2015070305 - EffactiveJava笔记 - 第55条 谨慎地进行优化(1)
- 2015070304 - EffactiveJava笔记 - 第54条 谨慎使用本地方法
- eclipse 4.4 fatjar安装问题
- 代码即财富之我学Java比较器(7)
- 代码即财富之我学Java类集(8)
- 使用JUnit-4.11报java.lang.NoClassDefFoundError:
- 简单介绍java Enumeration
- eclipseJDBC
- Java Arrays,Collections中addAll使用方法和初始化容器方法
- 2015070303 - EffactiveJava笔记 - 第53条 接口优于反射机制
- (leetcode)contains duplicateIII[java]
- 在web项目中集成Spring
- springMVC第一天
- Java内存模型
- Java中函数的重载
- java中抽象类一般什么时候用到,用抽象类有什么好处?
- Java可变长参数注意事项
- 2015070302 - EffactiveJava笔记 - 第52条 通过接口引用对象(2)