技术债务与Sonar
来源:互联网 发布:tat体育淘宝正吗 编辑:程序博客网 时间:2024/05/01 14:38
技术债务相关文章推荐链接(不重复造轮子)
趣文:用鸡讲解技术债务的形成过程
遗留系统的技术栈迁移
当技术债务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-8sonar.scm.disabled=true//这句是我在部署遇到问题添加的#----- Security (when 'sonar.forceAuthentication' is set to 'true')#sonar.login=admin#sonar.password=admin
来到需要部署项目添加配置文件
具体内容如下(下面注释只为说明,实际文件内容注释采用#方式)
# Required metadatasonar.projectKey=TestSimple//项目名字sonar.projectName=TestSimple//项目名字sonar.projectVersion=1.1# Comma-separated paths to directories with sources (required)sonar.sources=src//分析源码目录#sonar.binaries=bin\classessonar.binaries=bin//如果bin目录下不止classes就用bin# Languagesonar.language=java# Encoding of the source filessonar.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使用跟方便
- 技术债务与Sonar
- Sonar中的技术债务简要了解
- 技术债务
- 技术债务,完美与代码积累
- 技术债务与程序员的信用
- 技术债务与程序员的信用
- 解析技术债务
- 技术债务资料
- 论技术、组织债务
- 技术债务偿还计划
- 偿还技术债务
- 技术债务偿还计划
- 技术债务和技术投资
- 技术债务(母鸡的遭遇)
- 技术债务真正的代价
- 技术债务真正的代价
- .技术债务真正的代价
- 技术债务(母鸡的遭遇)
- android项目智慧北京开发完整步骤:第一天
- 理解本真的REST架构风格
- phpcms v9文章列表页调用组图标签写法
- chrome调试JavaScript脚本
- Siri Integration in iOS 10 with Swift – SiriKit Tutorial (Part 1)
- 技术债务与Sonar
- Angular判断在那个浏览器下打开的服务
- Android 4.4以上使用HttpURLConnection底层使用OkHttp实现的源码分析
- ios学习路线—Objective-C(检查内存泄露方式(Enable NSZombie Objects))
- 关于Yii框架中不能直接给模型的attributes赋值的解决办法
- poj 3254(状态压缩dp)
- hibernate.cfg.xml
- 对象的序列化与反序列化
- 删除数组中重复的数据(不准用集合、框架)