很少codereview,没有代码质量工具给予支持,同事之间的默认规则就是代码在此刻(对,是此刻)能够正确跑起来就算OK,如果你发现你正在经历上述情况,那么你应该好好考虑怎么提高代码的质量。
实际上在有些项目很少有人去关注这个,领导们也不会看你代码的风格,代码是否重复,依赖关系等等(这让我想起了《程序员之死》中提到的“某个架构很落后,技术很普通的产品却大卖”)。虽说领导强调把项目交给你,就要自己承担起责任。但是,试问如果碰到一大堆代码风格迥异,代码重复问题,你还会动手把它们整个重构一遍吗?可能别人会说,“这只是代码质量的问题,不是功能的问题,没什么,它不是能正确跑起来吗?其他都是小事”。事实上,是我也不会那么做,何况你还不能保证每行代码你都熟悉作者的意图,难免下手犹豫不决。所以,我想说的是,代码质量的提高,最好不要交给后来人,当一个项目刚刚完成,就务必要分配人员进行代码质量的管理。当然,更好的情况就是在编写代码时就注意,永远把问题解决在萌芽时期,就像TDD里说的一样,写一点测一点,那么我们也时刻要注意,写一点,就要进行一遍代码质量的管理。
在网上看了一些文章之后,我所认为代码分析领域有“五大”:
1. 代码风格,就是编码风格标准,个人认为应该遵循sun提出的标准,避免个人风格的肆意发挥。
2. 代码重复,复制粘帖代码俗称“堆代码”,在重构领域,这也称为坏的味道。
3. 静态分析代码潜在BUG,使用一些工具来找出一些比较常见的错误类型如臭名昭著的null指针、忽略返回值、初始化之前读取字段、找出 hash equals 不匹配 、未使用的代码等等。
4. 代码覆盖率,在进行测试的时候,有一个参数我们必须要知道,那就是代码覆盖率,可能你的测试动作并没有覆盖所有的代码,这时候我们必须保持警惕。
5. 复杂度监控和依赖项分析,复杂度监控用来监控项目代码的数量,类的数量,包的数量等等各种参数,这有助于我们分析项目是否走进了复杂的死胡同。越是复杂的事情越要保持简单,简单既是美。依赖项分析能够帮助我们分析包之间的引用,如果依赖过多,应该保持警惕,记得设计模式几大原则之一的迪米特法则也也讲到了这一点,个人认为应该以其作为依赖项分析的目标。
下面看看对应的工具,这里说明一点,各种工具之间可能有交集,我只选取我感兴趣的部分:
代码风格
|
CheckStyle
|
http://eclipse-cs.sourceforge.net/update/
|
它的饼图看着不错
|
代码重复
|
PMD
|
http://pmd.sourceforge.net/eclipse/
|
PMD也有CheckStyle的功能
|
静态分析代码潜在BUG
|
FindBugs
|
http://findbugs.cs.umd.edu/eclipse
|
比较钟爱的一个插件,其总结的BUG模式也比较有趣
|
代码覆盖率
|
emma
|
http://update.eclemma.org/
|
Coverlipse也不错,能与junit很好的结合
|
复杂度监控和依赖项分析
|
metrics
|
http://metrics.sourceforge.net/update
|
Metrics都有这两种功能,但是 JDepend在包分析上更专业
|
上面说了使用工具进行代码质量的管理,代码管理也包括人工审查,不过这个要依靠个人的经验,凭借一双慧眼才行。另外,关于codereview,我在http://www.iteye.com/topic/767906上看到一篇最佳实践,这个比较严厉了,相信很多公司都不会这么干,不过可以学习借鉴:
1. 我们把 codereview 这个环节安排在开发单元测试完成后,提交给QA以前做这个工作。
2. 必须硬性严格通过codereview,会让每个开发者打开自己的code,在多媒体会议室接受review, 参与者还有他的leader和相关架构人员,
3. review result会提交给dev,然后dev再修改,再review,直到满意通过。
4. 记住,一定要"硬性执行"codereview, 许多程序员天生的坏习惯,坚持三次review以后,dev就会有责任感,抛弃自己的陋习,完全遵守代码规范了【以后codereview的工作也就越来越快,因为大家都遵守这个规范了】。
5. dev 根据review result 更新自己的代码后,必须完成单元测试,然后在接受codereview, codereview成功通过后,然后dev再申请 reviewer通知QA组开始测试。
6. QA只接受codereviewer的测试申请【也就是说, QA接受不到 codereviewer的测试申请,是不会对相关项目做测试的,这就是硅谷硬性规范】
7. 按照这个程序,有时候你会接近 零 bug。
8. 你甚至可以把codereview 的复查功能添加到每天编译日程中,不满足规范的,就会导致daily build不成功,就找相关的dev,让其硬性完成code的规定。
这个过程刚开始执行的时候,程序员会有抵制态度,但是一定要硬性执行,让高层参与,只要好硬性执行三次以后,以后会产生一个黄金项目。
分享到:
相关推荐
通过合理选用和配置这些 Eclipse 插件,开发者可以大大提高代码质量,减少错误,同时提升开发效率。不仅如此,Eclipse 插件的灵活性使得开发者可以根据项目需求,自定义适合的开发环境,实现开发工作的自动化。因此...
【描述】:本文探讨了如何利用Eclipse插件自动化代码质量检查,包括CheckStyle、PMD的CPD、Coverlipse、JDepend和Eclipse Metric插件,以提升开发效率和代码质量。 【标签】:eclipse 自动化 软件/插件 【正文】:...
本文将深入探讨如何利用Eclipse插件来实现这一目标。Eclipse作为一个广泛使用的开源集成开发环境(IDE),提供了丰富的插件生态系统,可以帮助开发者进行代码分析、静态检查、重构以及持续集成等任务,从而提升代码...
标题 "一些与代码质量有关的eclipse插件" 暗示了我们即将探讨的是如何利用Eclipse集成开发环境中的插件来提升代码的质量。Eclipse是一个强大的Java开发工具,而插件则能够扩展其功能,帮助开发者检测和修复代码中的...
因此,Eclipse的代码行数统计插件只是开发辅助工具的一种,它与其他静态代码分析工具、代码格式化器和覆盖率测试工具一起,构成了提高代码质量和效率的完整生态系统。通过合理利用这些工具,开发者可以更有效地管理...
3. 网络和云服务:利用Eclipse插件实现与远程服务器的交互,如Git集成、RESTful API调用等。 4. 社区资源和最佳实践:熟悉Eclipse社区,了解最新的插件开发技术和社区最佳实践。 5. 持续集成和部署:设置CI/CD流程,...
《Eclipse插件开发(第3版 - 高清)》是...通过阅读《Eclipse插件开发(第3版 - 高清)》,开发者不仅可以掌握Eclipse插件开发的基本技能,还能了解到如何构建高效、可扩展的插件系统,从而提升软件开发的效率和质量。
例如,利用Eclipse插件开发工具集(PDE)来创建插件项目,配置构建路径,以及如何处理依赖关系等。Eclipse PDE为开发者提供了一系列的开发工具和服务,帮助开发者更容易地进行插件开发。 实战部分可能包括对插件...
EClemma可以与其他Eclipse插件如PMD、FindBugs等配合使用,实现更全面的代码质量管理。例如,结合静态代码分析,可以同时关注代码的可读性、规范性和测试覆盖率。 7. **注意事项** 虽然高覆盖率并不意味着高质量...
在实际开发中,配合Eclipse的其他优秀插件,如Code Recommenders(代码推荐)、Mylyn(任务跟踪)和SonarLint(代码质量检查),开发者可以构建一个强大的集成开发环境,为编写高质量、可维护的代码提供全方位的支持...
总之,Eclipse插件和IE插件在Web开发中扮演着重要角色,通过安装和配置合适的插件,可以显著提升开发效率和代码质量。在Eclipse中寻找并安装预览JSP或HTML文件到IE浏览器的插件,可以使开发者在编写代码的同时实时...
在实际开发中,理解并掌握如何利用Eclipse插件提升开发效率是至关重要的。除了EasyExplore,还有许多其他优秀的插件,如Mylyn用于任务管理,Subversive或Subclipse用于版本控制,PMD和Checkstyle用于代码质量检查等...
Eclipse插件可以利用这个核心运行时,通过标准的扩展点来实现功能的扩展。 Eclipse插件开发涉及的主要技术包括OSGi(Open Service Gateway Initiative)和JFace等。OSGi是一个Java的模块系统,它定义了如何在运行时...
开发者可以通过Eclipse插件访问项目源码,进行版本控制操作,同时利用各种工具进行性能分析、代码质量检查等任务。 总结来说,Eclipse插件是Eclipse强大功能的关键组成部分,它们极大地扩展了IDE的能力,涵盖了从...
总的来说,使用Eclipse PDE的模板功能,开发者可以更高效地构建Eclipse插件,减少重复工作,同时提高代码质量。通过理解PDE的模板架构,开发者可以自定义模板,满足特定项目的需要,进一步提升开发体验和生产力。...
《基于Eclipse插件的简易代码生成工具》是一篇毕业设计论文,主要探讨了如何利用Eclipse平台开发一款能够自动生成代码的插件。...同时,这样的工具也有助于软件团队标准化代码,提高代码质量和可维护性。
5. **Eclipse Marketplace**:Eclipse有一个内置的Marketplace,其中包含了大量第三方JS插件,如JSHint插件用于代码质量检查,或ESLint插件用于遵循特定的编码规范。用户可以根据需求搜索并安装这些插件,进一步定制...
熟悉这些规则后,开发者可以更流畅地编写代码,减少出错的可能性,提高代码质量。 总的来说,Emmet-eclipse插件是Eclipse平台上的一个强大工具,它通过Emmet的高效语法,让前端开发变得更加快捷、准确。对于任何在...
总结,jd-eclipse插件是Eclipse开发者的重要工具,它提供了便捷的反编译功能,使得无源码的Java类文件也能被理解和利用。正确安装和使用jd-eclipse,能够提升开发者的生产力,增强代码分析能力。
"eclipse Java代码折叠插件"正是这样一个功能强大的工具,它借鉴了Visual Studio中的#region #endregion概念,使得开发者能够对Java源代码进行折叠和展开操作,从而更好地管理和理解代码。 代码折叠功能允许程序员...