如果汉语背后没有文化,文化背后没有思想,思想背后没有精神,光TMD编造老娘和乔布斯没有说过的话,那中国永远不会是一个伟大的国家。——撒切尔夫人

《代码整洁之道》读书笔记一

做有意义的区分

  • 如果同一作用范围内两样不同的东西不能重名,那其意思也应该不同才对。那么这两样东西应该取不同的名字而不是以数字区分。如果以下代码参数名改为 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循环

类名与方法名

  • 类名和对象名应该是名称或名词短语
  • 方法名应该是动词或动词短语

每个概念对应一个词

例如 fetchretrive、 get 表达同一个意思,应该选定一个,然后在各个类中使用相同的方法名。

别用双关语

避免将同一单词用于不同的目的。同一术语用于不同概念,基本上就是双关语了。

使用解决方案领域名称

记住,只有程序员才会读你的代码。所以,尽管用那些计算机科学(Computer Science,CS)术语、算法名、模式名等

posted @   崤函隳  阅读(76)  评论(0编辑  收藏  举报
编辑推荐:
· 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随笔
点击右上角即可分享
微信分享提示