如何写优质的JAVA代码
整洁的代码不一定是好代码,但好代码一定是整洁的,整洁是好代码的必要条件。好的代码一定是高内聚低耦合的,是为了让程序新加功能尽可能对以前的代码进行修改,对修改关闭,对扩展开放,也一定是可读性强、易维护的。
以Java代码为例:
1.变量命名:
大到项目名、包名、类名,小到方法名、变量名、参数名,甚至是一个临时变量的名称,其命名都是很严肃的事,好的名字需要斟酌。 名副其实:好的名称一定是名副其实的,不需要注释解释即可明白其含义的。一般内部变量m开头,例如mPersonNumber。 常量全大写。所有常量都要先定义,任何常量都要先定义,提高可读性。 例如: if( mPersonNumber > 40) 要先定义常量 private int MIN_PERSON_NUMBER = 40; if(mPersonNumber > MIN_PERSON_NUMBER) { /*内容*/ }
容易区分:我们很容易就会写下非常相近的方法名,仅从名称无法区分两者到底有啥区别(getAccount()与getAccountInfo()),这样在调用时也很难抉择要用哪个,需要去看实现的代码才能确定。
2.类和函数:
类和函数应短小:更短小类和函数都不应该过长,过长的函数可读性一定差,往往也包含了大量重复的代码。 函数只做一件事(同一层次的事):同一个函数的每条执行语句应该是统一层次的抽象。 例如,我们经常会写一个函数需要给某个 DTO 赋值,然后再调用接口,接着返回结果。那么这个函数应该包含三步:DTO 赋值,调用接口,处理结果。如果函数中还包含了 DTO 赋值的具体操作,那么说明此函数的执行语句并不是在同一层次的抽象。
3.注释
规范的代码能减少写注释的必要性。 别给糟糕的代码加注释,重构:注释不能美化糟糕代码。当企图使用注释前,先考虑是否可以通过调整结构,命名等操作,消除写注释的必要,往往这样做之后注释就多余了。 好的注释提供信息、表达意图、阐释、警告:我们经常遇到这样的情况:注释写的代码执行逻辑与实际代码的逻辑并不符合。大多数时候都是因为代码变化了,而注释并没有跟进变化。所以,注释最好提供一些代码没有的额外信息,展示自己的设计意图,而不是写具体如何实现。 删除掉注释的代码:git等版本控制已经帮我们记录了代码的变更历史,没必要继续留着过时的代码,注释的代码也会对阅读等造成干扰。
4.高内聚低耦合
互联网公司相对于传统的软件行业,通常是先满足需求再迭代,一个想法需要尽可能快的上线。通过不断从用户的反馈进行迭代,不断完善,目前所有的产品都在不断迭代,没有完美的产品。所以当有新的需求,尽可能对以前功能带来最少的影响,代码的架构,高内聚低耦合,数据库满足三范式,表尽可能的小至关重要。 JAVA(面向对象)六大设计原则:我们编写代码时的指导方针,按照这些原则开发的代码具有高内聚低耦合的特性,核心是通过接口和抽象类将功能抽象出来,通过不同的实例化达到对扩展开放,对修改关闭:
(1)单一职责原则 SRP (Single Responsibility Principle):
一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。