分享好友 最新动态首页 最新动态分类 切换频道
java日常开发中如何写出优雅的好维护的代码
2024-12-26 19:02

注释

开发中合理添加注释,提高代码的可读性和易读性

1、在类、接口、方法、属性、代码块、有特殊逻辑的地方都要添加注释说明

2、推荐中文注释,减少理解成本

3、遵循 javaDoc 注释规范,除方法内的代码块用 // 注释,其他地方推荐 javaDoc 注释

日志

开发中要合理添加 info、error 日志,方便线上问题定位

1、在关键步骤上要添加日志

2、异常分支必须增加日志,比如throw抛异常的地方,打印出关键信息,提升问题定位效率

3、日志描述信息用英文,不要用中文,防止不同编码导致乱码问题

4、一般只在开发中打印的日志会用debug打印,线上日志debug级别的一般会设置不打印出来,不过上线前还是建议删除开发中调试的日志

命名

1、不能太随意,反例:BaseResultMap1、param1

2、能正确区分含义和功能

3、拼写要正确,反例:supper => super

代码可读性

日常开发中哪怕是不断在开发新需求,但我们至少有一半的时间都是在阅读老的代码,想要提高代码可维护性,那可读性就很重要。

就像Martin Fowler在《Refactoring: Improving the Design of Existing Code》中提到的:“任何傻瓜都能写出计算机能理解的代码,但只有优秀的程序员能写出人类能理解的代码。” 所以一定不要按照需求文档一步一步的去写出面条式的代码,多去抽离和提取。

1、每个函数不要太长

2、函数参数不要超过3个,多个参数可以定义成单独的对象传递

3、复杂的参数可以封装成上下文context对象里再嵌套其他实体对象,利用引用数据类型的特点,单独的方法中也不需要在额外return出结果,后续其他方法中通过context对象就可以直接获取其他方法中处理过的最新的数据

4、可读性比节省的那点性能重要,比如在同一个for循环中去同时做两件不同的事,看似只用1次循环节省了点性能,实际可读性变差了

5、一些DTO、entity对象附属的判断、赋值之类操作可以直接封装在实体对象里面

6、保持简单,不要炫技,如果一眼就能让人看明白的,就不要去写出需要别人想半天才能明白的代码

条件判断

1、判空统一用 StringUtils、CollectionUtils 这类官方库 如字符串判空项目中有自己判断的,有用 hutool 的,推荐统一使用 Apache 的 StringUtils 来判断,多条判断可以用 isAnyBlank、isAnyEmpty 合并,反例:

2、复杂判断抽成单独的方法,比如抽成单独的assembler静态方法,这样也很方便单独针对判断逻辑来写单测测试,反例:

3、if 判断不要嵌套太深 可以提前 return 来减少 if 嵌套层级,也可以利用 switch、策略模式、提取单独的方法简化逻辑

4、多用 StringUtils.defaultString、ListUtils.emptyIfNull 简化代码:

可以简化成:

代码逻辑

1、方法职责单一,尽量保证每个方法只做一件事

2、转换代码抽到单独的 Assembler 里

3、无用的代码直接删除掉,除非确实容易埋坑的代码可以注释掉保留

4、消除魔法值,可以定义成公共/局部常量、枚举,反例:

单测

1、caseDesc 里清晰描述每条用例

2、用例文件名命名有意义,反例:success1.json5、fail2.json5

3、所有外部依赖数据要全部 mock 掉

4、尽量覆盖所有场景的用例,单测实际能检测出大部分的问题

5、不像前端开发中基本不会单独写单测,后端开发实际很依赖单测来自测,所以要重视单测

以上就是开发中总结出来的有利于提高代码优雅性、可维护性的一些地方,其中最重要的我觉得还是可读性那一点,代码可读性太差,实际是给团队后续开发中埋坑。

最新文章
这组雪中红梅图,太美了,养眼养心!
在雪花纷飞的世界里,这点点绽放在枝头的红梅,着实美得动人心魄,那傲雪凌霜的姿态真让人忍不住由衷赞叹,大自然竟然能绘就如此这般绝美的景致。。。下面,我们在欣赏美图的同时娱乐一下,让智能AI根据我们输入的雪中红梅图,创作一首打油
百度蜘蛛池价格:小霸王蜘蛛池搭建教程,打造高效SEO优化利器
小霸王蜘蛛池教程助您高效SEO优化,轻松搭建蜘蛛池,提高网站收录及排名。全面解析搭建步骤,助力您的网站迅速提升搜索引擎表现。本文目录导读:小霸王蜘蛛池搭建教程注意事项随着互联网的不断发展,搜索引擎优化(SEO)已成为企业提高网站
高效实用炉石传说游戏辅助:精选插件推荐指南
本文目录导读:二、Firestone火石记牌器三、炉石传说盒子四、HearthArena插件五、选择建议在《炉石传说》这款深受玩家喜爱的策略卡牌游戏中,选择合适的插件可以显著提升游戏体验,帮助玩家更好地规划策略、管理卡牌,并提升竞技水平,以下
亚马逊CPC广告投放中的最佳广告关键词匹配方式浅析
谈及亚马逊广告的关键词匹配方式设置,不同的卖家有不同的理解,可无论怎么样的设置,都是为了达到既能节省成本又能尽可能多的展现在潜在客户面前的目的,但如果对关键词匹配方式理解不全面,甚至理解错误,则要么浪费了流量,要么错过了客
竞价推广代运营公司,让您的广告效果更持久!
标题:竞价推广代运营公司:让您的广告效果更持久亲爱的读者朋友们,您是否在为广告投放效果不佳而烦恼?是否在寻找一家专业的竞价推广代运营公司来帮助您解决这个问题?那么,请继续阅读,本文将为您揭示竞价推广代运营公司的优势,以及如
隐秘的QQ流量生意,是如何“0成本月入过万”的?
  前段时间刷公众号的时候,刷到这样一篇文章:  “三个月 70 万”、“ 2021 最赚钱的项目”、“ 90% 的人不知道”,这些噱头可谓一个比一个能激发用户好奇心,“致富”吸引力爆棚。  等点进去一看,好家伙,通篇只有一个重点:做 QQ
金阳光速清理软件手机版 v2.3.1
金阳光速清理是一款可以帮助手机清理内存垃圾的软件,软件中的清理功能非常强大,可以有效的帮助手机释放内存空间,还能帮助手机管理电池消耗,延长电池的使用寿命,如果大家的手机出现了卡顿的问题,就肯定是手机内存垃圾太多导致的,有了
喜报!iTEST获评2024年度“人工智能+教育”典型案例
随着大模型、知识图谱、智能语音等人工智能技术加速创新,人工智能在教育领域中的应用日益深入,“人工智能+教育”进入发展快车道,深刻改变着教育教学方式、人才培养模式和教育管理形式,政产学研用相关各方积极从政策指引、技术攻关、产
班级优化大师APP
班级优化大师专为中小学教师打造。现已获全国超200万教师的喜爱和肯定,成为新时代下教师开展学生评价、家校沟通、课堂互动等教学活动的主流选择!1、管理班级更高效,还能和家长随时沟通2、随时发送重要通知给各位家长3、家长的不同想法,
浙版传媒:探索推动AI技术在选题策划、精准营销等领域的应用|直击业绩会
①公司将积极探索并推动AI技术在选题策划、辅助文字、绘画创作、精准营销等领域的应用。②全年线上业务营收31.55亿元,同比增长17.15%。③今年继续通过设立数字产业基金方式,持续跟踪储备未来可进一步参股或收并购的优质项目。财联社5月25
相关文章
推荐文章
发表评论
0评