代码大全阅读随笔(九)

重构 refactoring
软件演化的类型
重构简介
特定的重构
安全的重构
重构策略
在庞大复杂的代码都可以通过重构加以改善
软件演化的基本准则就是,演化应当提升程序的内在质量。
需要重构的标识信号:
代码重复
冗长的子程序
循环过深或者嵌套过深
内聚性太差的类
类的接口未能提供层次一致的抽象
拥有太多参数的参数列表
类的内部修改往往被局限于某个部分
变化导致对多个类的相同修改
对继承体系的相同修改
case语句需要做相同的修改
同时使用相关数据并未以类的方式进行组织
成员函数使用其他类型的特征比使用自身类的特性还要多
过多的使用基本数据类型
某些类无所事事
一系列传递流浪数据的子程序
中间人对象无事可做
某个类同其他类关系过于亲密
子程序命名不恰当
数据成员被设置为公用
某个派生类及使用基类很少一部分成员函数
注释被用于解释难懂的代码:不要为了拙劣的代码编写文档-应当重写代码
在子程序调用前使用了设置代码,或者在调用后使用了收尾代码
程序中的一些代码似乎是在将来某个时候才会用到。

需要重构的标识信号:
代码重复
冗长的子程序
循环过深或者嵌套过深
内聚性太差的类
类的接口未能提供层次一致的抽象
拥有太多参数的参数列表
类的内部修改往往被局限于某个部分
变化导致对多个类的相同修改
对继承体系的相同修改
case语句需要做相同的修改
同时使用相关数据并未以类的方式进行组织
成员函数使用其他类型的特征比使用自身类的特性还要多
过多的使用基本数据类型
某些类无所事事
一系列传递流浪数据的子程序
中间人对象无事可做
某个类同其他类关系过于亲密
子程序命名不恰当
数据成员被设置为公用
某个派生类及使用基类很少一部分成员函数
注释被用于解释难懂的代码:不要为了拙劣的代码编写文档-应当重写代码
在子程序调用前使用了设置代码,或者在调用后使用了收尾代码
程序中的一些代码似乎是在将来某个时候才会用到。
重构要点:
修改是程序一生都要面对的事情,不仅包括最初的开发阶段,还包括首次发布之后。
在修改中软件的质量要么改进,要么恶化,软件演化的首要法则就是,代码演化应当提升程序的内在质量。
重构成功之关键在于程序员应学会关注,那些标志着代码需要重构的众多警告或者代码臭味。
重构成功的另外一个要素,就是程序员应当掌握大量特定重构的方法。
重构成功的最后要点再远,安全重构的策略。一些重构方法可能比其他重构方法更好。
开发阶段的重构是提升程序质量的最佳时机。
代码调整策略。
蕴含哲理的一句话,如果你的坑挖的足够深,你总会看到惊人的宝藏。
软件性能要点:
性能只是这个软件整体质量的一个方面,通常不是最重要的。精细的代码调整也只是实现整体性能的一种方法。通常也不是决定性的。相对于代码本身的效率而言,程序的架构,细节设计以及数据结构和算法选择对程序的运行速度和资源占用通常会更大。
定量测量是实现性能最优化的关键。定量测量需要找出能真正解决程序性能部分,在修改之后,应当通过重复测量修改是提高还是降低了软件的性能。
绝大多数的程序都有那么一小部分代码,耗费绝大部分运行时间。如果没有测量,你就不会知道是那一部分代码。
代码调整需要反复尝试,这样才能获得理想的性能提高。
为了性能优化工作做好准备,最佳方式就是在最初代码编写清晰额代码,从而使代码在后续工作中易于理解和修改。

你可能感兴趣的:(c#)