项目扩展当中遇到的问题和思考

问题描述

项目最初开发是采用SSH框架的,其中有个功能是从数据库表中获取数据,然后生成报表现在想对这个功能进行扩展,需要从另外的表中获取数据,生成同样格式的报表。即现在用户可以选择,是从表A中获取数据,还是从表B中获取数据,然后生成报表。我想请教各位高手,我是应当在DAO层、Service层中重新实现一遍生成报表的功能,还是在原来的代码当中加ifelse进行判断呢?我的困惑是,如果我重新实现了一遍生成报表的功能,就相当于重复造轮子,以后还要维护相同的两套代码;如果我直接修改原来的代码,那就破坏了原来的完整性,原来功能的安全没法得到保证。我该怎么做才是最好的呢?

解决方案

本帖最后由 yuge573691195 于 2015-01-06 15:34:06 编辑
解决方案二:
封装变化啊。
解决方案三:
可以抽取功能啊将报表要查询的表的名称动态给过去,然后动态的查询就可以了。写的sql中,表名也作为参数传过去,然后接收查询的数据列表,进行遍历填充报表。
解决方案四:
1.报表格式相同说明你构造报表的数据结构、样式、计算逻辑都不变。也就是说这些都可以保留,不用重写或者复制。2.只是你数据源变了而已,只需要改变数据源的获取,如果是一个库,就把表名、字段名集合(如果是视图也是一样)传进来,动态去查询你要的结果。你只需要改变你数据源的获取、数据与报表行列的映射关系即可。3.如果你用的第三方的报表,例如润乾等等,建议你重做一张,因为用第三方报表的好处就是,你要是不太关心样式,一个1年经验的一天能出50张(当然数据结构、逻辑需求都很清楚的情况下)。

时间: 2024-10-29 07:03:35

项目扩展当中遇到的问题和思考的相关文章

javaee-Javaee 项目扩展当中遇到的问题

问题描述 Javaee 项目扩展当中遇到的问题 项目最初开发是采用SSH框架的,其中有个功能是从数据库表中获取数据,然后生成报表 现在想对这个功能进行扩展,需要从另外的表中获取数据,生成同样格式的报表. 即现在用户可以选择,是从表A中获取数据,还是从表B中获取数据,然后生成报表. 我想请教各位高手,我是应当在DAO层.Service层中重新实现一遍生成报表的功能,还是在原来的代码当中加if else进行判断呢? 我的困惑是,如果我重新实现了一遍生成报表的功能,就相当于重复造轮子,以后还要维护相同

Johanna Rothman——把敏捷项目扩展为敏捷计划

Johanna Rothman在OnAgile2016题为<把敏捷项目扩展为敏捷计划:自主.合作.探索的小世界网络>的演讲中,她鼓励观众使用公司内已有的小世界网络来帮助改变.沟通和整合.此外,她推荐了不同的方法来加强这些小网络,使它们能够改善交付大型功能程序的流程. Rothman是<敏捷和精益项目管理:将合作扩展到整个公司>(Agile and Lean Program Management: Scaling Collaboration Across the Organizati

微软BUG Bounty悬赏项目扩展至.NET Core和ASP.NET Core

微软宣布自2016年9月1日开始将.NET Core和ASP.NET纳入到BUG Bounty悬赏项目范围内,微软将会为Windows和Linux平台上的两个编程代码提供漏洞悬赏. 微软公布的细节中写道 微软将会为.最新微软.NET Core和ASP.NET Core的最新RTM版本.受支持Beta版本或者候选版本提供漏洞悬赏,包含"关键"和"重要"两个级别 在默认ASP.NET Core模板中为Visual Studio 2015及更新版本提供的ASP.NET W

阿里搜索业务容器化中的一些经验和思考

概要 参加了上一次CNUTCON 大会,有来自coreos的李响,分享了很多关于etcd的事情,以及关于k8s包括自己和coreos公司的一些观点:还有来自mesos的tim chen, 他分享了很多mesos的思路以及一些接入容器过程中踩过的一些坑:swarm kit的负责人陈东洛也分享了swarm的思路,这方面由于刚出来没多久以及分享的同学也只有他,所以东西并不多:总的来说,感触很深. 关于容器和编排,想到开源和创业 从会议分享者来看.相比去年,容器技术有了更大的发展:docker很热,每一

怎样维护成功的开源项目

开源可不仅仅是将代码扔到网上就万事大吉了,将开源项目变成能让自己引以为豪的东西才算成功.那么,你需要注意哪些方面呢? 写好指导性文字 每一个开源项目有三样东西是少不了的:项目目标和方法的简要说明.如何参与和授权许可.最好把它们预先放在一个README文件里. 我还喜欢加入一个名为"组织和理念"的部分,概括项目如何构成,各个东西都在哪儿,代码是怎样写的,需要哪些类型的测试,性能与简洁性怎么平衡.(详见案例unstdlib.py) 接下来是"贡献"部分,要说清楚开发者怎

密码管理器反而导致密码泄露,LastPass扩展成罪魁祸首

3月22日讯 密码库LastPass已经对其高危安全漏洞进行修复,各恶意网站此前已经利用这些漏洞窃取到数百万条受害者密码内容. 密码管理器反而导致密码泄露,LastPass扩展成罪魁祸首-E安全 这项安全漏洞由一名来自谷歌Project Zero项目安全团队的白帽黑客Tavis Ormandy所发现.他通过研究指出,LastPass Chrome扩展中存在一个可利用的内容脚本,将导致恶意网页能够从该管理器内提取到密码内容. 谷歌Chrome插件LastPass的作用在于将用户的密码存储于云端.其

如何将网赚扩展为事业

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 这个问题可能很多赚友都没有认真想过,有很大一部分赚友就在幻想能靠网赚养活自己.他单纯停留在想这个范畴,而实际行动却无跟进. 很大一部分赚友第一次接触到的网赚就是点击网赚.调查网赚等这些简单网赚项目.注册上百个站点,纯单干,点了老半年广告,做到支付的可能只有那10几.20来个,收入甚微.于是,不停重复找寻新站点,不停的点广告,如此循环.如果,单

清除页面广告?身为前端,自己做一款简易的chrome扩展吧

大家肯定有这样的经历,浏览网页的时候,左右两端广告,诸如"屠龙宝刀,点击就送",以及最近火的不行的林子聪37传奇霸业什么"霸业面具,霸业吊坠"的魔性广告总是充斥我们的眼球. 当然有现成的扩展程序或者插件(两者概念稍有不同)可以清除页面广告,但是既然身为一名程序猿,尤其是FEDer,为什么不尝试一下自己写一个清除广告的扩展程序呢.其实,编写一个浏览器扩展程序十分简单,尤其是chrome扩展,可以完全使用前端技术(HTML/CSS/JS)完成一个自己编写的扩展程序.让我

很大一部分赚友第一次接触到的网赚就是简单网赚项目

很大一部分赚友第一次接触到的网赚就是点击网赚.调查网赚等这些简单网赚项目.注册上百个站点,纯单干,点了老半年广告,做到支付的可能只有那10几.20来个,收入甚微.于是,不停重复找寻新站点,不停的点广告,如此循环.如果,单单将此作为业余爱好的话,那么是可以的.但很多赚友的内心并不是如此想的,他们寻求的是一种简单.轻松且又赚钱多的盈利方式.他们心中如此幻想:我现在收入不多肯定是因为项目不够好,我现在收入不够好肯定是因为做的项目不够多.而没有去思考:"扩展"二字. 你没有为将网赚扩展为事业的