网站首页 > 博客文章 正文
如果每个列程都让你深合己意,那这就是整洁代码
深有体会,函数越缩小,功能越集中,就越好起名字,不要害怕花费时间在起名字上面,一个有意义的名字能帮助你减少对代码的反复阅读
命名格式需要一致保持一个模块下的功能命名一致,一个功能下的方法命名一致,一个方法下的变量命名一致等。
函数参数
最理想的函数参数为零,其次是单参数的函数,再就是双参数的函数,尽量不要使用超过两个参数的函数,除非有足够特殊的理由, 所以无论如何都不要使用三个参数的函数
单从测试角度看待问题,我们都更喜欢无参数的函数,这样调起来方便很多,不用添加各种各样的测试用例,这样也就可以提升函数的测试覆盖率
标识函数,在函数中有必要的情况下尽量让函数只做一件事,如果一个函数里面存在判断之后做两件事,则需要拆分函数为多个。二元函数尽量转换拆分成一元函数使用。
使用异常替代返回错误
抽离
public void delete(Page page){
try{
deletePage(page)
}catch(Exception e){
log.info(e)
}
}
void deletePage(Page page){
......
}
尽量把try内的代码抽离成为一个整体函数,提高代码的阅读感与美感
上述代码delete(Page page)只是负责处理错误,而deletePage(Page page)只是负责删除的操作而已,分工合作,提升代码的可读性。
减少重复的命名,重复命名组合等都使代码的可读性下降,现在变成许多都在消除重复,其中有面向基类,面向方面,面向组件编程都在消除重复,且创新多出至与减少重复。
结构化编程
有人认为每一个函数中的每一个代码块都应该有一个入口和一个出口,写代码像写论文一样,先打草稿,可能开始的时候毫无章法,毫无规范,需要不断的去打磨,直到符合规范,减少冗余,符合心目中的样子为止。
我想把系统当成故事来讲,而不是当成程序来写,每一个函数都是准确无误的描述一个事实。
总结:
- 有一个好名字
- 尽量减少重复名字的出现
- 要有规整,基本是数据分类存放
- 最好无参数,其次是一元函数,尽量减少多元函数的出现
- 一个函数只负责一件事,如负责错误的函数就只处理错误,多余的逻辑放在其他函数中去实现
- 函数短小
- 明确真正的目标,时刻牢记,我们写的系统是为了讲述一个故事,而不是为了写程序而写程序
- 拼接函数干净利落,形成一种精确而清晰的思路
以上准则使用于函数,类,代码块,模块,程序,系统。
阅读记录
猜你喜欢
- 2024-11-10 代码整洁之道-味道与启发(代码整洁之道适合什么人读)
- 2024-11-10 Python代码整洁之道01--整洁代码,真的有那么重要吗?
- 2024-11-10 常说的代码整洁到底是什么?(代码整洁之道适合什么人读)
- 2024-11-10 写出一手骚代码,学习下《代码整洁之道》
- 2024-11-10 Python代码整洁之道01--整洁代码(代码整洁之道pdf百度云)
- 2024-11-10 《代码整洁之道》:5大基本要点(代码整洁之道总结)
- 2024-11-10 《代码整洁之道》阅读整理,附脑图
- 2024-11-10 优秀程序员需要掌握的代码整洁之道
- 2024-11-10 编写整洁代码的十大心得,你 Get 了吗?
你 发表评论:
欢迎- 08-06nginx 反向代理
- 08-06跨表插入连续的日期,sheetsname函数#excel技巧
- 08-06初中生也能学的编程,不走弯路,先用后学
- 08-06find命令的“七种武器”:远不止-name和-type
- 08-06恶意代码常见的编程方式
- 08-06kali2021ping 外网不通
- 08-06因为一个函数strtok踩坑,我被老工程师无情嘲笑了
- 08-06hadoop集群搭建详细方法
- 52℃nginx 反向代理
- 最近发表
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- powershellfor (73)
- messagesource (71)
- plsql64位 (73)
- vueproxytable (64)
- npminstallsave (63)
- #NAME? (61)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- nacos启动失败 (64)
- ssh-add (70)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- qcombobox样式表 (68)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)