Coding,命名是个技术活

来吧

 

平常编码少不了的事情就是给代码命名,代码中命名的重要性在项目前期不会有太大感觉,由于是边作边命名,代码每天见,天然会加深记忆。但到了后期上线后半年一年后,再回过头看的时候,我擦,这个变量是啥意思?这个方法不对呀,不是更新用户状态的吗? 接下来就是各类吐槽,谁写的代码,这么烂,翻一下提交日志,哦?我写的,赶忙悄悄的改过来。html

 

常常性咱们吐槽别人的代码烂,那么你是如何定义你认为的烂代码,它们烂在哪里 ?spring

 

代码究竟烂在哪里

 

这个问题说的具体点,可能常常咱们在没理清业务逻辑的状况下去直接看别人的代码,至关于经过代码反推业务逻辑,别人的命名、编程思惟跟本身的习惯不一致,须要时间去消化理解他的逻辑和习惯,而后加上代码排版乱七八糟,一堆 if else,还掺杂着各类奇怪的命名,魔鬼数字,OMG,简直不要太爽。以上综合起来,大概就是你们眼中认为的烂代码吧。数据库

 

简要总结下:编程

 

  • 自身缘由,业务并未彻底理解清楚,直接上手看代码

这里是建议先搞懂业务逻辑和相关的实体或数据库表,最好是本身简要画出流程图或时序图辅助理解代码,展开说的话比较多,后面有机会单独一篇吧数组

 

  • 代码风格不规范

体如今各类接口、方法、变量的命名不规范,代码格式排版混乱,过长方法,无注释或不详细等,注释这块最坑的不是没有注释,而是错误的注释。本身脑补下画面springboot

 

  • 代码逻辑混乱

体如今代码逻辑不清楚、冗余代码、废弃方法、深层的嵌套等,怎么优化,也值得单独写几篇工具

 

能够看到命名在里面占有一席之地,那么如何作好代码中的命名,且往下看。优化

 

好的命名,看这里

 

先给出结论,一个好的命名最最最关键的一点,见名知意,见名知意,见名知意,重要的内容重复三遍,并加个底色。ui

 

不要怕长

我工做中碰到很多人有个命名习惯,我称为半命名方式,看个例子,定义一个业务需求的实体类,正常见名知意的命名是这样的BusinessRequirement,可是,他们以为这样太长,他们会这样编码

BusRequi、(各省一半)

BusinessReq(后面省一半)

BusinessXq(一半英文、一半拼音,洋不洋气

这样的命名彻底不具备可读性,还容易产生歧义。因此,不要怕长,能让人和有道词典读懂是前提。

 

看个springboot中的命名

SpringApplicationJsonEnvironmentPostProcessor

长吗?但确定能读懂对吧。

 

可是有一类是能够简化的,就是行业内你们公认的术语简称,好比你想整个ip工具类,那么你能够这样命名IpUtil,就不必整成这样InternetProtocolUtil,由于Ip这个词在业内你们都懂,就能够简写。

 

准确

准确就是命名要符合当下的业务场景,好比我老早以前作的考试类项目中有个题目实体,同事采用的命名是Problem,显然放这里是不合适的,最后纠正为Question。要作到准确,仍是比较考验英文功底的。

 

具体

具体就是能正确表达变量或类所指向的代码含义,例如咱们定义了一个表明软件版本号的数组,可能会这样定义

 

int[] array = new int[] {1,2,3,4,5};

 

数组却是能看懂,可是单看这一行代码并不能搞清楚干什么用,放在具体的代码逻辑里结合上下文代码,倒也能推导出来数组中定义的具体是什么,可是增长的阅读代码的难度,好一点的固然是下面这样

 

int[] versionNumberArray = new int[] {1,2,3,4,5};

 

说清楚具体含义,表示的是什么数组,而不是抽象的表达个数组的概念。

 

额外补充一点

我见过一个项目从代码到数据库总体命名都是拼音简写形式,说实话拼音简写对业务不熟悉人来讲很难识别,并且时间一长彻底是懵逼的,彻底得靠猜。

 

拿上面的业务需求来讲拼音整出来Ywxq,拼音组合能够有不少种解读。项目得以持续维护的关键是他们有详细的字典说明文档,实际上就是上篇文章说的公司或团队有一套本身的标准就行

 

可是可想而知仍然很痛苦,除非是个别领域内的专业词汇,英文很难表达,能够尝试拼音解决,其余状况仍是尽可能用英文命名。

 

总结

 

好的命名就是作到见名知意,具体遵循如下几点:

 

一、不要怕长,专业术语行业内有简称,可用简称

二、用词准确
三、表达具体

四、尽可能使用英文

五、上面没提到的一点,公司有规范,优先符合公司规范

未入行以前,不少人老是好奇,英文基础对编码到底有没有影响,到底有多大,这里就能够看到,是有影响的,起码命名的时候有障碍,须要借助有道词典或 code if 这样的工具。

 

并且越日后英语的重要性就越发明显,好比你能够直接读一手英文资料、文献等。

 

最后

写完了老感受烂代码这个词用的很很差,奈何词穷,先这么着吧。

相关文章
相关标签/搜索