一个简单的代码风格优化的小案例

简介: 最近 review 了一些代码,其中有一个函数的写法看着别扭,而且对应同学不太清楚还可以怎么优化。由于案例比较典型,值得分享一下。本文给出对应的伪代码和自己的修改建议,并推荐可以提交代码质量的图书,以便能够帮助大家养成良好的编码风格。

一、背景

最近 review 了一些代码,其中有一个函数的写法看着别扭,而且对应同学不太清楚还可以怎么优化。由于案例比较典型,值得分享一下。


本文给出对应的伪代码和自己的修改建议,并推荐可以提交代码质量的图书,以便能够帮助大家养成良好的编码风格。


二、伪代码


publicvoiddoSomething(){
// 构造参数(后无空格)// 调用二方服务(后无空格)if(result.success&&result.getXXXMap() !=null&&result.getXXXMap().get("aaa") !=null){
// 执行一大段逻辑}
}


存在的问题


- 代码行数有点多

- 构造参数、调用二方服务、结构判断并执行大段逻辑之前没有任何空行,导致看着不够清晰

- if 判断部分搞得有些复杂,需要多看几眼才能看懂



三、修改

修改意见

- 每个步骤中间加个空格,提升段落感

- 将成功后的处理提取成一个独立的函数,降低函数长度

- 将判断所需的map 提取成局部变量,让判断更加简洁

- 将防御性判断写在代码执行之前,逻辑更清晰


/

publicvoiddoSomething(xxx){
// 构造参数(后空格一行)// 调用二方服务(后空格一行)if(result.success ){
other();
    }
}
// other 只是一个demo, 实操时命名符合意图privatevoidother(yyy){
Map<K,V>map=result.getXXXMap() ;
if( null==map&&null==map.get("aaa")){
return;
}
// 执行业务逻辑}


当然,如果有必要 前面的 result.success 也可以反向判断直接  return 。

这里的 “aaa” 只是一个举例,实际并不是简单的字符串,所以暂时不处理。

如果是普通字符串的话,建议定义为常量。


这样修改完毕可读性就提高了很多,代码非常清晰。


四、总结

这个案例非常简单,希望能够帮助大家养成良好的代码风格,提高代码可读性,让读者看起来更清爽。


另外《代码精进之路 从码农到工匠》中有提到【写代码是两次创作】

优雅的代码很少是一次形成的,大部分情况下要经过两次创造:第一遍实现功能,第二遍重构优化。


因此,实现功能以后,在代码审查阶段,如果有时间建议尽量对代码进行优化。



另外推荐阅读《阿里巴巴Java 开发手册》、《重构 -改善既有代码的逻辑》、《代码整洁之道》,代码质量应该可以上升到一个新的台阶。



相关文章
|
人工智能 自然语言处理 达摩院
达摩院智能对话技术升级-更人类,更温暖-通义对话大模型SPACE加持下的新一代对话智能-SPACE:打造分布式对话智能
达摩院智能对话技术升级-更人类,更温暖-通义对话大模型SPACE加持下的新一代对话智能-SPACE:打造分布式对话智能
1193 0
达摩院智能对话技术升级-更人类,更温暖-通义对话大模型SPACE加持下的新一代对话智能-SPACE:打造分布式对话智能
|
前端开发 JavaScript
从零开始学习前端开发
前端开发是当前最热门的技术之一。本文将从零开始,详细介绍前端开发的基础知识和实践技巧,为初学者提供全面的学习指南。
224 0
|
数据采集 数据可视化 数据挖掘
掌握可视化大屏:提升数据分析和决策能力的关键(下)
掌握可视化大屏:提升数据分析和决策能力的关键(下)
|
机器学习/深度学习 传感器 算法
【预测模型】基于随机蛙跳算法 SFLA优化神经网络实现数据回归预测附matlab代码
【预测模型】基于随机蛙跳算法 SFLA优化神经网络实现数据回归预测附matlab代码
|
存储 关系型数据库 MySQL
MySQL5.5可以升级到MySQL5.7吗?会有什么问题?底层原理是什么?
MySQL5.5可以升级到MySQL5.7吗?会有什么问题?底层原理是什么?
977 0
|
8天前
|
人工智能 数据可视化 安全
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
本文详解如何用阿里云Lighthouse一键部署OpenClaw,结合飞书CLI等工具,让AI真正“动手”——自动群发、生成科研日报、整理知识库。核心理念:未来软件应为AI而生,CLI即AI的“手脚”,实现高效、安全、可控的智能自动化。
34498 21
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
|
19天前
|
人工智能 JSON 机器人
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
本文带你零成本玩转OpenClaw:学生认证白嫖6个月阿里云服务器,手把手配置飞书机器人、接入免费/高性价比AI模型(NVIDIA/通义),并打造微信公众号“全自动分身”——实时抓热榜、AI选题拆解、一键发布草稿,5分钟完成热点→文章全流程!
45353 142
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
|
2天前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
2871 8
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
|
9天前
|
人工智能 JSON 监控
Claude Code 源码泄露:一份价值亿元的 AI 工程公开课
我以为顶级 AI 产品的护城河是模型。读完这 51.2 万行泄露的源码,我发现自己错了。
4989 21
|
2天前
|
人工智能 监控 安全
阿里云SASE 2.0升级,全方位监控Agent办公安全
AI Agent办公场景的“安全底座”
1136 1