代码怎么用(帮你规范代码)

访客4年前黑客资讯662

代码怎么用(帮你规范代码)

一、IDEA如何安装阿里巴巴代码规范插件

1. 启动IDEA >> File >> Settings >> Plugins,搜索Alibaba Java Code Guidelines(阿里巴巴Java代码指南)插件,点击Install进行安装。

如何使用牛逼的插件帮你规范代码

2. 安装好重启IDEA,之后生效。需要注意的是插件基于JDK1.7打包,如果IDEA启动时使用的JDK版本是1.6的话就会报Unsupported.major.minor version 51.0异常,所以建议大家升级一下。

如何使用牛逼的插件帮你规范代码

3. IDEA重启之后点击工程右键,或者使用默认快捷键Ctrl+Shift+Alt+J来扫描你的工程吧。看看你的代码有多少不规范的地方呢。

如何使用牛逼的插件帮你规范代码

4. 也可以点击具体的某个类右键进行扫描。

如何使用牛逼的插件帮你规范代码

5. 扫描整个工程,将不符合规约的代码按 BlockerCriticalMajor三个等级显示,右侧窗口还有针对代码的批量修复功能。

如何使用牛逼的插件帮你规范代码

6. 实时检测功能,在开发时,对当前文件实时进行检测,并高亮显示出来,同时也给出修改提示。可以说是非常好用了。

如何使用牛逼的插件帮你规范代码

7. 关闭实时检测功能

如果你正在阅读一些代码,恰巧代码又没有按照阿里代码规范写,此时屏幕上都是一些红色、黄色的警告,严重影响阅读。这个时候可以右击工程点击关闭实时检测的功能。

如何使用牛逼的插件帮你规范代码

8. 或许阿里条约有些并不适合自己团队的开发要求,这也不需要担心,因为也可以单独的关闭某条规则。或者是修改其提示的级别。是不是很人性化呀。

File>>Settings >>Editor >> Inspections

如何使用牛逼的插件帮你规范代码

二、修改不规范代码

扫描完整个工程之后发现有很多不符合规范的代码,小编就挑一些跟大家一起修改吧。

1. 不允许出现任何魔法值(即未经定义的常量)直接出现在代码中。所谓的魔法值就是,未经定义的常量字面量,所有在代码中使用的常量必须预先经过定义。

反例:

