欢迎来到天天文库
浏览记录
ID:57297602
大小:2.84 MB
页数:53页
时间:2020-08-10
《代码整洁之道课件.pptx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、代码整洁之道2015年12月梅花与剑目录01代码的坏味道02编码原则03代码可读性04代码健壮性05异常处理06关于日志07关于性能08代码习惯09设计模式10关于重构这是哪个傻X写的代码!!!世上本没有BUG随着功能的增加,便有了BUG老的BUG改了,可能引入新的BUG事实1:我们的软件,在发布前,其实就已经百病缠身了。代码如何变烂的?熟悉代码的坏味道,并知道这里需要重构,代码的坏味道(部分):重复代码—拷贝粘贴再修改的痕迹(提取公共逻辑)过长的方法—函数体超过50行,实现了多个逻辑(ExtractMet
2、hod)过大的类—类做了太多的事情(ExtractClass)过长的参数列—方法难于使用和理解(参数Object化)变化导致太多修改—变化引起多个类的修改(Move方法到该放的地方)依恋情节—一个类的实现大量引用另一个类的数据(Move方法)Switch语句—对不同类别使用switch(使用多态)临时变量—临时变量不易于理解和抽取(ReplaceTempwithQuery)过度设计—过多的抽象和代理(先简单设计,变化来临时再重构)不用的方法—子类不需要使用父类的方法(改变类层次)违背了一些原则—后面会详细讲
3、原则及违背带来的影响代码的坏味道低质量代码存在的问题:难于变化—一处变化导致其它很多部分,特别是无关部分的修改难于重用—系统关联性过多,导致很难分离可重用部分不必要的复杂—设计过于复杂,不利于当前编码不必要的重复—同样的逻辑多处出现,未进行抽象的统一难于理解—命名杂乱,结构混乱,难于阅读和理解难于测试和验证—过多依赖其它系统,缺乏完善测试体系,难于验证高质量的代码编写原则:每个变量只用于单一用途每一行代码只表达一件事一个循环只做一件事单一抽象层次原则函数应该遵守单一职责函数圈复杂度应该小于10函数第一原则是
4、必须要短小编写函数时必须一心一意、专注、怀有谦虚的心态原则八大原则代码可读性——目录结构web工程:webapp:src:代码可读性——包、类、方法、属性、常量的命名规范myname可能的写法:myname、my_name、MyName或者myName。两种常用命名方法:驼峰式命名:printEmployeePaychecks();函数名中的每一个逻辑断点都有一个大写字母来标记下划线法命名:print_employee_paychecks();函数名中的每一个逻辑断点都有一个下划线来标记骆驼式命名法就是当变
5、量名或函式名是由一个或多个单字连结在一起,而构成的唯一识别字时,第一个单词以小写字母开始;第二个单词的首字母大写或每一个单词的首字母都采用大写字母。小驼峰法:除第一个单词之外,其他单词首字母大写。譬如intmyStudentCount;大驼峰法:相比小驼峰法,大驼峰法把第一个单词的首字母也大写了。譬如publicclassDataBaseUser;Package的命名Package的名字应该都是由一个小写单词组成。Class的命名Class的名字必须由大写字母开头而其他字母都小写的单词组成,大驼峰法Clas
6、s变量的命名变量的名字必须用一个小写字母开头。后面的单词用大写字母开头,小驼峰法StaticFinal变量的命名StaticFinal变量的名字应该都大写,并且指出完整含义,下划线法方法的命名方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头。小驼峰法代码可读性——判断中尽量少用“非”看一段代码inta=2;intb=5;if(!(a!=1&&b==5)){System.out.println(“条件1”);}else{System.out.println(“条件2”);}请问输出是什么
7、?如果觉得这还不够,那看看“我不得不否认,你不是个笨蛋”,这句话是什么意思:)杜绝双重否定的出现,代码是用来给人读的代码可读性——i++和++i看一段代码:publicclassTestStatic{static{intx=5;}staticintx,y;publicstaticvoidmain(Stringarg[]){x++;method();}publicstaticvoidmethod(){System.out.println(x+++++y);}}X和y分别是多少不要写这类代码,这种代码是用来考机
8、器的,对于我们要写的代码,请写大家看得懂的代码真实代码:PublicClassCounter{privateintcounter=0;publicintgetCounter(){return++counter;}}由于运行环境的不同,有些返回1,有些返回0代码可读性——注释文件头标注开发者、功能、开发时间、最后修改时间、修改详情;方法头标注功能、输出参数、输入参数;方法体内重要代码及疑难代码行内注释;ifelse
此文档下载收益归作者所有