暴君专栏和谐按钮

我一直是软件内部质量的热心拥护者,因为根据我的各种经验,我需要维护的代码库不只这些。 我相信,高质量的工具可以提高代码的内部质量,从而从长远来看降低维护成本。 但是,我不认为此类工具是实现这一目标的唯一方法-我还是代码审查的坚定支持者。

关于质量工具,我从Checkstyle开始,然后从PMD (这两个静态分析工具)开始。 我使用过FindBugs这个工具,它不会检查源代码,而是检查字节码本身,但在我看来只是很少使用,它报告了太多误报。

最后,我找到了SonarQube (当时称为Sonar)。 我没有立即爱上它,花了几个月的时间才摆脱了我以前的Checkstyle和PMD伙伴。 但是,我一开始就希望将其放置在我从事的每个项目以及其他项目中。 当它添加时间表以查看有关违规和其他指标的趋势时,我知道这是可以使用质量工具。

现在终于尘埃落定了,我看不到很多组织都没有使用质量工具,那很好。 我没有想象过不与任何人共事:无论是作为开发人员还是团队负责人,无论是使用Sonar还是使用更简单的工具,它们的附加值都太大了,无法忽略。

另一方面,我对上升的趋势非常警惕:似乎一旦Sonar到位,开发人员和管理人员都将其报告视为上帝之道。 我可以从管理人员那里得到期望,但是我绝对不希望我的开发人员将自己的头脑放在一边,并将其职责委托给一种工具,无论使用哪种工具。 当将那些规则中的度量标准用作构建破坏者时,情况甚至会变得更糟:当构建失败是因为您的项目无法实现某些预定义的度量标准时。

当然,有一些方法可以减轻该问题:

  • 仅使用声纳规则的子集。 例如,如果该类直接或可传递地实现Serializable,则检查私有静态最终serialVersionUID属性的违规行为完全无效。
  • 使用NO-SONAR注释
  • 配置每个项目。 例如,Vaadin项目应该将图形类从单元测试范围中排除,因为它们可能没有行为,因此也没有关联的测试(您是否对JSP进行单元测试?)。

恐怕这些只是绕过极限的方法。 每个工具都有一个严格的限制:它无法区分上下文,并且无论使用什么规则都一样。 作为附带说明,请注意大公司也是如此...最有趣的部分是,软件工程师通常是度量驱动的最积极的反对者-然后他们将SonarQube放在位以断言代码质量,他们在将结果进行情境化时比较固执。

高质量工具是使代码库更易于维护的重要资产,但是愚蠢地应用一个规则,因为该工具这么说-甚至更糟的是,用// NOSONAR注释代替代码库是一个严重的错误。 我赞成使用工具,而不是统治我的工具。 明白我的意思了吗?

翻译自: https://blog.frankel.ch/quality-tools-humble-servants-or-tyrans/

暴君专栏和谐按钮

