天龙报表项目开发流程整理

2023-10-29 14:30

本文主要是介绍天龙报表项目开发流程整理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

来长沙安能这边带领小组参与天龙报表开发已有一个多月的时间,目前已经完全第一轮报表的开发,第二轮报表也按计划正常进行中,从整体上来看,项目进展情况不错。现将这一个月来小组开发的整体流程进行一个整理,供后面有类似开发场景的参考,也希望大家对不足的地方给出更好建议,一起成长。
         一、前期准备工作:
         由于我们团队参与进天龙报表开发是中途介入的,没有太多时间缓冲,参与进去后就直接下发报表任务,需要收集信息并完成下面工作:
         1、搭建天龙项目开发环境:包括项目SVN地址下载、maven库下载更新、项目SVN相关账号权限的申请等等,直至天龙报表项目启动不报错,运行成功,访问页面无误结束;
         2、天龙项目数据库访问:了解开发测试环境配置,使用PL/SQL能连接到开发数据库。
         3、报表需求文档SVN下载:下载报表任务对应的报表需求,并制定需求细化文档模板(要求每位开发人员在开发报表之前必须先搞懂并细化需求,形成文档);
         4、数据库设计说明文档下载:由于安能快递的表结构与之前接触的项目表结构有蛮多变化,需要参照数据库设计说明文档。
         5、每日工作日志模板下载:下载工作日志模板,每日提交工作完成情况。开发过程中前期有发现写工作内容就是笼统的一句话,要求必须细化成多项工作任务;
     6、收集安能_通讯录:方便开发过程中与相关干系人沟通和协调资源;  
         7、制定开发计划:大致将报表任务过了一遍后,小组一起讨论了并制定了开发计划,确定了每个报表的责任人、每项计划的具体完成时间点。

       二、报表开发工作启动:
       整体开发流程大致分为:需求理解细化 》创建结果集表 》创建存储过程  》前后台代码编写  》单元测试  》提请功能转测
       1、需求细化:干过开发的人应该都清楚,在真正下手之前,理解透需求的重要性。前期需求在理解模糊的情况下就急于下手,往往后期大量返工,无数次血的教训都告诉我们一个简单的道理,磨刀不误砍柴工。因此为了避免开发人员在理解需求文档时走过场,一知半解,制定了细化需求文档模板,要求在文档中根据需求明确写明该报表需求使用到哪些表,哪些是主表,表与表之间的关联字段是什么,报表列表中的各字段来源于哪个表,哪个字段都要求明确写明,对需求中不明确的地方逐一找需求人员确认,并在旁边做好批注。
      2、创建结果集表:结果集表的创建要综合考虑目标展示报表与现有数据库中业务表的关系,它是一个基于这两者中间位置上的一个表。既要满足用很简单的SQL查询语句就能将结果集表的里面数据展示到前台并符合报表的要求,还要满足从现有业务表中数据转换成结果集表的数据所写的存储过程不会太过复杂。一个良好的结果集表的创建正是权衡这二者关系平衡的产物。

      3、创建存储过程:首先制定了存储过程模板,对存储过程的命名规则也做了具体要求,出于安能对信息化安全的要求,具体的规则就暂不列出了。每个报表存储过程我们一般都是分成业务存储过程(RST)和调用存储过程(CALL),RST类存储过程核心的存储过程,里面包含了该报表所使用结果集的具体数据转换逻辑过程。而与其配套的CALL类存储过程则通过传递统计时间参数简单的对RST业务存储过程进行调用,这种方式即方便开发中进行灵活调试,也方便后期oracle JOB定时任务直接调用CALL类存储过程执行。这种模式的最初提出者是我们公司的王总,挺方便的不错。                              

      4、前后台代码的编写:天龙报表项目是一个maven多模块项目,划分不同的maven子模块,各司其职,方便开发人员进行分层开发,同样出于安能对信息化安全的要求,这里不做具体的介绍,有需要的同事可以内部沟通。在开发过程中,常见的规范一定要遵守,注释模板codetemplates.xml要统一,文件存放的目录结构、命令规则在开发之前全部统一规范好,jsp文件放哪里,对应的JS、CSS文件放哪里,每位组员都要心中有数,这些规范在下手开干之前一定要统一好,不然要么容忍乱套,要么自己花时间去统一改。另外天龙报表前端都是使用jquery实现的,对于习惯了ZK开发模式的开发人员,需要两天时间转变,增加对JS的熟悉度,特别是了解前端常见的已封装好的功能件,比如网点模糊匹联想功能、报表列表分页查询显示等。

      5、单元测试:报表开发完成后,除了开发人员自己从页面上去验证功能好坏外,安能测试这边还要求提供单元测试文档,并会在提请转测后,安排测试人员、需求人员、开发人员一起开远程会议,评审单元测试文档。如果单元测试不通过,则直接打回,不予测试。单元测试文档的提供即要求了开发人员对自己开发的功能进行的必要的冒烟测试,也给测试人员指名了初步的测试方向。
      6、提请报表转测:每个报表开发完成并自测后需要向测试部门提转测申请,以邮件的形式发送,邮件中注明功能开发人员姓名、建表SQL文件SVN地址、存储过程SQL文件SVN地址,报表功能页面截图,附件附上单元测试文档。

     三、在开发中的监控过程
     1、控制范围:
            A、需求文档每个我都要过一遍,做到心中有数,确保跟对应的报表需求人员沟通该报表业务时无障碍,对认为有疑问的地方确认开发人员是否有跟需求人员确认清楚;
            B、查阅数据库设计文档,了解天龙项目表设计上与之前接触的系统有哪些差异,如收发到派四张表差异,网点基础表的差异等。
            C、每天下班前提交今天完成的可交付成果到SVN,早上上班后,首先核实可交付成果,是否与需求相符;
     2、控制进度:
            A:报表思维方式的传递。由于我前期参与过不少报表类的开发,对建表、存储过程开发和调试都有不少心得,也深知一个项目的成功并不是靠一个人就能完成得了的,为了更快的让组员领会这种模式,在会议室召开会议,通过以其中一张报表做例子,系统的讲解了如何设计结果集表,如何创建存储过程、如何调试存储过程以及如何编写mybatis中的SQL将结果集的数据展现在前台。
            B、时刻清楚今天要做什么。每天上班后打开开发计划文档,跟开发人员确认目前开发进展情况和今天将要做什么,是否有延期,是否有遇到困难,是否需要帮助,是否需要协调资源,及时解决。
            C、白板监控。在报表交付时间前三天开始,对要交付的报表还存在的问题进行上板,划分优先级,目标明确,逐一消灭。
     4、控制质量:
            A、规范习惯的培养。每天在核实可交付成果中,都会去留意规范的遵守情况,包括开发代码规范、开发文档规范、工作日志文档,一旦发现有放松不遵守规范的情况,立即要求修改,培养的是一种习惯 。
            B、站在用户体验的角度,对不符合用户使用习惯或影响用户体验的操作方式,提出修改建议;
            C、禅道BUG跟踪:开发人员安心开发手头上的工作,由我来统一监控禅道BUG,有问题及时沟通指派,协助开发人员定位问题,及时解决并反馈。

