博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我们来聊聊命名
阅读量:5874 次
发布时间:2019-06-19

本文共 1322 字,大约阅读时间需要 4 分钟。

There are only two hard things in Computer Science: cache invalidation and naming things.

       节后第一天,无心敲代码,随意聊聊命名这件事吧。(别问为什么不聊缓存失效,问就是不会)

       对于大多数码农来说,命名确实是一个很大的难题。我们往往会花费很多时间在命名上,一个好的命名对于代码可读性提升的帮助是巨大的。

一、遵循规范

       一个优雅的命名必定是严格遵循一定的规范的,这个规范既指行业通用规范也包括公司团队内部的规范。不符合规范的命名对于代码可读性的破坏力是巨大的。

zhuanhuanweiriqi //拼音命名,不符合规范convertstandardtermtodate //全部小写,不符合规范convertStandardTermToDate //采用小驼峰命名复制代码

      上面的几个命名表达了同一个意思,但是很显然前两个命名如果出现在我们的代码中无疑是一场灾难,最后一个采用了小驼峰命名对于代码可读性的提升则是显而易见的。

二、表意清晰

       命名最基本也最重要的一点就是表意要清晰。每一个变量、方法都应该能够见名知义。在小白程序的代码中经常会看到list1,list2,fun1,fun2这样的命名。这样的命名在项目或者页面内容较少的时候也许还能勉强阅读。但是会极大的降低代码的可扩展和可维护性。

       但是还有一种情况下会给我们命名带来困扰,比如我们在用户管理中最常见的几个命名问题:userListusers都可以用来表示用户列表;getUsersgetUserList都可以用来获取用户列表;getUserById, getUserInfoById, queryUser, ...。当我们遇到这种多个命名意义相近的无法取舍的时候,我们需要做的事情就又回到了第一点,让项目团队约定其中一种命名方法并且统一地运用到所有模块。

三、功能的合理拆分

       通常,如果我们想不到一个合适的命名或者命名过长,这意味着我们的代码里一定出现了不合理的设计。比如goOutToPlayFootball显而易见的可以被拆分成goOutplayFootball两个更单一的方法,这样做的好处是不言而喻的,既简化了命名增强了代码可读性,又降低了耦合度,还提高了代码的可扩展性。

四、整合工具类

       我们经常需要是实现一些功能相近的方法,比如日期相关的一些方法,我们就可以创建一个名为dateUtil的集合,把所有日期相关的方法放到dateUtil内部去实现,比如数字格式化的方法可以放在numberFormatter里面等等。

结语

       快跑题了,就此打住吧。

       命名确实是一件挺难的事情,要在巨量的词汇库中挑选出一两个词来表达出最正确和具体的意思。但这也不是一件坏事,它可以迫使我们去思考我们的方法和组件到底要需要实现怎样的功能。每一次命名都给了我们一次代码审查和优化的机会,我们要学会珍惜。

       随手写了点自己的体会,权当抛砖引玉,大家可以一起交流下心得。你们对命名这件事又是怎么看的呢?

转载于:https://juejin.im/post/5bbaba00e51d450e735e9021

你可能感兴趣的文章
Could not find the main class: org.apache.catalina.startup.Bootstrap. Program will exit.
查看>>
Linux中文件颜色所代表的属性和颜色
查看>>
day02-虚拟环境安装
查看>>
归并排序
查看>>
创建XML文件以及XML中的节点和更新Xml文件中的节点的值
查看>>
字节流转换为对象的方法
查看>>
使用临时表关联数据时效率低的问题
查看>>
Spring @AspectJ 实现AOP 入门例子(转)
查看>>
hdu 2255 奔小康赚大钱 KM算法
查看>>
bzoj 2752 9.20考试第三题 高速公路(road)题解
查看>>
通过一个模拟程序让你明白ASP.NET MVC是如何运行的
查看>>
BZOJ 1051 受欢迎的牛 缩点
查看>>
配置JAVA的环境变量
查看>>
好爸爸陪宝宝必做的50件小事儿
查看>>
服务器端跳转
查看>>
让低版本浏览器支持html5的标签
查看>>
hdu 6040 -Hints of sd0061(STL)
查看>>
【原创】cocos2d-x3.9蓝牙开发之蓝牙开启
查看>>
java面试题07
查看>>
Ideal 使用帮助手册
查看>>