《代码整洁之道》读书笔记一
做有意义的区分
-
如果同一作用范围内两样不同的东西不能重名,那其意思也应该不同才对。那么这两样东西应该取不同的名字而不是以数字区分。如果以下代码参数名改为
source
和destination
,这个函数就会像样许多public static void copyChars(char a1[], char a2[]){ for(int i = 0; i < a1.length; i++){ a2[i] = a1[i]; } }
- 以数字系列命名(a1、a2、a3...)是依意义命名的对立面。这样的名称完全没有提供正确的信息
- Info和Data就像a、an和the一样,是意义含糊的废话。但有时候只要体现出有意义的区分,使用a和the这样的前缀就没错
- 废话都是冗余的。Variable一词永远不应当出现在变量名中。Table一词永远不应该出现在表名中
避免思维映射
例如循环中的 i、j、k
等单字母名称不是个好选择;读者必须在脑中将它映射为真实概念。最好用 filter、map
等方法代替 for循环
类名与方法名
- 类名和对象名应该是
名称或名词短语
- 方法名应该是
动词或动词短语
每个概念对应一个词
例如 fetch
、retrive
、 get
表达同一个意思,应该选定一个,然后在各个类中使用相同的方法名。
别用双关语
避免将同一单词用于不同的目的。同一术语用于不同概念,基本上就是双关语了。
使用解决方案领域名称
记住,只有程序员才会读你的代码。所以,尽管用那些计算机科学(Computer Science,CS)术语、算法名、模式名等
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2020-10-10 2020/10/10 刘一辰的JAVA随笔