技术债务与Sonar

技术债务相关文章推荐链接(不重复造轮子)

趣文:用鸡讲解技术债务的形成过程

遗留系统的技术栈迁移

当技术债务vs.组织债务 怎么处理?

技术债务:究竟让你付出了多大代价?

技术债务真正的代价

复制粘贴代码真的有问题吗?

技术债务偿还计划

关于何时偿还技术债务的建议

关于软件开发,很多老板都不懂的 7 件事

成为优秀程序员的十个Tips

代码整洁之所以重要的七个理由

成为更优秀开发者的10条途径

Android开发债务检查工具实战

项目的债务检查可以通过第三发Sonar完成,首先我们需要到http://www.sonarqube.org/官网下载SonarQube 5.5,虽然最新的版本是5.6,但是window10上面我一直没发运行成功

解压到目录后根据自己系统的类型和位数选择目录,配置到Path环境变量

配置好path后切换到命令行如下执行命令启动服务

打开网页http://localhost:9000/可以图形操作,默认账号密码admin登陆,然而你看到的只是管理分析界面,你需要把你要分析的项目部署到服务里面,才能开始分析技术债务。这里呢已Eclipse项目为例,AndroidStudio项目这样配置太麻烦了,还有跟简单的做法。部署Eclipse项目需要用到sonar-runner-2.4(百度csdn可以下载),同样下载解压后配置path,修改sonar-runner2.4/conf/sonar-runner.properties

#Configure here general information about the environment, such as SonarQube DB details for example
#No information about specific project should appear here

#----- Default SonarQube server
#sonar.host.url=http://localhost:9000

#----- PostgreSQL
#sonar.jdbc.url=jdbc:postgresql://localhost/sonar

#----- MySQL
#sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8

#----- Oracle
#sonar.jdbc.url=jdbc:oracle:thin:@localhost/XE

#----- Microsoft SQLServer
#sonar.jdbc.url=jdbc:jtds:sqlserver://localhost/sonar;SelectMethod=Cursor

#----- Global database settings
#sonar.jdbc.username=sonar
#sonar.jdbc.password=sonar

#----- Default source code encoding
#sonar.sourceEncoding=UTF-8

sonar.scm.disabled=true//这句是我在部署遇到问题添加的

#----- Security (when 'sonar.forceAuthentication' is set to 'true')
#sonar.login=admin
#sonar.password=admin

来到需要部署项目添加配置文件

具体内容如下(下面注释只为说明,实际文件内容注释采用#方式)

# Required metadata
sonar.projectKey=TestSimple//项目名字
sonar.projectName=TestSimple//项目名字
sonar.projectVersion=1.1
# Comma-separated paths to directories with sources (required)
sonar.sources=src//分析源码目录
#sonar.binaries=bin\classes
sonar.binaries=bin//如果bin目录下不止classes就用bin
# Language
sonar.language=java
# Encoding of the source files
sonar.sourceEncoding=UTF-8

在项目根目录下运行:sonar-runner,访问:http://localhost:9000/,选择相应的项目,查看分析结果(下面是一个我在以前同事的项目的基础上修改了部分代码的一个项目的分析结果图)

如果你看不懂英文自己汉化吧,个人感觉上述这种技术债务检查对我们来说是非常有用的,但是呢,目前android开发流行Android Studio开发,项目按照上例方法配置不一定能成功的,目录都不一样了,项目还有module,配置起来相对比较繁琐,怎么办呢?Sonar对Android Studio开发的插件也出来了

安装完成后需要重新配置,设置服务代理 ,我这里是已本地启动服务,所以配置如下

安装下图操作开始分析项目

分析结果如下


Sonar从各个方面进行了代码分析
1.变量赋值问题
2.类结构
3.代码成熟度问题
4.代码风格问题
5.控制流的问题
6.数据流的问题
7.声明冗余
8.性能问题
9.可能的错误
10.拼写
11.冗长的或冗余的代码结构
12.res下面的XML问题
………………..

具体项目自己具体分析哈,这里只提几个示例作为演示。

① 开源项目SwipeMenu项目采用了过时方法

上例drawable的获取方法在Api21就过时了,具体做法应该走版本分之,不同版本采用不同的获取方法,当然过时方法任然可用。针对上述代码ContextCompat一帮我们做了版本分之,一键调用即可

 public static final Drawable getDrawable(Context context, int id) {
        final int version = Build.VERSION.SDK_INT;
        if (version >= 21) {
            return ContextCompatApi21.getDrawable(context, id);
        } else {
            return context.getResources().getDrawable(id);
        }
    }

②代码风格问题实例

 public boolean isEnable() {
        if (!isCanUseBluetooth) {
            return false;
        }
        return blueAdapter.isEnabled();
    }

上面这代码块是没问题的,但是看上去总觉得别扭,具体别扭在哪又说不出来,这下好了,通过Sonar债务检查发现了它,并给出了最佳解决方案

更多问题自己实战吧,这里不再逼逼叨叨了,个人感觉Sonar比Jenkins使用跟方便

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值