SonarSource简介
系统集成商、外包和应用程序服务提供商在如何向其客户提供下一级别的价值方面不断受到挑战。***白皮书在服务、解决方案和软件交付方面的***是一个关键的重点领域, 关键是寻找和利用能够为客户提供重要价值的工具, 并帮助引导他们走向成功, 并协助进行内部过程改进。此 IDC 技术聚焦讨论了服务提供商的策略, 以改进软件分析、缺陷管理、安全性和度量的方法, 从而通过主动可见性来获得业务和 IT 好处。SonarQube帮助开发人员了解其软件的质量,并确保代码的透明性。提供商业价值的差异化服务是赢得未来业务的关键。服务提供者应该定位自己, 并证明它们是客户 IT 和业务组织之间***的 "质量门"。
SonarSource
提高应用价值, 降低软件开发风险
成功的组织在过程中向前移动质量分析并使其迭代
作为整个软件开发生命周期的一部分。开发和测试世界和业务
方法以及正在向敏捷模型演进-持续的价值生成/连续
改进/连续检验是提高质量的重要战略。这些都是
IDC 为 end-user 客户和服务提供商所观察到的关键策略:
?传统的代码质量方法通常在测试成为检查表项时失败
在开发过程结束时, QA 团队运行一个工具并返回
开发团队在软件进入之前需要采取的行动列表
生产.这可能导致延迟和预算超支。所以会发生什么
经常是管理标志移动项目, 没有质量门
发展.
?在项目开始时从项目代码分析中收集适当的度量标准
是至关重要的。如果没有正确的度量标准 (或任何度量标准), 代码库可能会在没有人注意的情况下恶化, 或者在技术债wu达到一定的时候才会注意到
在时间和预算限制的情况下, 成本太高而无法解决的级别。收集
代码度量连续可以提供可见性, 并使团队的优势
控制代码库的技术债wu。
?理解要修复的代码也是***的。通常, 团队开始重构
因为他们认为代码库在性能、脆性、不稳定性方面是不好的,
难于维护和扩展。但如果没有正确的语境分析, 它是
无法检测到代码库的哪个部分负责所遇到的问题。
因此, 更改可能会应用到错误的代码, 或者正确的代码被重构
错误的方式, 或只有部分问题得到解决。这是一个度量和工具的领域
可以通过标识导致问题的代码部分来帮助。
确保持续的软件质量是成功的关键
end-user 公司和服务组织都必须运行软件开发作为
业务.这样做的一部分是管理软件的远程可维护性, 即
发展今天你需要保持明天。积极主动的架构, 也
所创建内容的质量是管理软件长期支出的关键
维护;保存错误的、结构较差的软件是更昂贵的。
在这方面, 应用程序维护团队还需要对软件进行可视化, 以便能够更好地
维护代码以降低成本, 实现更好的质量, 并提高客户响应能力
和 ROI。在将任何代码发送到客户之前, 为代码建立一致的进程
分析可以帮助确保必须运行软件的公司的长期改进
有效地发展。
SONARSOURCE 和 SONARQUBE 平台
SonarSource: 介绍
SonarSource 是一家瑞士公司, 成立于2008年。该公司诞生的愿望
处理和解决与软件质量相关的不断增长的问题, 并为市场带来解决方案
可以跟踪的软件开发过程中的代码质量。在竞争激烈的市场中
来自少数提供商的服务, SonarSource 的投资组合是由它的根在开放的区别
来源, 其可访问性, 和一系列的参与选项从包装和定价
角度.
SonarQube 平台被创造了并且采取了到市场 (***作为 "声纳"), 与 SonarSource
在2009年10月发布该平台的第yi个商业插件。到 2010年3月,
SonarSource 开始看到社区和企业都接受了 SonarQube 平台,
到那时, 一个月被***超过2000次。在 2010年5月, SonarSource
发布的 COBOL 和 Visual Basic plug-ins, 随后几个月后由一个 SQALE 插件,
c# 插件 (2011年6月) 和 PL/SQL 插件 (2011年9月)。
该公司的主要意图是带来负担得起的和直观的质量解决方案和分析
开发人员还提供了广泛、分布式使用的功能。今天, SonarSource 有
***约有350客户, 包括德意志银行、美国银行、米其林、
西班牙、法国巴黎银行、泰雷兹和 EADs。SonarQube 平台使用约300
客户, 与3万和4万安装。该公司已看到的
在过去几年的增长, 它现在雇用了超过30员工, 从20人
就在12月前
Ansible SonarQube 升级的角色
你可能知道, 并希望使用 SonarQube。这是一个伟大的工具, 是积极的发展和改善。这是伟大的, 如果你是一个开发使用 SonarQube。但是, 如果您碰巧管理 SonarQube 实例, 则由于升级指南由11步骤组成, 因此不断升级非常麻烦。
停止旧的 SonarQube 服务器
***并解压新的 SonarQube 分布在一个新鲜的目录, 让我们说 NEW_SONARQUBE_HOME
使用默认的 H2 数据库启动它, 并使用更新中心安装您需要的插件
手动安装任何自定义插件
停止新服务器
更新声纳的内容. 属性和包装. 配置文件位于 NEW_SONARQUBE_HOME/配置目录中, 其内容与 OLD_SONARQUBE_HOME/配置目录中的相关文件 (web 服务器 URL、数据库设置等) 有关。不***-粘贴旧文件
如果使用了自定义 JDBC 驱动程序, 请将其***到 NEW_SONARQUBE_HOME/扩展/jdbc 驱动程序/<dialect>
备份数据库
删除数据/es 目录
启动新的 web 服务器
*** http://localhost:9000/setup (用您自己的 URL 替换 "localhost:9000") 来浏览并按照安装说明进行操作
这是一个太多的步骤, 手动执行。因此, 我决定通过为它编写一个 Ansible 的角色来实现自动化。
初始设置
在我开始编写 Ansible 剧本之前, 我需要找到一种方法来测试我的代码。所以我开始与流浪汉旋转了一个虚拟机, 并提供了一个简单的脚本。这是需要有类似的环境, 以我们的实际 SonarQube 生产实例。我能够增量地构建我的 Ansible 剧本并在这个 VM 上测试它。然后,它可以充当代码分析工具的中心中心,从而为多个项目提供历史洞察力和趋势分析。很快我就明白了, 与流浪汉一起工作会减慢我的速度, 因为我需要重置环境, 而不是***的预期。所以我决定考虑泊坞窗。
用于测试的泊坞窗
我找到了正式的 SonarQube 泊坞窗图像, 但无法使用, 因为我们的 SonarQube 实例安装在 CentOS 和官fang图像使用不同的基础图像。另外, 我需要自定义特定的 SonarQube 版本我想开始。SonarQube是可配置的,可以给代码一个"等级"(从a到E),并可以确定它通常在努力和所需的工作类型方面的成本改进软件。因此, 我创建了我们自己的 Dockerfile 与 CentOS 6 基地和 Ansible 安装。
此泊坞窗映像不需要启动 SonarQube, 因为我只是想验证是否进行了正确的文件更改, 而我的 Ansible 手册没有错误。升级的第yi步之一就是关闭服务器。
我将我的剧本装入容器, 并在该容器内运行 Ansible, 对该本地环境进行了更改。
当前脚本的路径
TESTS_DIR = $ (cd "$ (dirname" $ {BASH_SOURCE [0]} ")" & & 密码 "
# 命令测试剧本
TEST_COMMAND = "cd/行动 & & ansible-剧本 $ @
-我 ' 本地主机 '-c
升级-声纳 database.yml "
# 运行容器安装行动为卷
泊坞 run-v "$ TESTS_DIR/.。/行动/:/行动 "
"声纳-升级-测试"/"垃圾/bash-c" $ {TEST_COMMAND} "
在泊坞窗中运行我的剧本大大减少了反馈回路, 所以我决定泊坞窗是走的路。你可以看看我所有的脚本在 GitHub
Ansible 角色
我一步一步地往前走, 我到达了一个点, 一切似乎都在工作, 我有一个非常有用的 Ansible 的角色在我的手中。它尚未发布到 Ansible Galaxy, 但您可以在 GitHub 的 SonarQube 升级 Ansible 角色项目下找到源文件和文档。
当前 Ansible 角色通过在当前位置旁边创建新安装来升级 SonarQube。这提供了回滚的方法 (如果需要)。
此时, 角色执行以下任务:
确保特定的根用户存在于声纳安装
在所有安装所在的目录中创建声纳. sh
确保 SonarQube 服务存在
停止 SonarQube
***新版本
***和安装插件
将自定义配置应用于新实例
确保删除数据/es
重新 SonarQube 服务启动新版本
开始 SonarQube
手动步骤
这个过程仍然需要几个手动步骤。
在运行升级手册之前, 应手动确保在升级过程中要安装的插件列表是***xin的。您可以从 SonarQube 的管理视图中获得***xin支持的版本号。
根据 SonarQube 的建议, 此 Ansible 角色不仅***以前安装的配置, 而且使用带有变量的模板来为新实例创建配置。这意味着在执行升级之前, 开发人员可以将模板和基本配置与新的 SonarQube ***进行比较。这意味着水平软件产品的可维护性今天将决定其成本责任的水平明天。虽然这是一个手动步骤, 但与以前的操作相比, 它更容易, 因为可以使用 IDE 而不仅仅是从命令行中的 diff 工具进行比较。
这两个步骤都需要后续的手动升级, 我认为这些升级准备活动。
5个工具可以帮助您编写更好的Java代码
在IDR解决方案方面,我们一直在寻找改进我们的Java PDF库和我们的PDF到HTML5转换器的方法。***hao的方法是改进我们编写的Java代码,我们使用一些有用的工具来帮助我们改进代码,也有助于提高生产力。
在本文中,我们将介绍我们在IDR Soluti***中使用的5种***的工具,以及如何帮助Java Developers编写更好的代码。我还撰写了一篇针对更具体的领域的后续文章,这是一个帮助您进行Java性能调整的9种工具。
FindBugs的
umdFindbugsFindBugs是一个开放源代码程序,根据Lesser GNU公共许可证的条款分发,并以Java字节码而不是源代码运行。
该工具使用静态分析来帮助确定Java程序代码中的数百种不同类型的错误,包括空指针解引用,***递归循环,Java库和死锁的不良用法。
FindBugs主要用于识别大量应用中的数百个严重缺陷,并且能够确定潜在错误的严重性,并分为四个等级:
1scariest
2scary
3troubling
4of concern.
版权所有©2024 天助网