if (key.equals("zhangSan")) { //... }

建议改为:

String KEY_PRE = "zhangSan";if(KEY_PRE.equals(key)){//... }

2.Object的equals *** 容易抛空指针异常,应使用常量或确定有值的对象来调用equals。(是不是有的小伙伴没有注意过这个问题?)

反例:

public void f(String str) { String inner = "hi";if (str.equals(inner)) { System.out.println("hello world"); } }

建议改为:

public void f(String str) { String inner = "hi"; if (inner.equals(str)) { System.out.println("hello world"); } }

3.所有的覆写 *** ,必须加@Override注解。

其实Override注解的本身并没有什么作用,但是它可以告诉代码的读者,这个是覆盖父类的 *** 。如果 *** 名、参数、异常定义错误,导致不能正确覆盖父类的 *** ,编译器会提示错误。比如getObject与get0bject的问题。一个是字母的O,一个是数字的0,加@Override可以准确判断是否覆盖成功。所以在意细节还是很重要的。

4. 事务场景中,抛出异常被catch后,如果需要回滚,一定要手动回滚事务。 反例 (注解【Transactional】需要设置rollbackFor属性。):

@Service@Transactionalpublic class MechanicalInformationService {}

建议改为:

例子一:

@Service@Transactional(rollbackFor = Exception.class)public class UserServiceImpl implements UserService {@Overridepublic void save(User user) { }}

例子二:

@Servicepublic class UserServiceImpl implements UserService {@Override@Transactional(rollbackFor = Exception.class)public void save(User user) { }}

例子三:

@Servicepublic class UserServiceImpl implements UserService {@Autowiredprivate DataSourceTransactionManager transactionManager;@Override@Transactionalpublic void save(User user) { DefaultTransactionDefinition def = new DefaultTransactionDefinition; def.setName("SomeTxName"); def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); TransactionStatus status = transactionManager.getTransaction(def);try { } catch (Exception ex) { transactionManager.rollback(status);throw ex; } }}

5. 循环体内,字符串的连接方式,使用StringBuilder的append *** 进行扩展。

说明:反编译出的字节码文件显示每次循环都会new出一个StringBuilder对象,然后进行append操作,最后通过toString *** 返回String对象,造成内存资源浪费。(这一点是需要十分注意的,看完之后不要再用 + 连接字符串了哦)

反例:

String result;for(String string:tagNameList){ result=result+string;}

建议改为:

StringBuilder stringBuilder = new StringBuilder;for(String string:tagNameList){ stringBuilder.append(string); }String result=stringBuilder.toString;

6. 除常用 *** (如getXxx/isXxx)等外,不要在条件判断中执行复杂的语句,将复杂逻辑判断的结果赋值给一个有意义的布尔变量,以提高可读性。

说明:很多if语句内的逻辑相当复杂,阅读者需要分析条件表达式的最终结果,才能明确什么样的条件执行什么样的语句,那么,如果阅读者分析逻辑表达式错误呢? 反例:

if((file.open(fileName,"w")!=)&&(...)||(...)){// ... }

建议改为:

boolean existed=(file.open(fileName,"w")!=)&&(...)||(...);if(existed){//...}

7. *** 初始化时,指定 *** 初始值大小。

说明:HashMap使用如下构造 *** 进行初始化,如果暂时无法确定 *** 大小,那么指定默认值(16)即可。反例:

Map map = new HashMap;

建议改为:

Map map = new HashMap(16);
标签: 帮你代码

相关文章

蓝筹etf基金如何买卖(创蓝筹etf代码是多少)

蓝筹etf基金如何买卖(创蓝筹etf代码是多少)

A股一路跌跌不休已经习以为常,但上周股王贵州茅台的罕见跌停到底是一个什么信号,引发了各路猜想。甚至有网友统计了茅台历史上跌的最惨的10天,希望从中发现一些规律。 图1 【历次茅台大跌后,市场走势...

与代码无关的SEO基础知识

与代码无关的SEO基础知识

对于SEO人员而言,外链建设几乎是每天的必修课,互联网上有很多相关方法与策略,但有的时候,并不是每一条外链都会发挥积极的作用。 通常,它还会受到外链形态的各种影响,所传递的价值也不尽相同!  ...

编程的程序员们,你们有语言崇拜么?比如PHP是世界上最好的语言

编程的程序员们,你们有语言崇拜么?比如PHP是世界上最好的语言

有个有关程序员语言界的段子:问,你如何让一个论坛的人吵起来?答,PHP是世界上最好的语言。“PHP是世界上最好的语言”,虽然身在IT界,但说实话,这句话直到去年才明白,还是公司里招了个PHP程序员,问...

电信怎么短信查话费?电信内部人员教你短信查

电信怎么短信查话费?电信内部人员教你短信查

很多人才换了电信的手机卡却不知道怎么查询流量以及话费,不知道打什么电话号码以及发什么短信查话费。那电信怎么查话费和流量?电信怎么用短信查话费呢?下面wed114结婚网小编为大家带来详细内容。 电...

下一站江湖代码有哪些 下一站江湖全武学心法对应代码分享

下一站江湖代码有哪些 下一站江湖全武学心法对应代码分享

最近玩下一站江湖这款游戏的玩家都在问,游戏里面的材料代码有哪些?在下一站江湖中我们能够以输入代码的方式获取很多材料和武学心法,很多玩家不知道对应的代码是什么,小编我特意整理了相关的资讯,下面就是蚕豆网...

电信怎么查流量?用代码就能查流量的方法,简

电信怎么查流量?用代码就能查流量的方法,简

很多人才换了电信的手机卡却不知道怎么查询流量以及话费,不知道打什么电话号码以及发什么短信查话费。那电信怎么查话费和流量?电信怎么用短信查话费呢?下面wed114结婚网小编为大家带来详细内容。 电...