Code Complete笔记(1)

Code Complete这本书已经听过好久,却一直没时间读一下,这两天把第一二章读完了。html

工做了也有一年多了,也本身在项目中总结了一些东西:
eclipse

1.相同的东西要拎出来抽象成方法使用:

  这个东西是吃了大亏的,其实抽象方法这种东西你要是每次第二次要调用它的时候就把他抽象出来的话,那样是很清楚的,但要是第二次图省事就copy paste大法,到后来若是要改这段代码的话就须要改好多个地方的,若是别人问你要这个功能,你给他的是一段代码的话,他那边用过去,你这边改了需求,最后就会出现integration的错误,数据上显示出来以后去找真正的错误缘由就要找很久,虽然在重构一书中有这么一句为了追求工程速度与代码优美的取舍,若是第二次你能够采起copypaste,但实际上若是真这么干的话,第三次通常会犯拖延症,而后就各类难看以及难维护的代码就出现了。
ide

2.transaction script:

  在刚工做那段时间的时候,都是跟着别人代码的风格来写,好比写个数据存储的transaction code,原本的风格是写个注释,而后跟个十几行的调用dao代码,最后一个transaction得写个100+行,代码可读性就是基于那几行注释了,但别人来看就会很累,而抽象成方法,就那么几行调用方法名的代码,并且能很清楚的知道干了什么,本身之后有什么需求要改,只须要改那个对象的相对应方法。
设计

3.关于if else以及switch:

  这个东西通常取决于从页面上取个值,而后都是'1' '2' '3'或者英文缩写这些,若是代码里出现个if ('1'.equals(direction)),不是你本身,别人不看html代码是确定不能看懂的了,而后我就会把'1' '2'这些变量提取为consts,好比MODULENAME_DIRECTION_APPROVED='1',这样以后写这些equals代码也会好读不少,但若是一个模块有10+个else if,那就又变得很难看了,用switch的话就会好看一些,但若是多个对象都要有这个方法处理的话,其实更好的方法是在作以前就作好设计,也就是code complete一书里所提到的不管多么紧急的项目,在coding以前都要作好设计,否则扩展性问题就会很严重,就好比两个类Lion和Cat,两个都是猫科动物,两个又都是动物,那确定是再抽象一个父类出来,以后对他们的对象处理能够在父类中加方法,以后继承的子类要么调用父类的方法,需求不一样override掉方法,这样就会方便得多,也不会出现各类else if的难看方法。code

4.eclipse refactor的一些经常使用快捷键
  eclipse提供有refactor功能,你可使用快捷键alt+shift+t调出来,而后通常平时用到的也就4个:

    1.extract method:顾名思义,就是把方法提出出来,提取后会默认在你的类中,若是你要移动它到其余类中,你可使用:

    2.move:点击move后者按快捷键m就能够有一个class的查找功能的对话框,找好后移过去就能够了

    3.extract local variable:在你屡次调用一个方法返回的变量时候,你可使用这个给他一个有意义的名字,提升代码的可读性,若是你只用了较少的次数,你也能够用:

    4.inline:把提取出来的local variable去除掉,从新用方法名替换掉。htm

相关文章
相关标签/搜索