美文网首页
代码整洁之道 -- 有意义的命名

代码整洁之道 -- 有意义的命名

作者: llkevin13579 | 来源:发表于2022-02-21 00:25 被阅读0次

       在日常编程中,命名是随处可见的,比如变量名、函数名、参数名、类名、包名,在这几年的编程过程中,看过很多类型的命名,开源的和同事的,风格各异。一个好的命名可以让人有一个很好的代码阅读感受,减少别人阅读的困难,提升阅读代码的效率。这次讲讲我遇到过的一些不好的命名以及如何更好地命名。

       一、用合适的命名代替注释

      有一次,看到一个同事的代码写的是

int t; // timestamp for recording data

       这里的t后面加了注释-记录数据的时间戳,在下面的代码中我也大概能记得这个t的含义,但是当我过几天去看这段代码的时候,我就忘记这个t的含义了,我要找回这个定义处的注释,才得知这个变量的含义,十分的麻烦,因为t可能指的是一段时间time,也有可能是指timestamp时间戳,也有可能是业务里某个以t开头的单词。如果不是自己写的,真的很难看一眼就知道含义,那为什么不使用一个更合适的命名呢?这样不仅不需要在后面写注释,更可以让后面用到该变量的时候一眼就可以看的出来。

       在我以前的后端编程中,时长我经常用duration这个变量来表示,但是存在一个问题,就是这个单位总是和前端的两个同事(安卓开发和iOS开发)搞混,一个觉得是以秒为单位,一个是以为以分钟为单位,经常容易出现问题,后面我把时长改成了durationInMin或者durationInSec,这样我们前后台联调的效率就高了很多,不会因为单位的问题调试半天。因此在编程中一定要使用合适的命名。

        二、做有意义的区分

        之前我在同事的代码里面看到一段关于字符串处理的函数,把字符数组赋值给另外一个字符数组,他是这样写的:

public static void copyChars(char a1[], char a2[]) {

   for (int i = 0; i < a1.length; i++ ){

         a2[i] = a1[i];

   }

}

       这一段代码看着特别的简单,把a1的所有元素通过for循环依次赋值给a2,但是这样的命名在代码中多了,就会显得特别的乱,在代码中我们还是尽量避免这样的命名,把a1改成source,把a2改成destination,这样函数看起来就会更有意义。

       还是就是,假如有一个Product类,如果还有一个名为ProductInfo或者ProductData的类,这样显然是没有太大的意义,表达的意思都是同一个。另外我还发现,有些同事喜欢写xxxStr,这个变量还一定是字符串变量,比如nameStr,这就让我很疑惑了,难道name还能是数值类型的?nameInt?显然这样的命名也是没有意义的,直接写一个name不是更香吗?

      对于函数来说,比如我有3个函数分别是:

getActiveAccount();

getActiveAccounts();

getActiveAccountInfo();

      当我需要获取活跃用户的账户时,我该调用哪个函数呢?是不是会一脸懵逼?所以当我们在命名的时候,一定要注意命名要有意义,这样使用起来才会更加方便。

 三、命名风格要统一

       我在以前一个大项目中,由于参与的开发同事特别多,所以在代码里,我既可以看到xxxController,也可以看到xxxManager,还有一些地方看到xxxDriver,但仔细看他们的代码,都是类似的逻辑实现部分,相当于MVC里面的C。当一个项目中含有这三种命名的时候,人的第一感觉是不同类型的名字,所以特别的不好,一个项目应该使用统一的命名,要不就统一使用xxxController,要不就统一使用xxxManager,或者统一使用xxxDriver。

       同样的,由于有些方法是添加一个元素到数组中,有些人用的是insert,有些人用的是add,有些人用的是append,这样在做全局搜索的时候特别麻烦,搜索insert的时候,add和append无法搜索的到。因此,在写这些有多种表达的变量名的时候,我们需要更多地去阅读之前的代码,和其他的风格保持一致,尽量让其他人不会看得出代码是由不同的人写出来的。

相关文章

  • 代码整洁之道-<有意义的命名>

    代码整洁之道-<有意义的命名> 代码整洁之道 一书相关读书笔记,整洁的代码是自解释的,阅读代码应该如同阅读一篇优秀...

  • 代码整洁之道:有意义的命名

    名副其实 如果名称需要注释来补充,那就不是名副其实 bad good 避免误导 别留下掩藏代码本意的错误线索 ba...

  • 代码整洁之道——有意义的命名

    我们给变量、参数、类、包,源代码和源代码所在目录命名,也给jar文件、war文件和ear文件命名。 命名应该遵循什...

  • 代码整洁之道 -- 有意义的命名

    在日常编程中,命名是随处可见的,比如变量名、函数名、参数名、类名、包名,在这几年的编程过程中,看过很多类型的...

  • 笔记链接.代码整洁之道

    本书豆瓣链接:《代码整洁之道》 第1章 整洁代码第2章 有意义的命名第3章 函数第4章 注释第5章 格式第6章 对...

  • 简洁代码--命名

    代码整洁之道笔记 [TOC] 命名 代码的整洁,从命名开始 名副其实、准确 名称应该能够说明该(变量、类、函数)存...

  • 一、代码整洁之道:命名

    1.名副其实 变量、函数或类的名称应该答复了所有的大问题。比如它为什么存在,它做什么事情,应该怎么用。如果名称需要...

  • 2022-10-14-读《代码整洁之道》

    《设计模式之禅》读完。开始重读《代码整洁之道》。 命名 用有意义的名字,不用无意义的字符 名字要能够读出来,比如一...

  • 代码整洁之道学习笔记

    代码整洁之道读书笔记 一、有意义的命名 名副其实 表示产品A上线时间剩余天数 获取水果订单中所有的id为4的苹果订...

  • 代码整洁之道CheckList

    总结看完《代码整洁之道》这本书之后得到的CheckList,可以用来指导之后的代码review和重构。 命名 名副...

网友评论

      本文标题:代码整洁之道 -- 有意义的命名

      本文链接:https://www.haomeiwen.com/subject/mirvlrtx.html