SonarSource简介
构建更好的软件的方法。通过在整个软件开发生命周期中支持代码质量, 帮助您的开发团队从创新的概念中受益, 同时将时间和精力集中在新功能上。的水泄漏范例
我们建议的代码质量的方法是什么?把它当作漏水的东西, 在你拖地板之前把漏水的东西修好!为什么?否则你只是在浪费你的时间和精力。对于代码质量, 同样的逻辑适用;在任何其他情况下, 您都应该在控制下获得新更改和添加代码的质量。一旦该漏洞得到控制, 代码质量将开始系统地改善。阅读更多漏水范例领yang授权收养和赋予
代码质量应该是每个开发人员的关注点, 而不仅仅是少数。一旦您切换到一个漏水的方法, 即新的代码是唯yi的焦点的方法, 开发人员将变得非常感兴趣的主题,中国sonarqube经销商, 因为 "代码质量" 意味着他们的代码质量。如果您添加的能力是在一个非常短的反馈循环, 你得到的控制反转: 开发人员不仅解决问题, 但在其组织的代码质量的所有权, 因为它应该是在任何地方的情况。统一质量门
除非您在发布时强制执行质量门, 否则您没有到位的代码质量实践。质量门是在进入生产前经过验证的标准列表, 以确保应用程序符合质量要求。换言之, 这是内部质量的去/不去。采用漏水方法, 您可以为每个应用程序强制使用相同的质量闸门, 因为焦点将从应用程序中的遗留代码转移到新的或更新的内容。这使得代码质量成为开发过程的一个组成部分。促进代码管理应用程序组合 (APM)应用程序投资组合管理
泄漏范例创造了一个良性循环来提高代码质量, 但不处理风险。管理者应该能够对其投资组合中的现有风险做出决策。例如, 敏感的应用程序可能需要额外的精力来解决安全问题。这就是为什么, 他们需要有一个代表他们的应用程序组合装饰与相关的健康/风险因素。
SonarSource 城市之旅2016丹切2016年5月26日在10:14pm今天我参加了伦敦 SonarSource 城市之旅。SonarSource 制作两个 "连续代码质量" 工具: SonarQube;和 SonarLint。
雷迪森 sas 波特曼酒店举办的低调活动约50与会者。我们听到了一些适当的技术介绍, 从奥利维尔 Gaudin, 弗雷迪槌, 和 SonarSource 的尼古拉斯秘鲁和邓肯波克林顿从微软。
技术债wu这一天开了一个问题。谁负责代码质量?还是 QA?
是不加掩饰的: 开发商。
在某些情况下, 引入技术债wu是可以的, 但团队需要了解他们所创建的问题的权衡和存在的程度。hao的方法是通过客观和一致的测量。
"修复泄漏"知道你有问题是一回事。修理它是另一回事。
这一天的首要主题是 "修复泄漏": 当你有一个漏水的管道, 你应该先修复它还是先把它擦干净?如果你不首先解决问题的根源, 那么清理就不是很有用。
(这对我来说特别的伤感, 因为我在家里的水管漏水, 所以我迟到了。
在实践中, 这意味着设置一个质量的酒吧 (或 "门" 的 SonarSource 行话) 新的变化, 但大多忽略现有的问题, 直到你得到控制的事情。
这似乎是一个不错的方法, 有两个原因:
它减少了在遗留的基本代码上开始的摩擦力, 因为你可以假装你是从一个干净的石板开始;这是沙子上的一条线, 它为球队的前进设定了期望。奥利维尔不厌其烦地强调, 有一个自动化的工具, 实施这种行为不会减轻你的教育团队的jia做法。每一个指标都可以博弈, 所以你需要让人们在船上的概念, 真正充分利用它。
SonarQubeSonarQube 度量您的代码库的可维护性、可靠性和安全性, 并跟踪随着时间的推移而改进。它还指出了代码中特定的代码气味, 应该是固定的。
SonarQube 是由超过75k 的公司使用的, 其中一些有数以千计的开发人员和数百万行代码。它成为事实上的代码质量工具, 因为它的介绍8年前, 超过其 Java 根现在支持超过20种语言。
弗雷迪给了我们一个简要的特点, 从近的版本, 包括 v5.6 (将在几个星期内发布)。
值得注意的是, 现代化的体系结构不再需要分析器和数据库之间的直接连接。这一切都通过了一个网络服务, 这是更明智的。
质量评级也正在完善。现有的 SQALE 度量对衡量项目的可维护性很有好处, 但它没有考虑到问题的严重性。它也没有真正与泄漏概念的网格。
在 SonarQube 5.6 中, SQALE 将重新命名为可维护性, 并且将为性、安全性和可靠性提供新的评级。将所有这些信息一起放在所有项目中将是一个新的治理仪表板 (一个商业插件)。
路线在工作中, 我们使用 gitflow。我们不想合并一个功能分支, 如果它会降低项目的质量, 因此我们特别希望了解分支支持在 SonarQube 中将如何改进。
已经有拉请求集成与 GitHub 和藏匿, 让你知道什么时候合并会引入债wu。
但是,代理商sonarqube经销商, 目前在 SonarQube 内部, 单独的分支被视为单独的项目。配置是重复的, 而且更糟糕的是, 每个功能分支都包含了主分支中的所有问题和债wu。
这是幸运的 SonarSource 的一个高优先级, 虽然它不会被宣布时, 它将船舶。目标是将项目的所有分支作为对主分支的比较。
群集是路线图的一个令人惊讶的补充, 因为这看起来不像是一种需要支持大量负载的产品。然而, 一些真正巨大的设施确实存在于野外, 它可以利用多个 web 服务器与同一数据库进行对话。
当弗雷迪宣布 SonarQube 为服务时, 群集的隐藏议程变得清晰明了。这将是一个免费的开放源码项目服务,广西sonarqube经销商, 可以分析任何地方托管的项目 (虽然它需要一个 GitHub 帐户进行身份验证)。它将支持所有的内置 SonarSource 插件, 但没有第三方的。这对开源社区来说是一个好消息!
后, 我有机会问墙和集成系统, 如 JIRA。一般的意见是, 这些应该处理外部 SonarQube 本身, 并集成使用的全功能的 rest API 暴露的 SonarQube。
SonarLintSonarLint 是您的 IDE (Eclipse、IntelliJ 或 Visual Studio) 的插件, 它在您键入时标记代码质量问题。这个想法是为了防止泄漏之前, 他们共享与其他的研发
Ansible SonarQube 升级的角色
你可能知道, 并希望使用 SonarQube。这是一个伟大的工具, 是积极的发展和改善。这是伟大的,中国sonarqube经销商, 如果你是一个开发使用 SonarQube。但是, 如果您碰巧管理 SonarQube 实例, 则由于升级指南由11步骤组成, 因此不断升级非常麻烦。
停止旧的 SonarQube 服务器
并解压新的 SonarQube 分布在一个新鲜的目录, 让我们说 NEW_SONARQUBE_HOME
使用默认的 H2 数据库启动它, 并使用更新中心安装您需要的插件
手动安装任何自定义插件
停止新服务器
更新声纳的内容. 属性和包装. 配置文件位于 NEW_SONARQUBE_HOME/配置目录中, 其内容与 OLD_SONARQUBE_HOME/配置目录中的相关文件 (web 服务器 URL、数据库设置等) 有关。不-粘贴旧文件
如果使用了自定义 JDBC 驱动程序, 请将其到 NEW_SONARQUBE_HOME/扩展/jdbc 驱动程序/lt;dialectgt;
备份数据库
删除数据/es 目录
启动新的 web 服务器
//localhost:9000/setup (用您自己的 URL 替换 "localhost:9000") 来浏览并按照安装说明进行操作
这是一个太多的步骤, 手动执行。因此, 我决定通过为它编写一个 Ansible 的角色来实现自动化。
初始设置
在我开始编写 Ansible 剧本之前, 我需要找到一种方法来测试我的代码。所以我开始与流浪汉旋转了一个虚拟机, 并提供了一个简单的脚本。这是需要有类似的环境, 以我们的实际 SonarQube 生产实例。我能够增量地构建我的 Ansible 剧本并在这个 VM 上测试它。很快我就明白了, 与流浪汉一起工作会减慢我的速度, 因为我需要重置环境, 而不是的预期。所以我决定考虑泊坞窗。
用于测试的泊坞窗
我找到了正式的 SonarQube 泊坞窗图像, 但无法使用, 因为我们的 SonarQube 实例安装在 CentOS 和官fang图像使用不同的基础图像。另外, 我需要自定义特定的 SonarQube 版本我想开始。因此, 我创建了我们自己的 Dockerfile 与 CentOS 6 基地和 Ansible 安装。
此泊坞窗映像不需要启动 SonarQube, 因为我只是想验证是否进行了正确的文件更改, 而我的 Ansible 手册没有错误。升级的第yi步之一就是关闭服务器。
我将我的剧本装入容器, 并在该容器内运行 Ansible, 对该本地环境进行了更改。
当前脚本的路径
TESTS_DIR = $ (cd "$ (dirname" $ {BASH_SOURCE [0]} ")" amp;amp; amp;amp; 密码 "
# 命令测试剧本
TEST_COMMAND = "cd/行动 amp;amp; amp;amp; 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 工具进行比较。
这两个步骤都需要后续的手动升级, 我认为这些升级准备活动。
代理商sonarqube经销商-华克斯由苏州华克斯信息科技有限公司提供。行路致远,砥砺前行。苏州华克斯信息科技有限公司致力成为与您共赢、共生、共同前行的战略伙伴,更矢志成为行业软件具有竞争力的企业,与您一起飞跃,共同成功!