`
JRuler
  • 浏览: 343 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

如何精细化管理代码质量?

阅读更多
如何精细化管理代码质量?
背景与范围
    代码是工程师与硬件机器交流的语言。和人类语言交流一样,表达一个相同的意思可以用很多不同的方法。哪一种表达的方法更好呢?对于代码而言,大概有三个方面的内容。第一个方面是看起来如何,第二个方面是分析起来如何,第三个方面是运行起来如何。前面两个方面的内容属于代码的静态质量问题,最后一个方面属于代码的动态质量问题。总之,静态的代码质量问题包括:抒写风格、逻辑规则、静态分析等等;动态的代码质量问题包括代码的单元测试,性能测试等等。
方法与困难
    在编码阶段的一个迭代周期中,开发人员需要完成的过程如统一编码规范、单元测试、代码评审、重构、持续集成、代码分析等等。报怨代码的质量问题是毫无用处的,解决代码质量的问题,唯一有效的办法就是行动起来,严格的进行代码审查过程.常见的方法是小组的领导人,带领团队人员定期的抽查部分代码,进行校正,从而达到其它成员参考的作用。在这一过程中使用自动化的检测工具,可以代替部分人工的功能。团队成员坚持不断地执行代码审查,使所有的工程师形成良好的编码习惯,不断提高编程能力,从而提高软件产品的代码质量。但是这个过程需要大量的时间和人力的成本。
    代码风格是代码审查的最基本的内容。在代码审查过程中,逐条针对代码风格的定义进行审查,核对。每个公司都有自己对代码的通用风格定义,也有自己的特殊风格定义。比如公司版权,属性名、注释等等。尽管公司有严格定义,但是却难以执行。
代码的逻辑规则以及潜在的缺陷是代码重大缺陷审查的主要内容.这些问题一般在测试过程中难以发现,或者需要花费大量的精力才能发现.所以在代码审查的过程中提前发现,提前解决.这些问题种类繁多,需要大量的编程经验才能发现.例如空对象的处理问题;捕获Runtime类型的异常问题等等;所以在执行代码审查的过程中需要花费大量的时间和人力成本。
代码审查还有一个更加重要,并且更加困难的部分就是对系统设计方面的审查。优秀的代码不仅需要遵循代码的风格、逻辑的规则,而且需要优秀的代码结构和高效的性能。拙劣的设计,往往伴随着代码冗余、逻辑混乱、效率低下。比起经验欠缺的工程师,优秀的工程师可能会使用更少量的代码完成更为复杂的功能。例如初级的工程师经常使用大量的if-else去实现逻辑的判断,而经验丰富的工程师会使用设计模式去解决这样的问题;再如经验丰富的工程师善于使用简捷的算法去解决一些看似复杂的问题,而初级的工程师往往使用非常复杂的逻辑来处理等等。
解决方案
    代码审查可以解决代码质量的大部分问题,但是人工检测比较费时费力,所以我们需要一种自动化的方案。市场上也一些工具辅助执行,例如 jindent、checkstyle、pmd、Jtest、jfindbugs等等。jinent、checkstyle主要解决代码的书写格式的问题;pmd主要解决代码的一些逻辑规则的问题;jtest、findbugs主要解决了代码的分析问题可以检测很多代码中存在的潜在bug。这些工具存在一些缺点,一个方面需要我们在开发中安装多种工具,以解决不同的问题。 另一个方面是均不能很好的自动的优化我们的代码,检测出来的问题需要我们去分析才能解决,这个将花费我们很多的精力。再有一个方面是我们自定义的扩展功能不强。

针对上面这些问题,我们推出了一款可编程的代码自动分析工具---JRULER精细化代码质量管理工具。JRULER内置了一种标准化代码的编写风格和逻辑规则、以及代码分析功能的脚本编程语言.可以自动检测、并且可以自动优化开发人员生产的代码,从而把优秀的编程技术和经验积累下来。我们只要将开发人员的代码通过我们系统检测,就可以自动的优化源码在编写风格上面的缺陷,以及大量积累的良好编程经验,也可以检测代码中潜在的问题。大概80%的问题可以自动的优化,对不能自动优化的部分,会生成报告,然后提交给相应的工程师去解决。从而大大降低管理成本,有效的提高了公司软件的代码质量,并且使所有开发人员生产的代码达到统一的标准。





总结JRULER产品的特点:

1,书写格式功能,可以自动的优化代码的书写格式,包括空格、换行、注释等等。
2,逻辑规则功能,可以自动的检测代码的逻辑规则,并且可以自动的进行优化。
4,自动的报告生成功能。系统可以根据脚本的执行情况,决定是否产生检测结果的报告。
5,自动的代码优化功能。系统检测出来的报告,脚本可以自动化的优化问题,对可以自动
   优化了的问题,就不再产生报告了。
3,可编程功能, 代码的检测和优化均通过脚本编程的方式实现,可编程的检测可以达
   到灵活的自定义效果。工程师根据自己编程的经验,将优秀的编程习惯通过脚本固化下
   来。从而达到,积累优秀编程经验的目的。

网站地址:www.jruler.com
资源下载:www.jruler.com/downloads/plugins_v2.0.zip
插件连接:www.jruler.com/downloads/plugins_v2.0.feature
脚本例子
1、如何检测类名命名规则

/**
* 如何检测类名命名规则
*/
#include "java.h"
string getClassName(token tk);
string checkClassNaming() hooks tk : @"CLS" {

if(tk == null) return null;

string cls_name=getClassName(tk);
if(cls_name == null) {
    return null;
}
boolean b=regMatch(cls_name, "[A-Z][a-zA-Z]+");
if(!b) {
return "class name is not suitable.";
}
}

string getClassName(token tk){

token [] tkList = tk.childs;
var i=0;

while(i<tkList.length) {
token ttk=tkList[i];
string s = toString(ttk.values);
if(s=="class") {
break;
}
i=i+1;
}
if(i<tkList.length) {
token tkCName = tkList[i+1];
return toString(tkCName.values);
}

return null;
}
[/size][size=medium][/size][size=large]
分享到:
评论

相关推荐

    精细化管理实施细则.doc

    精细化管理有助于预防和减少错误,提高代码质量,减少返工,同时也提升了团队的工作效率。 二、精细化管理的目标 1. 质量控制:按照相关标准和规范进行软件开发或系统维护,确保交付的产品符合预设的质量要求。 2. ...

    参考资料-产工程精细化管理(5)页.zip

    【产工程精细化管理】是企业提升效率、降低成本、保障产品质量的重要策略。在信息化时代,精细化管理已经成为各行各业,尤其是IT行业中不可或缺的一部分。这份"参考资料-产工程精细化管理(5)页.zip"压缩包文件包含了...

    如何借助信息技术落实精细化管理.pdf

    信息技术在落实精细化管理中的作用至关重要,它通过一系列的方法和工具,帮助企业实现管理的标准化、流程化和数据化,从而提高效率、降低成本。精细化管理的核心原则包括关注细节、立足专业、科学量化,这三方面在...

    玉禾田300815需求扩容市场扩张,精细化管理助力环卫龙头高质量成长.rar

    "精细化管理"是指公司采用更为细致、高效的管理模式来提升服务质量与效率,这通常包括流程优化、资源配置、成本控制等多个方面。"环卫龙头高质量成长"则强调公司在环卫行业的领先地位以及其追求的高质量发展路径。 ...

    安质系统精细化管理培训(项目部).pptx

    【安质系统精细化管理培训(项目部)】 精细化管理在IT行业中同样具有重要的应用价值,尤其是在项目的财务管理中。本文将围绕“安质系统精细化管理”的关键要素进行详细阐述。 一、组织机构 根据《安全生产法》的...

    润达医疗-603108-深度报告:医院检验精细化管理服务领军者.rar

    这种精细化管理不仅提升了服务质量,也降低了运营成本,使得医院能够更专注于医疗服务本身,而无需过多担忧检验环节的复杂性。 再者,润达医疗积极构建全国性的服务网络。通过并购、合作等方式,公司在各地设立了...

    华测检测-300012-精细化管理提升经营效率,第三方检测龙头崛起.rar

    精细化管理可能涵盖了对公司运营的各个方面,如流程优化、成本控制、人力资源管理、服务质量监控等,这些都对其业务发展起到了关键作用。 【关键词扩展】 1. **第三方检测**:指独立于产品制造商和消费者之外的第三...

    20191124-国泰君安-华域汽车-600741-深度报告:产品、客户不断升级,精细化管理逐步推进.rar

    报告标题:“20191124-国泰君安-华域汽车-600741-深度报告:产品、客户不断升级,精细化管理逐步推进” 这份深度报告聚焦于华域汽车(证券代码:600741)在2019年的业务发展情况,特别强调了公司在产品创新、客户...

    益丰药房603939盘石桑苞,兼具精细化管理与区域聚焦能力的药店龙头.rar

    在医药行业,精细化管理和区域聚焦策略是企业成功的关键因素,益丰药房在这两方面表现出了显著的优势。 精细化管理是现代企业管理的重要理念,旨在通过深入细致的流程控制和资源配置,提高运营效率和客户满意度。在...

    精细化标准

    精细化管理旨在提升效率、质量和安全性,确保每个环节都遵循既定规范,减少错误和浪费。以下是对精细化标准的详细解析: 首先,物料管理是精细化标准的重要组成部分。在采煤工作中,物料如菱形网片、联网丝、工字钢...

    可重用代码管理器

    2. **分类与标签**:通过设置不同的分类和标签,用户可以根据功能、语言、复杂度等因素对代码段进行精细化管理,方便检索。 3. **搜索与过滤**:强大的搜索功能使得开发者能迅速定位到所需的代码片段,同时,过滤...

    精细化IT测试体系建设.pdf

    精细化IT测试体系建设是现代软件开发过程中的重要环节,特别是在金融领域的大型机构如蚂蚁金服这样的公司,测试体系的精细化能够确保产品质量,降低风险,并促进快速迭代。本文将深入探讨蚂蚁金服的测试现状、精细化...

    代码管理工具tc

    总结,代码管理工具TC是提升团队开发效率的关键工具,它通过版本控制、分支管理、任务追踪等功能,使团队能够协同工作,确保代码质量和项目进度。通过熟练掌握和运用TC,开发者可以更专注于创新,而非琐碎的协调问题...

    swift-关于iOS代码风格管理的两三事儿

    然而,为了实现更加精细化的代码风格管理,许多开发者和团队会选择采用特定的代码格式化工具,如SwiftFormat或SwiftLint。这些工具能够自动检查并修复代码中的风格问题,确保代码符合预设的规则。 SwiftFormat是...

    Keil uVision5 代码格式化

    总之,Keil uVision5的代码格式化和导航功能是提高开发效率和代码质量的关键工具。合理利用这些工具,能有效地提高编程体验,使团队合作更为顺畅。同时,结合第三方工具如AStyle,可以进一步满足个性化的代码格式化...

    酒店管理系统程序及源代码

    本系统旨在提高酒店运营效率,提升客户服务质量,通过信息化手段实现业务的精细化管理。 一、系统核心功能模块 1. 预订管理:系统支持在线预订和电话预订,根据房间类型、价格、入住日期等因素,为客人提供实时的...

    宾馆管理系统源代码(包含附加数据库文件)

    宾馆管理系统的开发是一项复杂而精细的工作,涉及到多个技术领域,如编程语言、数据库管理和软件工程。本系统采用VC++作为前端开发工具,结合SQL 2000 Server数据库,为宾馆运营提供了高效、便捷的信息化解决方案。 ...

    java超市管理系统(eclipse+MySQL)

    《Java超市管理系统——Eclipse与...无论是对商品的精细化管理,还是对业务数据的深度分析,都显示了信息技术在现代零售业中的重要作用。这样的系统不仅提升了超市的运营效率,也为其他行业的信息化建设提供了借鉴。

    0502-民生证券-歌力思-603808-动态点评报告:多品牌矩阵多点发力,开启数字化、精细化运营.pdf

    精细化运营则强调在每一个管理环节上追求精细和高效,注重成本控制和质量提升。 报告中详细列出了歌力思公司在2021年的财务数据,包括营业收入、归母净利润、扣非归母净利润、现金红利分配以及每股收益。从报告内容...

    某农电管理系统源代码

    【某农电管理系统源代码】是...同时,对于现有的农电管理部门,这个系统可以作为基础,根据自身需求进行定制,提高工作效率,实现精细化管理。总的来说,这个源代码的发布对于教育、研究以及实际应用都具有很高的价值。

Global site tag (gtag.js) - Google Analytics