java

clean code - 整洁代码

曾经读过一次clean code,最终书丢了,确切说是被人偷了!距今已是两年多三年!

clean code全书17章,我将针对性的写点读书笔记。

至于糟糕的代码有那些坏处不在本文范围内,我直说重点。

什么是整洁的代码?

1、我喜欢优雅和高效的代码,代码逻辑直接了当,让缺陷无法隐藏,减少依赖关系,使之便于维护,根据某种分层策略完善错误处理,性能调至最优,免得别人因为调优性能而把代码搞得一团糟,整洁代码只做一件事。

2、整洁的代码简单直接犹如优美的散文,充满了干净利落的抽象和直截了当的控制。

3、字面编程,测试驱动开发,其他人可以增补。

4、整洁的代码是别人无法再改进。

5、能通过所有测试,没有重复代码,提现系统中的全部设计理念,尽量少的实体、方法、函数等。

有意义的命名

1、要名副其实、消除魔幻数字、可以考虑进行封装。

2、避免误导,比如accountList,而它的容器不是list,比如o和l特别像0和1,比如两个很像的方法名,做有意义的区分,比如personInfo和personData有什么区别?

3、使用可读的名称,即不要随便缩写,year、month、day不要写作ymh

4、可搜索,其实依旧是魔幻数字,不要随意使用数字,而是给他一个名副其实的名称,然后使用这个变量或者常量。

5、前缀是多余的,比如m_name等。

6、不用单字母,类名应该是名词或短语而不是动词,方法名应该是动词或者动词短语,重载构造器时,使用描述了参数的静态工厂方法名,Person person = new Person(10, "张三"), 没有Person person = Person.createByAgeAndName(10, "张三");好!可以考虑把构造函数写成private,强制使用createByAgeAndName。

7、别扮可爱,别使用与文化相关的单词,比如eatMyShorts表示abort

8、为每个抽象概念选一个词并且一以贯之,不要一会model一会bean,他们没区别,却不知道该用那一个。

9、不要用一语双关的单词,比如add,不要为了保持一致而用一个一语双关的单词。

10、语境,上下文语境不好,代码逻辑混乱,也不要添加不必要的语境。

以上是clean code第一二章的笔记,相比之下,我们的代码缺少单元测试是真的,我们很多时候不写它,像我,甚至不知道怎么写,代码重复可能时有出现,方法做的事很多也是事实,魔幻数字总是懒得处理,不懂得尽可能封装,虽然封装了,但距离作者说的还差的远!单字母也会在循环里出现,使用描述了参数的静态工厂方法也不多,而且builder用的更少!上下文语境更是很少注意!

以后,可以考虑从以下几个方法提高自己:

1、单元测试真的有必要?该如何高效的测试?

2、拒绝代码重复

3、简化方法作用

4、拒绝魔幻数字,复杂逻辑进行封装

5、循环里不使用单字母

6、使用描述了参数的静态工厂方法、使用builder

full-stack-trip

Share
Published by
full-stack-trip
Tags: clean-code

Recent Posts

Android 自定义 View 入门

说来惭愧,工作数年,连基本的自…

4 年 ago

retrofit 同时支持 xml 和 json

retrofit 解析 jso…

4 年 ago

mysql - 存储过程 从入门到放弃

最近有个报表的需求,于是乎用了…

4 年 ago

奶嘴战略 - 你不得不知道的扎心真相(一)

一句:英雄枯骨无人问,戏子家事…

4 年 ago

acme.sh 的简单使用

acme.sh 是纯 shel…

4 年 ago

wrk -更现代化的http压测工具

wrk 是一款更现代化的 ht…

4 年 ago