看《代码整洁之道》的一些记录

看《代码整洁之道》的一些随笔记录,可能过于简洁,有部分遗漏。


一、原则

1、勒布朗法则(LeBlanc):稍后等于永不(Laterequals never)。不做临时性工作。

2、让营地比你来时更干净。每次签入时,代码都比签出时干净。

 

二、命名

1、名副其实,取名要提现实际意义。

2、避免误导, 别用专用名词,list之类。别用两个相差不大的名词

3、命名要能读出来

4、使用static final变量,易于寻找和统一

5、不要使用前缀,例如m_xxxx,没人会关注

6、不要使用IXXX来表示接口和抽象类

7、类名和对象名要用名词,不要用动词

8、方法名要用动词,属性访问等加get、set、is前缀

9、每个概念对应一个词,比如是Controller就全用他,不要用相似的词(driver、manager)

10、别用双关语

11、只要短名词足够清楚,就要比长名称好

 

三、函数

1、短小。If、else、while等其中的代码块就应该只有一行,函数的缩进层级不应该多于一层或两层。

2、只做一件事

3、自顶向下读代码

4、switch语句放到抽象工厂下面

5、函数参数要少,参数转换不如直接返回

6、使用异常替代返回错误码。

 

四、注释

1、注释代码删掉,放置以后没人敢删

 

五、格式

垂直概念

1、单个文件代码数量控制在200到500行

2、代码从上往下读,从左往右读

3、封包声明、导入声明、每个函数之间都有空白行隔开

4、紧密相关的代码应该互相靠近

5、代码的垂直距离,函数变量放在函数头,循环变量放在循环中,实体变量在java中应该放在类前面,函数调用应该放在一起,调用者应该放到被调用者前面。

横向概念

6、每行80到120个字符

7、空格加强分割效果,比如赋值语句,不在函数名和左圆括号之间加空格,函数中参数用逗号分割,乘法不用空格,加减法用空格,因为乘法优先级比加减法高

8、层层缩进

 

六、对象和数据结构

1、一切都是对象只是一个传说,数据结构和面向对象互相穿插

2、隐藏数据,暴露操作。方法不应调用由任何函数返回的对象的方法,函数之间不应连续调用,就跟火车车厢一样。

3、数据结构应该是一个只有公共变量、没有函数的类,DTO

 

七、错误处理

1、使用异常而不是错误码

2、先写try catch finally语句

3、包装别人的异常,抛出自己包装后的异常,在顶端处理自己的异常

4、别返回null值,上层需要对null做校验

5、别传递null值  

 

八、边界

1、不要将map等其他类似的东西在系统中传递,可以用类封装map,然后提供操作该map的方法,隐藏map

2、装饰者模式      

 

九、单元测试

 

十、类

1、封装

2、类应该短小,类的名称应当描述其权责

3、单一权责原则

4、内聚

5、隔离修改

 

十一、系统

1、抽象工厂

2、依赖注入,控制反转

3、aop

 

十二、迭进

1、重构,消除重复、保证表达力、尽可能减少类和方法的数量

 

十三、并发编程

1、单一权责:分离并发相关代码与其他代码

2、限制数据作用域:synchronized,严格限制对共享数据的访问

3、使用数据副本

4、线程尽可能独立

5、java concurrent包等

6、尽可能减小同步区域

 

十四、逐步改进

 

十五、Junit内幕

 

十六、重构SerialDate

 

十七、味道与启发

使用多态代替ifelse、switchcase

 

 




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值