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年前, 超过其 J*a 根现在支持超过20种语言。
弗雷迪给了我们一个简要的特点, 从*近的版本, 包括 v5.6 (将在几个星期内发布)。
值得注意的是, 现代化的体系结构不再需要分析器和数据库之间的直接连接。这一切都通过了一个网络服务, 这是更明智的。
质量评级也正在完善。现有的 SQALE 度量对衡量项目的可维护性很有好处, 但它没有考虑到问题的严重性。它也没有*与泄漏概念的网格。
在 SonarQube 5.6 中, SQALE 将重新命名为可维护性, 并且将为性、安全性和可靠性提供新的评级。将所有这些信息一起放在所有项目中将是一个新的治理仪表板 (一个商业插件)。
路线在工作中, 我们使用 gitflow。我们不想合并一个功能分支, 如果它会降低项目的质量, 因此我们特别希望了解分支支持在 SonarQube 中将如何改进。
已经有拉请求集成与 GitHub 和藏匿, 让你知道什么时候合并会引入债wu。
但是, 目前在 SonarQube 内部,SonarSource/SonarQube代理商, 单独的分支被视为单独的项目。配置是重复的, 而且更糟糕的是, 每个功能分支都包含了主分支中的所有问题和债wu。
这是幸运的 SonarSource 的一个高优先级, 虽然它不会被宣布时, 它将船舶。目标是将项目的所有分支作为对主分支的比较。
群集是路线图的一个令人惊讶的补充, 因为这看起来不像是一种需要支持大量负载的产品。然而, 一些*巨大的设施确实存在于野外, 它可以利用多个 web 服务器与同一数据库进行对话。
当弗雷迪宣布 SonarQube 为服务时, 群集的隐藏议程变得清晰明了。这将是一个*的开放源码项目服务, 可以分析任何地方托管的项目 (虽然它需要一个 GitHub 帐户进行身份验证)。它将支持所有的内置 SonarSource 插件, 但没有第三方的。这对开源社区来说是一个好消息!
*后, 我有机会问墙和集成系统, 如 JIRA。一般的意见是, 这些应该处理外部 SonarQube 本身, 并集成使用的全功能的 rest API 暴露的 SonarQube。
SonarLintSonarLint 是您的 IDE (Eclipse、IntelliJ 或 Visual Studio) 的插件, 它在您键入时标记代码质量问题。这个想法是为了防止泄漏之前, 他们共享与其他的研发
将SonarQube指标集成到TFS构建中 - 简介
所需步骤概述
这里有很多步骤,有很多消化,所以我将分解这几个博客文章主要是:
使TFS输出所需的测试和覆盖结果文件。
设置您的项目使用声纳。
将“Sonar Runner”整合到您的构建中。
所展示的解决方案足以满足我正在尝试实现的目的,但您可能希望重新排列几个步骤来适应您的场景。 将围绕这些步骤进行一些讨论,以帮助您了解我所做的任何决定,并提供一些背景,但如果您感兴趣的是如何做到这一点,然后忽略此文本,只需按照步骤。
祝你好运与你的整合。
*部分 - 使TFS输出所需的测试和覆盖结果文件。
第2部分 - 设置您的项目使用声纳。
第3部分 - 将“Sonar Runner”整合到您的构建中。
SonarQube 平台
SonarQube 是一个连续的质量分析平台, 它作为 web 服务器运行, 跟踪指标
分析代码和代码结构。SonarQube 是一个开源平台, 并被开发
牢记一个主要目标: "使代码质量管理可供每个人使用
*xiao的努力。SonarQube 生态系统是由 SonarQube 平台和一套
plug-ins 在公共基础设施上担任东道主。
SonarQube 实质上提供了代码分析器、仪表板、报告工具、问题跟踪和
TimeMachine 作为核心功能, 但它也有一个插件机制, 使社区能够
扩展功能 (当前有超过 60 plug-ins 可用)。
SonarQube 可以成为源代码质量的协调中心, 因为它不需要
限于开发人员或技术娴熟的, 但可以提供有用的信息广泛
项目经理, 技术*, IT, 甚至在一个组织内的业务*
可自定义的仪表板。SonarQube 的建筑和 plug-ins (如 SQALE) 和
管理和跟踪技术*的机会可以为管理人员提供关键信息和
业务在整个软件生命周期中反复地主动地解决缺陷。他们提供
与质量和成本有关的项目的*概述, 并帮助解决风险。
SonarQube 提供的不仅仅是关于软件健康的*指标。由于开发人员
提供了一个粒度代码级别的信息, SonarQube 使这些构建软件
查找并深化到存在代码问题的位置。SonarSource 的产品组合使
对软件变更领域的反馈和影响分析, 并提供反馈, 说明如何
改进开发方法。产品还提供与构建管理的协调
(与詹金斯的支持), 以帮助实现持续集成的部署。
SonarQube 集成的工具, 如 FindBugs, Checkstyle, PMD, FXCop的, C的p的p的Check 出 of-the-box,
或提供 plug-ins。然后, 它可以充当代码分析工具的中心中心,
从而为多个项目提供历史洞察力和趋势分析。一体化的地方
分析和报告是一个加号, 即使组织选择不对发送的报告采取行动。
可以访问有关代码复杂性的历史数据和发现的问题工具的数量
该代码可以提供是否有效地构建软件的可视性, 或者如果方法
需要改变。
在语言方面, SonarQube 支持分析 J*a 的核心, 但也有超过20
语言, 如 COBOL、c 、PL/SQL 和 c# 通过 plug-ins (开源或商业)
因为报告引擎是语言不可知的。
SonarQube 使组织能够在七轴上覆盖质量并报告:
?重复代码
?编码标准
按单元测试?覆盖范围
?复杂代码
?潜在 bug
?评论
?设计与体系结构
*xin版本还改进了软件质量属性的评估, 并
一个更好的工作范围的技术*和孤立的问题, 创造技术*,
根据参考。SonarQube 是可配置的, 可以给代码一个 "等级" (从 a 到
E), 并可以确定它通常在努力和所需的工作类型方面的成本
改进软件。例如, 由于缺少单元测试, 代码可能有较低的评级, 或者
由于大量的重复代码或安全违规。SonarQube 将显示
违规行为是并将估计解决这些问题的费用。用户可以更改工作量估计和
他们会被计算在内, 这是有帮助的。此版本还可以使比较团队
根据需要对项目和组织的各个部分进行评估。
虽然 SonarQube 可以在战shu上用于一次性审计, 但它可以更具战略性地利用
作为一个共享的, 共同的信息来源的质量分析正如刚才所描述的, 以帮助
支持代码质量的持续改进策略。
各种各样的组织使用 SonarQube 提供的产品组合的范围 (从
本公司的* "开源" 选项给企业, 站点范围内的 "终ji" 许可版本)。
然而, 目标在*是大和非常大公司与企业, 分布
开发团队和合作伙伴协调。一人团队可以使用开源版本
显然, 这可以作为一个坡道上的收养。但一旦一个组织越过
在开发项目和用户的数量方面, 需要移动到
商业企业解决方案。IDC 发表了三企业客户参考
SonarQube, 主要是开始开放源码收养, 获得立足点, 然后演变
到部署1000以上的用户。