CleanCode代码整洁之道培训总结(2015-03-14)

        为期四天的CleanCode培训时间非常短。非常难准确掌握一些知识。但让我对代码有了一个又一次的认识和启示;之前也有看过设计模式、重构之类的书,看完之后也有一些感触,过后在写代码中还是不能应用进来,事实上重构是时刻都能够进行和长期存在的,变量用途是否单一、一个函数的命名、一个if语句表达式、是否有反复代码、函数职责是否单一、函数是否短小易懂、抽象层次是否单一;

        原来之前写的代码是这么烂。在改动代码时从来都不会去考虑又一次组织代码结构,写好的代码就是在写代码时注意细节怎样才干写出好代码呢?这是作为程序猿值得思考的问题,代码不是设计完后就不能改变的,应该是在以后需求变化。不断又一次设计。更利于以后的扩展

         重构就是在不改变代码外在行为的前提下,对代码做出改动,以改进代码程序的内部结构,提高其可理解性,减少其改动成本。本质上说,重构就是在代码写好之后改进它的设计。

函数10个1
1、每一个变量仅仅用于单一用途
2、每一行代码仅仅表达一件事
3、一个循环仅仅做一件事
4、单一抽象层次原则
5、代码组织得一次仅仅做一件事情
6、函数体内仅仅关注一种变化的原因(动机)
7、函数应该遵守单一职责
8、函数圈复杂度应该小于一十
9、函数第一原则是必需要短小
10、编写函数时必须一心一意、专注、怀有谦虚的心态

编程3个价值观
沟通--珍视与他人沟通的重要性
简单--把多余的复杂性去掉
灵活--保持开放。应对变化

计算程序的圈复杂度
1、从1開始,一直往下通过程序
2、一旦遇到下面keyword,或者其他同类词加1(if/for/while/and/or)
3、给case语句中的每一种情况加1
4、三元运算符a?

b:c 加1
5、给try catch语句加1

其他类型的复杂度度量方法
1、代码行数
2、函数參数个数
3、调用其他函数、对象、包的数量
4、每行运算符的数量
5、调转语句个数(goto/break/continue/throw)
6、控制结构中的嵌套层数
7、变量个数,函数的变量
8、同一变量的先后引用之间的代码行数(跨度)
9、变量生存的代码行数

驯服深层嵌套方法
1、使用卫语句
2、通过反复检測条件中的某一部分来简化嵌套的if语句
3、用break块简化嵌套的if
4、把嵌套if转化成一组if-then-else语句
5、把嵌套if转换成case语句
6、把深层嵌套的代码抽取出来放在单独子程序

软件质量能够分为内在质量(代码架构设计)与外在质量(软件使用过程稳定性)著名的冰山模型
内部质量管理的四个“现代化”
1、可量化----可度量
2、工具化----可视化、透明,使用工具检測(Java语言可使用sourcemonitor)
3、自己主动化----
4、优化----持续改善

检查代码是否变坏的相关标准
1、格式标准
2、命名
3、类、函数名长度
4、凝视量
5、反复度
6、条件表达式
7、圈复杂度
8、函数參数
9、函数内变量个数

供參考的Clean Code方法
1、一个循环仅仅做一件事情
普通情况下循环次数的数量级不是非常大。效率就不会非常明显,尽量分开处理,看起来结构清晰
2、do/while的使用须要注意。是否运行是由其后的条件决定
3、关于函数单一出口问题,并非那么重要;假设能增强可读性,那么就使用return

參考资料下载

http://pan.baidu.com/s/1gdd8YKr

http://www.cnblogs.com/renzhimin/archive/2012/04/09/2439447.html

编程是一种态度,编程是一种技艺,编程是一种习惯
做一名有节操、有底线和程序猿

posted on 2017-06-16 10:50  yjbjingcha  阅读(379)  评论(0编辑  收藏  举报

导航