敏捷开发中高质量Java代码开发实践


    文介绍敏捷开发程中通采取系列步骤保证提高整工程代码质量阐述步利工具正确实践开发程更加标准化成高质量代码

    概述

    Java 工程开发程中开发员验代码风格相缺乏统标准理流程导致整工程代码质量较差难维护需较测试投入周期等问题问题工程组初建需求设计均具完全预期性完备性全新工程中尤突出文结合敏捷开发周期短变化快等特点介绍通开发程中采取系列步骤保证提高整开发团队代码质量阐述步利工具正确实践开发程更加标准化成高质量代码减少测试投入促进整团队技提高终提高开发效率质量

    图 1 示敏捷开发程历需求调研例分析例分解进入开发迭代阶段迭代程中采五步骤保证提高整工程代码质量:统编码标准代码样式静态代码分析〔static code review〕单元测试持续集成代码评审重构〔Review & Refactor〕文针步骤工具方法进行详细描述

    图 1 敏捷开发中 Java 代码质量保证步骤


    步骤:统编码标准代码样式

    标准统编码会增加工程代码读性维护性实际情况工程组 Java 代码开发员编码风格常常相验惯者缺乏编码标准方面学造成样工程成员者维护员阅读工程代码时需花费更时间理解代码作者意图制定采取统编码标准显重编码标准应包含方面:

    · 般规格式标准例代码缩进程序块标准行代码长度等
    · 命名规例包名类名变量方法接口参数等命名标准
    · 文档标准例类文件头声明类注释成员变量方法注释等标准
    · 编程标准例异常发线程等方面处理方式
    · 标准例日志格式属性文件格式返回值消息格式

    工程编码标准参考已 Java 编程标准书籍相关资料结合工程身制定供参考书籍 Java 编程风格〔英文书名:The Elements of Java Style〕编码标准形成文档简洁明组织工程成员起学确保成员正确理解条目

    旦编码标准确定利 Eclipse 身提供功控制代码样式格式具体做法点击 Eclipse Windows > Preference 菜单项翻开 Preferences 话框左侧栏中找 Java 节点子项 Code Style〔图 2〕该项子项允许您 Java 代码样式进行控制

    图 2 Eclipse 代码样式设置窗口


    例动格式化工具 Eclipse 提供默认代码格式配置根底建立定义格式 Formatter 面板中点击 New输入新名字选择默认配置作初始化格式图 3 示

    图 3 创立新代码格式配置


    单击 OK 新翻开窗口中进行修改定制需格式图 4 示

    图 4 创立新代码格式配置


    修改完成点击 Apply 保存作修改时点击 Export 前格式定义导出成 XML 文件样工程组成员方便通点击图 3 中 Import 钮导入该 XML 文件代码格式定义

    样次提交代码版控制效劳器前通 Eclipse 界面里 Source>Format 菜单代码进行格式化整工程代码具相格式样通 Code Style 工程进行设置帮助 Java 代码样式进行控制样式文件导出成 XML 文件编码标准起档供工程成员

    步骤二:静态代码分析

    完成源代码开发面进行工作审视测试代码通运行测试代码检查功外利静态分析工具快速直接提高代码质量静态代码分析工具需运行代码直接 Java 文件 Class 文件进行分析通检查条件设置快速找代码中错误潜缺陷现静态分析工具 FindBugsPMDIBM Rational Tool等等里选择 FindBugs 作静态代码分析工具FindBugs 日常开发工具 Eclipse 进行集成开发程中方便开始静态代码检查通检查 Class 文件者 JAR 文件字节码组缺陷模式进行发现存代码问题 Eclipse 开发环境中插件安装方式安装 Findbugs Eclipse 配置选项中会出 FindBugs 配置选项工程进行配置选择需 Detector 检查代码

    图 5 FindBugs 配置选项


    设置规需检查代码文件夹点击右键启动 FindBugs 检查代码工程文件

    图 6 运行 FindBugs


    检查完毕会出现 FindBugs 视图检查结果根错误分组展示点击结果里面错误会动翻开应代码根规改正错误者说潜错误代码通静态代码检查FindBugs 检查结果 XML 文件文文件便工程集成理检查保存

    图 7 FindBugs 检查结果


    步骤三:单元测试

    单元测试例设计评审

    单元测试软件开发程中重质量保证环节环节中设计评审保证整单元测试程完整性效性说十分重设计阶段需具体考虑代码单元进行测试测单元间关系测试策略单元测试例设计等终输出单元测试例设计文档指导具体单元测试执行例设计中通代码单元输入期输出定义保证该单元功正确性边界值测试异常测试非常重时配合测试例功块匹配方法衡量例设计完整性

    例设计完成步工作进行测试例评审理解验始终限例评审集体力例设计进入查漏补缺进步保证测试例效性单元测试属白盒测试范畴通代码逻辑结构进行分析设计测试例评审员选择理解代码逻辑结构前提果评审员相关模块够效发现模块相关性赖性带问题

    模拟象技术

    实际工程中开发员代码需代码模块系统进行交互测试程中需调真实象常常难实例化者象某情况法测试例真实象行法预测真实象行难触发者真实象运行速度慢时候需模拟象技术〔Mock〕利模拟象模拟代码赖真实象帮助完成测试提高测试覆盖率提高代码质量模拟象技术利面接口编程中代码直接接口进行调代码知道引真实象模拟象样利完成代码测试

    模拟技术种 jMockEasyMockMockitoPowerMock 等等中 Mockito 消期行需求防止代码量初始化

    图 8 Mockito 例


    模拟象程中先模拟需调 List 象 LinkedList设定象行调 get(0) 时候返回〞first〞样测试代码利象测试功代码需调返回值时候利模拟象返回值需模拟象进行错误情况模拟保证代码错误处理正确性

    测试覆盖率分析

    衡量单元测试质量覆盖范围需单元测试代码进行测试覆盖分析常衡量测试覆盖率指标语句覆盖率分支覆盖率路径覆盖率条件覆盖率方法覆盖率等具体采指标根工程实际情况定防止高指标增加代码开发员工作量影响工程整体进度

    EMMA 款拟流行开源 Java 测试覆盖率分析工具支持类方法代码行根代码块等种类型测试覆盖率分析支持覆盖率分析结果导出种格式报告采种颜色高亮显示覆盖率状态EclEmma 款基 EMMA Eclipse 插件方便 Eclipse IDE 中进行测试覆盖率分析图 9测试例写右键点击测试类选择 Coverage As > JUnit Test

    图 9 运行测试覆盖分析


    单元测试跑完Coverage视图中会显示选择测试覆盖率双击翻开某具体类高亮显示覆盖分析结果图 10 示红色代表测试没覆盖该行黄色表示局部覆盖绿色行表示该行次测试中覆盖

    图 10 查测试覆盖分析结果


    Coverage 视图中通点击鼠标右键测试覆盖分析结果导出成需格式例 HTML

    图 11 导出测试覆盖分析结果


    图 12 显示导出 report

    图 12 测试覆盖分析报告


    保证单元测试效性质量规定测试覆盖率限例包类覆盖率必须达 80 值注意单纯追求高覆盖率时注意测试例质量果测试例身写错误测试覆盖率高没意义

    步骤四:持续集成

    持续集成〔Continuous Integration〕利系列工具方法规做快速构建开发代码动测试化提高开发代码效率质量利动构建工具时提交代码构建出提供测试版户开发员时相功早发现问题错误快测试员户反应

    做持续集成利系列工具开发程中重复工作动化搭建动构建效劳器动进行单元测试发布新版集成效劳器提供构建程结果报告动通知开发员构建结果保存历史数IBM Rational Team Concert (RTC) 提供工作务理工程方案安排代码版理控制动构建版生成构建结果报告程构成工程持续集成程中版动构建代码动单元测试持续集成关键程RTC 程提供力支持

    动构建

    RTC 提供 build engine 负责构建 build首选启动 build engine RTC 效劳器建立连接创立工程 build 定义定义中需设定编译模块代码需跳动 ANT 文件启动编译编译程中参数设定准备编译工程言变成简单事情

    通 build 定义点击请求构建触发次构建程选择需构建参数程会台运行开发员做稍许代码改变提交触发新构建程保证代码效性申请新构建程图 13图 14 示

    图 13 申请新构建


    图 14 构建申请界面


    构建结束RTC 效劳器会提供构建结果报告开发员查询次构建详细信息

    图 15 构建结果


    整开发程中构建版程应该数次通次构建时代码编译情况运行软件版构建定义RTC 支持设置构建方案定时动触发次构建

    图 16 构建定义


    动单元测试

    构建动重点提高代码质量单元测试呢?果天代码版代码已通单元测试样代码质量根保证构建脚动调程中通 ANT 脚加 JUnitEMMAFindBugs ANT 脚调次构建检查工作动进行遍测试测试生成测试结果报告 RTC 提供报告展示利 Hudson 开源工具集成测试报告方便查阅

    图 17 动测试报告


    步骤五:代码评审重构

    代码评审〔Code Review〕 Java 工程开发程中重步骤代码评审帮助发现静态代码分析程中法发现问题例代码编写否符合编码标准代码逻辑者功否存错误代码执行效率性否需改良方代码注释否完整正确代码否存冗余重复代码评审帮助新进入工程组成员快速学解工程促进验分享时保证工程成员良沟通代码评审包括两种形式级评审〔Peer Review〕组评审〔Group Review〕级评审指工程成员间互相评审组评审指通召开评审会议工程成员起工程代码进行评审

    提高代码评审效性效率助外部工具拟常代码评审工具 Jupiter Code StrikerJupiter 款开源 Eclipse 插件允许成员评审意见定位真实代码具体行代码评审结果 XML 文件形式保存结果提交版理效劳器进行享图 18 显示 Jupiter 进行代码评审界面

    图 18 Jupiter 代码评审界面


    代码评审务创立Jupiter 代码评审分成三阶段评审阶段 (Individual Phase)团队评审阶段〔Team Phase〕问题修复阶段〔Rework Phase〕评审阶段评审成员发现代码问题者缺陷记录问题会作记录保存评审表格中团队评审阶段团队全部者局部成员会起评审阶段发现问题进行定性果问题确实存该问题分配某成员解决 Jupiter 中该问题设置成相应状态问题修复阶段团队成员会修复属问题相应记录设置成已解决等正确状态

    Codestriker 款基 Web 常代码评审工具代码评审针某具体行针整代码文件评审意见会保存数库中评审员时评代码作者针某具体评回复Codestriker 支持邮件通知版控制效劳器进行集成踪显示文件容改变图 19 显示 Codestriker 界面

    图 19 Codestriker 报告界面


    实践中代码进行组评审会拟费时根实际情况挑选核心代码进行组评审者工程前期安排较组评审等工程组成员代码评审标准求较理解进行代码评审验提高逐渐减少组评审次数达局部代码进行级评审保证质量

    通代码评审发现问题通代码重构时解决掉较涉代码重构工程成员助 Eclipse 重构功完成工程成员写实现相功代码通讨整合成公类者方法拟复杂者拟高层次重构工作例整工程层面代码组织形式改变需整工程组讨完成



    软件开发没成变万通流程方法希家文启发收益结合您实际工程特点实践步骤方法加完善改良造高效高质量 Java 代码您工程成功奠定坚实根底
    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 25 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    软件项目估算方法在敏捷开发中的实践

    软件项目估算方法在敏捷开发中的实践  0 引言  不知道您是否听说过关于软件项目管理的一个经典“六拍”笑话。那是这样说的:在项目开始之前,大家先“拍脑袋”承诺项目进度安排;在开工大会上领导“拍...

    11年前   
    523    0

    敏捷开发管理实践(1)让人的资源多起来

    敏捷开发管理实践(1)让人的资源多起来第1部分 开篇语项目管理作为一门独立的学科,已经发展了很多年,并为实践提供了丰富的理论依据。而软件开发的项目管理,虽然也属于传统项目管理的范畴,但是由于软...

    12年前   
    411    0

    敏捷开发正走向成熟

    敏捷开发正走向成熟  随着人们对软件开发灵敏度的要求逐渐提高,敏捷开发的方法得到更加广泛的认可,它正逐步走向成熟。  VISIONONE公司在2008年6月至7月进行了关于敏捷开发的问卷调查,...

    9年前   
    424    0

    敏捷开发中对进度的把握

    敏捷开发中对进度的把握  项目经理被问到最多的问题就是,“这个项目什么时候才能完成?”  被问的时候,可能项目才定下来,仅仅知道大概的功能模块,非功能性需求还模糊不清,甚至团队成员都没到位。但...

    8年前   
    413    0

    AE开发实例代码总结

    1、AE开发技术文档一、数据加载问题1、加载个人数据库个人数据库是保存在Access中的数据库。加载方式有两种:通过名字和通过属性加载(也许不只是这两种,AE中实现同一功能可以有多种方式)A、...

    3年前   
    617    0

    java开发实习周记25篇

    java开发实习周记25篇  第一周  实习第一个礼拜,算是适应期。主要了解一些公司的背景、产品、发展方向等。刚到实习公司,不是像学校里的朝九晚五,而是朝八晚九。 我们不可能简单的了解一些企业...

    9年前   
    926    0

    Java开发工程师工作职责2021职责

    Java开发工程师工作职责2021职责1、参与应用平台的设计和开发,负责应用平台核心功能模块设计、核心代码开发;2、参与业务需求、产品需求讨论,负责实施方案设计,技术原形实现,模块化代码实现;...

    2年前   
    484    0

    java开发工程师的求职信

    java开发工程师的求职信第一篇:java软件工程师求职信尊敬的领导:您好!首先衷心感谢您在百忙之中浏览我的自荐信,为一位满腔热情的大学生开启一扇希望之门。我叫王海艳,是一名即将于2014年7...

    12年前   
    512    0

    关于异地开发中的源代码管理问题

    关于异地开发中的源代码管理问题最近在带领一个异地的团队在进行.NetB/S系统开发工作。两地相隔1000多公里,两地都有开发人员,源码的统一管理就成了需要解决的问题。针对这个问题,想到如下的解...

    10年前   
    514    0

    基于java的坦克大战游戏开发毕业设计

     毕业设计说明书(论文) 作 者: 学 号: 院 系: 专 业...

    5年前   
    1309    0

    Java开发工程师工作职责最全归纳

    Java开发工程师工作职责最全归纳1、负责互联网平台的架构分析、设计和代码的编写;2、负责项目框架搭建、关键技术选型、技术难题攻关;3、按照产品需求进行开发工作并保证开发质量;4、针对Java...

    2年前   
    503    0

    关于Java开发工程师工作职责精编汇总

    关于Java开发工程师工作职责精编汇总1.负责互联网系统后端模块的开发和测试;2.与前端开发、运营、测试团队合作完成整个项目开发;3.编写及维护软件功能规格说明书,设计及开发过程中产生的系列文...

    2年前   
    436    0

    2017年java程序开发毕业论文参考文献

    java程序开发毕业论文参考文献  java毕业论文参考文献一:  [1] 韦乐平. 三网融合的思考[j]. 电信科学, XX (3): 1-6.  [2] 柴雪芳. 国外移动互联网的发展及对...

    7年前   
    543    0

    基于java开发的一个网站购物系统

    摘 要 随着21世纪的到来,计算机技术向着集成化和网络化的方向发展。单一计算机应用软件正在逐渐的淘汰,新一代的支持多种数据信息的网络版本应用软件正逐渐取而代之。信息化社会高效的办公方式正在对落...

    7个月前   
    165    0

    腾讯面试-移动JAVA开发

    1)笔试:c++,基础题目与程序员考试水平相当。  附加题:  1.有10亿个浮点数,从中找出1万个最大的数。写一个高性能的算法  2.unix后台进程的实现  3.mfc的多文档模板的加载 ...

    9年前   
    459    0

    Java开发工程师工作职责2021工作职责

    Java开发工程师工作职责2021工作职责1.负责公司相关产品的详细设计、开发工作,包括参与需求分析、数据库结构设计、核心代码开发;2. 维护和完善软件产品和系统,快速定位并修复相关缺陷,及时...

    2年前   
    445    0

    java开发助理岗位职责范本

    java开发助理岗位职责范本1.搭建系统开发环境,完成系统框架和核心代码的实现;2.按时按质完成开发任务与相关开发文档;3.负责解决开发过程中的技术问题;4.参与代码维护与备份;java开发助...

    2年前   
    666    0

    高级Java开发工程师岗位职责表述

    高级Java开发工程师岗位职责表述1、参与产品设计:根据业务需求,积极参与产品的讨论、定义、设计等工作;2、技术文档编写:按照公司软件开发管理规范要求,根据上级分配的任务,编制软件开发详细设计...

    2年前   
    429    0

    企业大数据基础平台搭建和实用开发代码

    在现代的企业环境中,单机容量往往无法存储大量数据,需要跨机器存储。统一管理分布在集群上的文件系统称为分布式文件系统。而一旦在系统中,引入网络,就不可避免地引入了所有网络编程的复杂性,例如挑战之一...

    3年前   
    2373    0

    软件项目开发质量保证方案

    XXX项目开发质量保证方案编制:生效日期:审核:批准:---------------------------------------------------------------------...

    2年前   
    490    0

    文档贡献者

    静***雅

    贡献于2022-08-03

    下载需要 25 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档