收尾:
  目前第一轮报表开发已经完成,第二轮开发已经启动,目前开发进度一直保持良好,陈宗熙、谢超、陈斌、李锋几位帅哥在工作中的能力是值得肯定的,也同时感谢他们在工作中的对我的大力支持,希望我们能够继续保质按时完成后续天龙项目的其它报表任务,让安能客户为我们点赞!

这篇关于天龙报表项目开发流程整理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/301285

相关文章

SpringBoot整合Flowable实现工作流的详细流程

《SpringBoot整合Flowable实现工作流的详细流程》Flowable是一个使用Java编写的轻量级业务流程引擎,Flowable流程引擎可用于部署BPMN2.0流程定义,创建这些流程定义的... 目录1、流程引擎介绍2、创建项目3、画流程图4、开发接口4.1 Java 类梳理4.2 查看流程图4

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

使用Python开发一个现代化屏幕取色器

《使用Python开发一个现代化屏幕取色器》在UI设计、网页开发等场景中,颜色拾取是高频需求,:本文主要介绍如何使用Python开发一个现代化屏幕取色器,有需要的小伙伴可以参考一下... 目录一、项目概述二、核心功能解析2.1 实时颜色追踪2.2 智能颜色显示三、效果展示四、实现步骤详解4.1 环境配置4.

java Long 与long之间的转换流程

《javaLong与long之间的转换流程》Long类提供了一些方法,用于在long和其他数据类型(如String)之间进行转换,本文将详细介绍如何在Java中实现Long和long之间的转换,感... 目录概述流程步骤1:将long转换为Long对象步骤2:将Longhttp://www.cppcns.c

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地