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

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

相关文章

idea Maven Springboot多模块项目打包时90%的问题及解决方案

《ideaMavenSpringboot多模块项目打包时90%的问题及解决方案》:本文主要介绍ideaMavenSpringboot多模块项目打包时90%的问题及解决方案,具有很好的参考价值,... 目录1. 前言2. 问题3. 解决办法4. jar 包冲突总结1. 前言之所以写这篇文章是因为在使用Mav

Python按照24个实用大方向精选的上千种工具库汇总整理

《Python按照24个实用大方向精选的上千种工具库汇总整理》本文整理了Python生态中近千个库,涵盖数据处理、图像处理、网络开发、Web框架、人工智能、科学计算、GUI工具、测试框架、环境管理等多... 目录1、数据处理文本处理特殊文本处理html/XML 解析文件处理配置文件处理文档相关日志管理日期和

Python38个游戏开发库整理汇总

《Python38个游戏开发库整理汇总》文章介绍了多种Python游戏开发库,涵盖2D/3D游戏开发、多人游戏框架及视觉小说引擎,适合不同需求的开发者入门,强调跨平台支持与易用性,并鼓励读者交流反馈以... 目录PyGameCocos2dPySoyPyOgrepygletPanda3DBlenderFife

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁

精选20个好玩又实用的的Python实战项目(有图文代码)

《精选20个好玩又实用的的Python实战项目(有图文代码)》文章介绍了20个实用Python项目,涵盖游戏开发、工具应用、图像处理、机器学习等,使用Tkinter、PIL、OpenCV、Kivy等库... 目录① 猜字游戏② 闹钟③ 骰子模拟器④ 二维码⑤ 语言检测⑥ 加密和解密⑦ URL缩短⑧ 音乐播放

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

PyQt5 GUI 开发的基础知识

《PyQt5GUI开发的基础知识》Qt是一个跨平台的C++图形用户界面开发框架,支持GUI和非GUI程序开发,本文介绍了使用PyQt5进行界面开发的基础知识,包括创建简单窗口、常用控件、窗口属性设... 目录简介第一个PyQt程序最常用的三个功能模块控件QPushButton(按钮)控件QLable(纯文本

Spring Boot 中的默认异常处理机制及执行流程

《SpringBoot中的默认异常处理机制及执行流程》SpringBoot内置BasicErrorController,自动处理异常并生成HTML/JSON响应,支持自定义错误路径、配置及扩展,如... 目录Spring Boot 异常处理机制详解默认错误页面功能自动异常转换机制错误属性配置选项默认错误处理