<font id="rl0zr"></font><object id="rl0zr"><option id="rl0zr"><small id="rl0zr"></small></option></object>
    <thead id="rl0zr"></thead><optgroup id="rl0zr"></optgroup>
      <object id="rl0zr"></object>
      <thead id="rl0zr"><del id="rl0zr"></del></thead>

      <thead id="rl0zr"></thead>
      <thead id="rl0zr"><del id="rl0zr"><video id="rl0zr"></video></del></thead>
      <thead id="rl0zr"></thead>

      联系我们:010-88559646

        老师群

      170086145

        学生群

      179326524

      209318323

      215410234

      客服电话:010-88559646

      代码结构及流程重构

      时间:2019-01-31????????来 源:中国软件杯

      第八届大赛--A组赛题


      初赛作品提交内容:源代码;可运行程序或可部署程序;相关文档(系统设计文档、README.md文档)

      README.md文档应该有以下内容:简介、目录介绍、快速开始、测试、开发者、讨论;

      测试代码:即被扫描代码(请将测试代码打成zip包,或者在相关文档中给出github测试代码库地址);

      演示视频(格式不限,时间尽量控制在7分钟以内)


      赛题名称:代码结构及流程重构

      组类: A 本科及以上  

      赛题简介:介绍整个赛题的思路和整体要求

      代码重构,即通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。而遵循某种约定好的编码规范则是代码重构过程中的基本约束条件。

      编码规范可以因企业、部门、具体项目而异,并没有太多的好坏之分,但统一的编码规范有助于规范编码的风格,使代码具有更好的可读性,否则不利于我们对代码的维护和传承。

      一般来说,编码规范的主要内容包括:

      1、试图对编程风格、排版等作出约定,使不同的程序员能写出风格一致的程序;

      2、试图指出常见的编程陷阱,帮助程序员提高程序质量;

      3、试图指出晦涩罕用的语法,提醒程序员避免使用;

      4、试图给出编程实践的一些建议,以便于程序员改善自己的程序设计。

      赛题业务场景:描述赛题相关的真实企业业务背景。从真实场景中,适当简化或者提炼出适合比赛的赛题场景

      大多数集成开发环境(IDE),如Eclipse系列、IDEA系列,Visual Studio系列等都内置了厂商提供的专有的编码规范格式化插件,也可在默认规则基础上进行简单的修订。主要实施方式为:本地校验 + 本地修改,即开发人员在本地格式化后,再提交到代码库。适合采用统一开发套件的中小型企业项目开发,或个人项目开发。

      对于大型企业来说,因开发活动频繁,代码库数量巨大,同时应管理的需要,主要实施方式为:服务端校验 + 本地修改。即在代码评审、合并入库之前,通过服务端部署的编码规范检查器进行分析,在发现问题后,及时驳回提交通知修改。

      作为代码准入的第一门槛,这种方式的缺点在于对开发效率的影响比较大,因为即使很小的规范问题也会阻塞后续流程的进行。同时,编码规范的实施作为一种周期性的开发活动,长期积累下来,因反复提交、修改造成的时间消耗也是很客观的。

      故在此基础上,我们需要一种实现代码结构及流程重构的方法,使得可以检测并修复不符合规范的代码,以达到提高开发效率的目的。

      功能性需求

      1、实现代码格式重构(必做):根据给定的代码规范,实现不满足格式规范的代码,对其格式自动重构,重构后正确率需在99%以上。以Java为例,包括不得省略花括号、换行、空白、表达式圆括号等;

      2、实现特定类型命名重构(必做):根据给定的代码规范,实现不满足命名规范的代码,对其命名自动重构,重构后,命名正确率需在99%以上。Java为例,包括:包命名,类命名,方法命名,常量命名,成员变量命名,参数命名,局部变量命名等;

      3、等价语句互转(必做):根据给定的代码规范,实现不满足结构规范的代码,对其结构自动重构,重构后,结构正确率需在99%以上。如多条件单if语句/单条件多if互转,for/while互转,多if/switch互转等;

      4、程序正确性性检测及自动修复(选做):修复形式不限,如空指针检测,可以通过在出现空指针的位置,增加判断、注释,显式的抛出异常等。

      d非功能性需求

      1)以敏捷开发的思想、过程和方法为指导;

      2)所有代码以通过版本管理工具留存。

      其他限制条件:开发环境、实验平台、开发语言、数据库、编译器等限制条件(请尽量明确)

      1. 支持主流编程语言,如C、C++、Java、Go、Python等等,任选一种语言即可;

      2. 考虑到适用范围及性能等原因,应尽可能减少要修复的目标代码对开发环境的依赖,如无需编译,不使用或下载外部依赖等。

       

      测试数据或平台:提供给参赛者的测试环境和测试数据。(可提供电子档)

      1、编码规范

      Java为例https://google.github.io/styleguide/javaguide.html

      其他语言可在该网址中查找:https://google.github.io/styleguide/

       

      2、GitHub上有潜在问题的工程代码。

      开发所需设备及设备指标需求说明

      其他要求

      出题企业:??百度在线网络技术(北京)有限公司

      答疑老师联系方式:李老师 ??010-58001804??

      ??                ??                 liyancheng@baidu.com

       

      主办单位

      工业和信息化部

      教育部

      江苏省人民政府

      承办单位

      中国电子信息产业发展研究院

      江苏省工业和信息化厅

      江苏省教育厅

      教育部高等学校计算机类专业教学指导委员会

      信息技术新工科产学研联盟

      执行单位

      中国信息化周报

      中国(南京)软件谷

      江苏软件产业人才发展基金会

      南京航空航天大学

      关于我们

      客服电话:010-88559646

      邮编:100048

      联系地址:北京市海淀区紫竹院路66号赛迪大厦18层

      网站备案/许可证号:京ICP备05039896号-10     京公网安备 11010802020860号
      快播成人 成人午夜| 美女写真图片| 成人免费视频| 五月天开心激情网| 爆乳| 无翼乌之全彩爆乳| 午夜快播| 强奸女明星| 爱情岛论坛亚洲| 4480午夜场理论|