思维导图 点击下图,可以看大图。
介绍
我把我比较喜欢的和比较关注的地方写下来和大家分享。上次我写了篇《php 跟老大的对话》。还是有很多疑问,这书帮了我不少的忙。
如果你比较繁忙,或者懒得看文字,建议你直接看截图,也会有很大的收获的。你可以通过比较截图中的代码就能知道孰优孰劣了。
代码部分我为什么用图呢?因为我经常用手机看代码,博客园的代码在手机里乱七八糟的,还是看图比较舒服。
专业术语
我们毕竟是用英文字母编码,所以用一些英语单词,更能显示出我们的专业性。以下的英文单词,你如果掌握了,与其他coder交流的时候会更直接,更专业。——臭显摆一下吧,呵呵。
“*”表示文中经常提到的
inline:内联
function:函数
*method:方法
finely grained:细粒度的
rename:重命名
query:查询
temp:临时(temporary)——一般指临时变量
*extract:提取——我个人更喜欢翻译成“提炼”
*duplicate:复制
split:剖解
variable:变量
factor:因素,因子
重构原则
一、何谓重构?
名词形式:对软件内部结构的一种调整,目的是在不改变软件之可察行为前提下,提高其可理解型性,降低其修改成本。
动词形式:使用一系列重构准则,在不改变软件之可察行为前提下,调整其结构。
二、为何重构 ?
1、经常重构可以让代码维持该有的形态。
2、让代码找到合适的位置。
3、让软件更易理解。
4、可以找到bug。
5、提高我们的编码速度。
三、重构的难题
1、修改接口命名
如果你的类中的方法是public,那么你在rename的时候,冒着很大的风险,你不知道到底有哪些模块在调用你的这个方法(我们经常的做法是在整个项目下做grep操作,然后逐一看各个模块的调用和逻辑)。——所以我们在编写类的时候不管是属性还是方法尽量做到private,避免接口开放。
2、何时不该重构
(1)重写所有代码,而且现有代码实在太混乱,重构还不如重写。
(2)项目临近结束的时候,应该避免重构。我们可以把重构放到二期去解决。
代码的坏味道
一、Duplicate Code
1、同一个类,两个方法含有相同表达式。
解决方法:你可以Extract Method提炼重复代码,然后让这两个方法都调用这个Extract Method。
2、两个类,有相似的方法。
解决方法:(1)把两个类的方法提出来,共同构造一个父类。
(2)把其中一个类的方法删除,调用另一个类的方法。
新闻热点
疑难解答