我在Stack Overflow上看到了一些这样的提及,但是盯着维基百科(相关页面已被删除),并且在一个MFC动态对话框演示中没有任何启发我.有人可以解释一下吗?学习一个根本不同的概念听起来不错.
根据答案:我认为我对此有了更好的感受.我想我第一次没有仔细查看源代码.在这一点上,我对差异执行情有不同的看法.一方面,它可以使某些任务变得相当容易.另一方面,启动并运行(即,用您选择的语言设置)并不容易(我确信如果我更好地理解它)...虽然我猜它的工具箱只需要制作一次,然后根据需要进行扩展.我认为为了真正理解它,我可能需要尝试用另一种语言实现它.
language-agnostic model-view-controller differential-execution
有些人声称代码最大的敌人是它的大小,我倾向于同意.然而,每天你都会听到类似的事情
问题:"#lines of code"何时有用?
ps:请注意,在做出这样的陈述时,语气"越多越好".
我熟悉一些可用于Java的免费静态分析工具,例如FindBugs和PMD.我想知道的是Klocwork和Coverity等商业产品如何与这些产品相抗衡.他们的优点和缺点是什么?
最近我有一些关于软件开发指标的有趣对话,特别是它们如何在一个相当大的组织中使用,以帮助开发团队更好地工作.我知道有一些关于哪些指标可以使用的Stack Overflow问题 - 比如这个,但我的问题更多的是关于哪些指标对哪些利益相关者有用,以及在什么级别的聚合.
作为一个例子,我的观点是代码覆盖率在以下方面(也可能是其他方式)是一个有用的指标:
但我不认为高级管理层在逐个团队的基础上看到这一点是有用的,因为这鼓励人为尝试通过仅运用而不是测试代码的测试来支持覆盖.
我在一个管理层次结构中有几个级别的组织中,但绝大多数管理人员都具有技术头脑和能力(许多人仍然沾沾自喜).一些开发团队在推动敏捷开发实践方面处于领先地位,但其他开发团队则落后,现在有一个严格的要求从最高层开始,以便组织的工作方式.我们中的一些人正在启动一项计划来鼓励这一点.在这种组织中,您认为哪种指标有用,对谁,为什么以及在什么级别的聚合?
我不希望人们根据他们可以人为影响的指标来评估他们的表现.与此同时,高级管理层将需要某种证据证明正在取得进展.根据您自己组织的经验,您可以提供哪些建议或警告?
编辑
我们绝对希望将指标用作组织改进的工具,而不是作为个人绩效评估的工具.
每个文件的代码行,每个类的方法,圈复杂度等.开发人员抵制并解决大多数(如果不是全部的话)!有一篇很好的Joel文章(没时间找到它).
您建议使用哪些代码指标来自动识别"糟糕的代码"?
什么可以说服大多数(你不能说服我们所有人一些糟糕的指标!:O))开发人员认为这个代码是"废话".
只有可自动测量的指标才算重要!
问题
这是我想要的一个常见问题.添加新代码转换为回归 - 现有的测试用例已过时.代码中的依赖关系意味着即使您知道如何修复此特定回归,也可能在两个方向的更多位置进行间接回归 - 传入和传出.
需求
我有一个运行SVN,Maven + Nexus,Sonar,Jenkins和JIRA,QC,QTP的商店.总而言之,这是一个良好的CI环境.
每一个新的构建我都会有新的回归案例.我希望在两个方向上找到Java包依赖关系并正确更新测试用例,以便涵盖所有类型的回归 - 直接和间接.这是一个更大的问题,因为我的单元测试覆盖率甚至没有接近50%,并且集成测试的自动化无法跟上开发的步伐.
我的选择
JArchitect,SONAR和CodePro将为您提供一个像这样或这样的简单矩阵.通过告诉我哪些用户和使用过的类受到影响,满足了我的一半要求.我想要的是更进一步,让工具告诉我哪些相应的测试用例受到影响,以及我是否需要更新和/或执行它们以覆盖我的回归风险.
Kalistick,Coverity和其他人可能会做我想做的事情 - 他们很难设置和配置,慢慢地与你的系统一起成长,因此不会立即产生效率,需要花费成本并需要学习曲线.
简短的问题
考虑到所有因素,如安装,学习曲线,成本,可用性或任何其他参数,我在上面使用哪些工具进行设置.
我已经阅读了关于静态分析的FAQ部分,很少有线程像Java的静态分析工具推荐?, /sf/ask/260134241/以及 对代码指标的迷恋是什么? 和许多相关的,但他们没有回答我的具体问题.
我一直在研究一个不能再被描述为"小"的项目(40多个月),一个团队不再被定义为"小"(约30人).我们一直在使用敏捷/ Scrum(1)实践,并且使用健康剂量的TDD.
我不确定我是从敏捷还是TDD中选择了这个,更可能是两者的结合,但我现在显然是在那些把调试视为难闻气味的人的阵营中.通过'调试'我不是指更抽象的概念,即弄清楚系统可能出现什么问题,而是指在调试模式下运行系统的具体活动,逐步完成代码以找出其他难以理解的细节.
由于我相当确信,这个问题并不是关于调试是否是一种难闻的气味.相反,我想知道如何说服我的队友这个.
认为调试模式是"标准"模式的人倾向于编写只能通过调试才能理解的代码,这会导致浪费大量时间,因为每次你在其他人开发的代码之上处理项目时,你首先花费相当多的时间来调试它(并且,因为没有涉及到错误......这个术语变得越来越荒谬) - 然后就会出现孤岛.所以我很想说服我的一些队友避免调试模式是一件好事(2).但是,由于它们习惯于处于调试模式,因此它们似乎没有看到问题.对他们来说,花费数小时调试别人的代码,然后他们甚至开始做与他们的新项目相关的任何事情是常态; 他们没有看到任何错误.另外,因为他们花时间'搞清楚'
帮助我想出一个让他们脱离黑暗面的计划!
提前致谢.
(1)也称为SCRUM(全部大写).抛开资本化论点,我认为必须使用术语后的星号,因为 - 毫不奇怪 - 我们的组织"调整"敏捷和Scrum流程以适应所有利益相关方的感知需求.所以,老实说,根据理论,我不会假装这是100%,但这不是我的问题.
(2)是的,总是会有时候,我们就必须在调试模式下得到的,我不是要绝对避免,只是..试图尽量减少我们要深入到它的次数.
我们知道在评估测试代码的质量时,代码覆盖率是一个很差的指标.我们也知道测试语言/框架是浪费时间.
另一方面,我们可以使用哪些指标来确定质量测试?您是否学过任何最佳实践或规则来帮助您识别和编写更高质量的测试?
是否有衡量代码重构的客观指标?
在重构之前和之后运行findbugs,CRAP或checkstyle是检查代码是否实际改进而不仅仅是改变的有用方法吗?
我正在寻找可以捕获的趋势,这些趋势可以帮助我们改进代码审查流程,而不会浪费时间在简单的个人偏好上改变代码.
我所知道的大多数编程工作室/管理人员只能根据回顾中制作/解决的错误来定义质量.
然而,一旦他们开始干预代码,大多数优秀的程序员都可以天生地感知质量.(对吧?)
您是否知道任何编程机构,将此信息成功转换为组织可以衡量和跟踪以确保质量的指标?
我问,因为我经常听到来自心怀不满的经理人的咆哮,他们无法指出真正的质量.但是我听说像HoneyWell这样的一些组织有很多数字来跟踪程序员的表现,所有这些都可以转化为数字,并且可以在评估过程中勾选出来.因此,我向整个社区提出问题,提出他们所知道的统计数据.
关于可以很好地测量凌乱代码的工具的建议也会有所帮助.
我很感兴趣的原始(或复合)指标用于处理一个人用特定语言编程的程度.
情景:乔治知道一些编程语言,想学习"foobar",但他想知道他在"foobar"中有多少经验.
我真的很感兴趣,而不仅仅是LOC(代码行)指标.
我对这个问题的希望是了解工程师如何量化其他人的编程语言经验,以及是否可以通过机械方法衡量.
提前致谢!
关于代码度量的讨论已经相当多(例如:对代码度量的迷恋是什么?).我(作为软件开发人员)对这些指标非常感兴趣,因为我认为他们可以帮助人们编写更好的代码.至少它们在寻找需要重构的代码区域时很有帮助.
但是,我想知道的是以下内容.是否对这些源代码度量标准进行了一些评估,证明它们确实与错误率或方法的可维护性相关.例如:具有非常高的圈复杂度的方法是否真的比复杂度低的方法引入更多错误?或者,具有高难度级别(Halstead)的方法是否真的需要比具有低难度的方法更多的维护它们?
也许有人知道这方面的一些可靠的研究.
非常感谢!
metrics ×5
code-metrics ×2
java ×2
testing ×2
agile ×1
automation ×1
debugging ×1
dependencies ×1
process ×1
qa ×1
refactoring ×1
tdd ×1