暴君专栏和谐按钮_质量工具:卑微的仆人还是暴君?相关推荐

  1. 绘制三维散点图_质量工具--之散点图

    1. 什么是散点图 散点图(Scatter Plot or Scatter Chart),也叫散布图,顾名思义就是由一些散乱的点组成的图表,这些点在哪个位置,是由其X值和Y值确定的.所以也叫做XY散点 ...

  2. 缺陷调研报告_质量零缺陷 | 打造极致产品的质量管理之道

    质量是政治 质量是生命 质量是效益 为强化全员"零缺陷"质量意识,坚决打赢质量提升攻坚战,现开设"质量零缺陷"专栏,着力宣传全院各单位在加强质量管理,落实零缺陷 ...

  3. 使用高级视频质量工具 AVQT 评估视频 | WWDC 演讲实录

    本文根据 Pranav Sodhani 在 WWDC 2021<Evaluate videos with the Advanced Video Quality Tool >主题分享翻译.P ...

  4. 去水印软件哪个好_去水印工具

    地址:去水印工具https://www.shuiyinyun.com/ 怎么批量处理图片水印_去水印工具_去水印软件_图片去水印 功能目录 图片去水印 视频去水印 视频加水印 图片加水印 视频加字幕 ...

  5. 陈南峰质量讲堂3 | 质量工具方法之间的关系

    21世纪以来,为了应对经济全球化.经济体制市场化等方面的挑战,持续提升管理水平,各种管理体系.工具方法不断推出.如: 1)质量管理体系 ISO 9000.GJB 9000.AOS.NQMS... 2) ...

  6. 用于检查和改进代码的PHP代码质量工具

    它们由您的同事开发人员Dave编写. 这些类充满了格式错误,较差的缩进和奇怪的单字母变量.有很多依赖项需要向下滚动几分钟才能逃脱膨胀的构造函数. Shacking,你打开单元测试以了解它应该如何工作. ...

  7. SunFMEA-浅析质量工具8D

    在质量管理活动中,我们常用到各种各样的质量工具,今天我们要分享的这个质量工具就是就是行业内惯用的G8D报告. 8D又称团队导向问题解决方法.8D问题求解法.它提供了一套符合逻辑的解决问题的方法,同时对 ...

  8. 质量工具之头脑风暴法

    云质QMS原创 转载请注明来源 作者:王洪石 1. 什么是头脑风暴法 头脑风暴最早是精神病理学上的用语,指的是精神病患者的精神错乱状态,后来拓展为无限制的自由联想和讨论,其目的在于产生新创意.激发新设 ...

  9. 五大质量工具详解及运用案例_掌握质量管理五大工具,实现九段质量管理成长...

    对于工厂企业来说,产品的质量是企业经营的命脉,那么质量管理工作要怎么去做好就是一个关键.今天给大家分享关于质量管理五大核心工具的内容,那何为五大工具,他们都有什么特点,又有何要求?我们将其中的主要内容 ...

最新文章

  1. UIView及其分类的属性方法定义
  2. 波士顿动力「全家」跳舞贺新年,马斯克点赞视频:这不是CG!
  3. Spring(5)——Spring 和数据库编程
  4. android Bitmap用法总结
  5. 新加坡科技设计大学(SUTD)招收计算机视觉方向全奖PhD学生
  6. ajax连接jsp或servlet,获取MySql为数据
  7. 使用 dotnet-monitor 分析.NET 应用程序
  8. mysql密码攻击_MYSQL用户root密码为弱口令又一攻击方法
  9. 图解FCKeditor在asp.net环境的安装(上)
  10. 一文学会用 Tensorflow 搭建神经网络
  11. 【verilog教程】第10篇:verilog代码规范
  12. qq飞车 ios android,《QQ飞车手游》ios和安卓数据互通吗 安卓苹果互通规则详解
  13. gta5正版私人服务器,《GTA5》国内神级服务器,万人同服?堪称虚拟版地球OL?...
  14. 破解某网课的m3u8文件的key加密
  15. adhoc包无法安装_关于iOS 应用安装失败的原因找到了
  16. 体验 服务器正在维护升级中 给大,阴阳师体验服9月30日维护 花合战更新
  17. pytz实现时区的转换
  18. YTU.2362: 愚公的遗愿
  19. 一个模型,帮你提升行动力
  20. 【flask-sqlalchemy】SQLAlchemy+PyMysql到mysql的映射

热门文章

  1. Webstorm使用解决ESlint问题合集
  2. Axon框架指南 - Baeldung
  3. 求n的阶乘及1~n的阶乘之和
  4. 生日悖论(python)
  5. 如何添加Android返回键的退出功能
  6. 什么是共享办公室,你想知道的都在这
  7. 建模师一个月的真实工资是多少
  8. [渝粤教育] 西南科技大学 法律文书写作 在线考试复习资料(1)
  9. Scala Case Class介绍
  10. prim algorithm