代码整洁之道 clean code 读书笔记

简介: 代码整洁之道 clean code 读书笔记

《代码整洁之道》 给出关于提高代码质量和可读性的建议。

一些建议对初学者非常有用。下面是我的几条笔记。

 

关于变量名、函数或类的名称

第2章 有意义的命名

2.2 名副其实

变量、函数或类的名称应该告诉你 它是什么、能做什么、该怎么用。

Int d; //消逝的时间,以日计

Int elapsedTimeInDays;

显然第二种更明确

另一个例子:

Public List<int[]> getThem(){

 List<int[]> list1 = new ArrayList<int[]>();

 for (int[] x : theList)

   if (x[0] == 4)

list1.add(x);

 return list1;

}

只看代码,很难理解这个到底是做什么的。

但是只要修改一下函数名、变量名就会让它变得明确。

Public List<Cell> getFlaggedCells(){

 List<Cell> flaggedCells = new ArrayList<Cell>();

 for (Cell cell : gameBoard)

   if (cell.isLlagged())

flaggedCells.add(cell);

 return flaggedCells;

}

 

函数

3.1 短小

函数就该小

代码块和缩进:

If else while语句其中的代码块一个只有一行,这行应该是一个函数调用。

3.2 只做一件事

函数应该只做一件事。

3.5 使用描述性的名称

别害怕长名称。

3.6 函数参数

函数参数应该尽可能少。

3.6.2 标识参数

尽量不要传布尔值

因为这样通常意味着

函数在true时要做一件事,在

false时又做另一个事情。

3.6.5 参数对象

如果函数需要2个以上参数,考虑将一些参数封装为类。例如:Circle makeCircle(double x, double y, double radius);

    Circle makeCircle(Point center, double radius);

3.7 无副作用

避免使用输出参数

相关文章
|
8月前
|
机器学习/深度学习 缓存 关系型数据库
《深度解析LightGBM与MySQL数据集成:高效机器学习的新范式》
LightGBM与MySQL的深度集成,为机器学习提供从数据到模型预测的完整解决方案。通过高效的数据管道、智能缓存及压缩技术,实现海量数据低延迟访问,支持实时特征工程与增量训练。该方案突破传统ETL瓶颈,保障生产环境可靠性,未来还将拓展联邦学习与元数据驱动等方向,推动数据智能深度融合,加速AI产业落地。
207 21
|
存储 缓存 搜索推荐
session 详解:掌握客户端会话管理
session 详解:掌握客户端会话管理
|
机器学习/深度学习 人工智能 缓存
【AI系统】推理内存布局
本文介绍了CPU和GPU的基础内存知识,NCHWX内存排布格式,以及MNN推理引擎如何通过数据内存重新排布进行内核优化,特别是针对WinoGrad卷积计算的优化方法,通过NC4HW4数据格式重排,有效利用了SIMD指令集特性,减少了cache miss,提高了计算效率。
466 3
|
计算机视觉 Python
Flask学习笔记(六):基于Flask的摄像头-web显示代码(可直接使用)
这篇文章是关于如何使用Flask框架结合OpenCV库,通过电脑摄像头实现视频流在网页上的实时显示,并提供了单摄像头和多摄像头的实现方法。
452 2
Flask学习笔记(六):基于Flask的摄像头-web显示代码(可直接使用)
|
人工智能 机器人
多模态大模型活动 | 使用 PAI×LLaMA Factory 搭建文旅问答机器人
LLaMA Factory 是一款开源低代码大模型微调框架,集成了业界最广泛使用的微调技术,支持通过 Web UI 界面零代码微调大模型,目前已经成为开源社区内最受欢迎的微调框架,GitHub 星标超过3万。本次活动通过 PAI×LLaMA Factory 微调 Qwen2-VL 模型,快速搭建文旅领域知识问答机器人,期待看到您与 AI 导游的创意对话!
|
存储 消息中间件 JSON
DDD基础教程:一文带你读懂DDD分层架构
DDD基础教程:一文带你读懂DDD分层架构
|
安全 网络协议 网络安全
Python 渗透测试:黑客内外网信息收集.(帮助 得到信息攻击计算机内外网.)
Python 渗透测试:黑客内外网信息收集.(帮助 得到信息攻击计算机内外网.)
235 0
|
传感器 机器学习/深度学习 存储
AI - Agent(人工智能代理)架构
AI Agent(人工智能代理)架构
1972 0
|
Java Spring 容器
@PostConstruct注解学习,最详细的分享教程
@PostConstruct注解学习,最详细的分享教程
454 0
|
数据可视化 应用服务中间件 nginx
如何查看docker 项目的配置文件
【2月更文挑战第21天】
3019 1

热门文章

最新文章