Questions tagged «reporting»

11
在域丰富的应用程序中检索报告和仪表板数据的最佳实践或设计模式
首先,我想说这似乎是一个被忽略的问题/领域,因此,如果这个问题需要改进,请帮助我将此问题变成一个有益于他人的好问题!我正在寻求实施解决方案的人员的建议和帮助,而不仅仅是尝试的想法。 根据我的经验,应用程序有两个方面-“任务”方面,这主要是域驱动的,用户可以在其中与域模型(应用程序的“引擎”)进行丰富的交互,而报告方面则是用户根据任务侧发生的情况获取数据。 在任务方面,很显然,具有丰富域模型的应用程序应在域模型中具有业务逻辑,并且数据库应主要用于持久性。分离关注点,每本书都为此而写,我们知道该怎么做,太好了。 报告方面呢?数据仓库是可以接受的,还是由于将业务逻辑合并到数据库以及数据本身而设计不当?为了将数据库中的数据聚合到数据仓库数据中,您必须对数据应用业务逻辑和规则,并且该逻辑和规则不是来自您的域模型,而是来自您的数据聚合过程。错了吗 我致力于业务逻辑广泛的大型财务和项目管理应用程序。在报告这些数据时,我经常会做很多汇总工作以提取报告/仪表盘所需的信息,并且这些汇总中有很多业务逻辑。为了提高性能,我一直在使用高度聚合的表和存储过程进行此操作。 例如,假设需要一个报告/仪表板来显示活动项目的列表(设想10,000个项目)。每个项目将需要显示一组指标,例如: 总预算 迄今为止的努力 燃烧率 以当前消耗率计算的预算用尽日期 等等 这些都涉及很多业务逻辑。我不仅在谈论乘数或一些简单的逻辑。我说的是为了获得预算,您必须应用一个包含500个不同费率的费率表,每个费率适用于每个员工的时间(在某些项目中,其他项目具有乘数),应用费用和任何适当的加价等。逻辑是广泛的。为了使客户端在合理的时间内获得大量数据,需要进行大量的聚合和查询调整。 应该首先在域中运行它吗?性能如何?即使使用直接的SQL查询,我也无法获得足够快的数据以使客户端在合理的时间内显示。我无法想象如果要重新为所有这些域对象补水,并在应用程序层中混合,匹配和聚合它们的数据,或者试图在应用程序中聚合数据,那么尝试将这些数据足够快地发送到客户端。 在这些情况下,SQL似乎擅长处理数据,为什么不使用它呢?但是,那么您在域模型之外就有了业务逻辑。对业务逻辑的任何更改都必须在您的域模型和报告聚合方案中进行更改。 对于域驱动设计和良好实践,如何设计任何应用程序的报告/仪表板部分,我实在感到茫然。 我添加了MVC标签,因为MVC是jour的设计风格,并且在我当前的设计中使用了它,但无法弄清楚报告数据如何适合此类应用程序。 我正在寻找这方面的任何帮助-书籍,设计模式,谷歌关键字,文章等等。我找不到有关此主题的任何信息。 编辑和另一个例子 我今天遇到的另一个完美的例子。客户需要为客户销售团队提供报告。他们想要看似简单的指标: 对于每个销售人员,他们迄今为止的年销售额是多少? 但这很复杂。每个销售人员参加了多个销售机会。有些人赢了,有些人没有。在每个销售机会中,都有多个销售人员,每个销售人员根据其角色和参与度分配一定比例的销售功劳。因此,现在想象一下要遍历该域...为每个销售人员从数据库中提取此数据所需要做的对象补液量: 获取所有SalesPeople-> 对于每个获取其SalesOpportunities-> 对于每个获取其销售百分比并计算其销售金额, 然后将所有SalesOpportunity销售金额相加。 这是一个指标。或者,您可以编写一个SQL查询,该查询可以快速有效地完成并对其进行快速调整。 编辑2- CQRS模式 我已经阅读了有关CQRS模式的信息,尽管很有趣,但即使是马丁·福勒(Martin Fowler)也说它未经测试。那么BEEN过去如何解决这个问题。每个人在某个时候或某些时候都必须面对这一点。具有成功记录的既定方法或陈旧方法是什么? 编辑3-报告系统/工具 在这种情况下,要考虑的另一件事是报告工具。Reporting Services / Crystal报表,Analysis Services和Cognoscenti等都希望从SQL /数据库获取数据。我怀疑您的数据稍后会通过您的业务。然而,在许多大型系统中,它们和其他类似的对象仍然是报告的重要组成部分。在这些系统的数据源甚至报告本身中甚至存在业务逻辑的地方,如何正确处理这些数据?

11
每日报告会降低开发人员的生产力吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 在另一个问题中,我问为什么开发人员可能不喜欢每天的混乱。我们与开发人员进行了交谈,我们决定暂时不举行每日Scrum(在我们的第一次尝试中尝试一下并定制化Scrum)。这是直接与开发人员进行协商的结果。 另一方面,我们不想失去日常工作的大部分内容,例如有机会每天与开发人员进行协调,或者像关键绩效指标那样观看工作进度,以便尽早采取行动。 作为每日混乱的替代方案,我们正在考虑要求开发人员提供以下条件的每日报告: 无需遵循任何特定格式。每种格式均被接受。 即使工作没有完成,我们也希望听到进展。 无需提及在每个任务上花费的时间。 应提及发展障碍和协调要求。 无需沉迷于每日报告。没有那么严格。 您认为这会降低他们的生产率吗?您有任何日常报告经验吗?您对我们有什么建议,以便我们可以确定自己没有进行微观管理吗?

9
将临时报告添加到应用程序中值得吗?
我们有一个收集大量数据并生成报告的应用程序。第一次迭代是一个很好的Crystal Reports集成。在Crystal Report设计器中创建报告,然后将RPT文件导入到应用程序中。这很好用,但是用户需要应用程序来运行报告,而且用户无法创建报告。我们添加了过滤器,排序器和分组,以便可自定义RPT文件,但它们无法从头开始创建一个。 第二种互动是使用SSRS,SSAS和Microsoft的报表生成器工具的基于Web的解决方案。这需要一些数据库工作,还需要一些工作才能从OLTP架构启动并运行多维数据集,但是最后,创建汇总报告要容易得多。但是,我们仍然必须使用报告构建器工具创建报告,然后发布然后发布,等等。我们还添加了过滤器,排序器和分组器以使其“可自定义”。 在这两个场景中,随着时间的推移,我们大约有30至50个开箱即用的报告。 现在,有一些有关添加临时报告的讨论,以便用户可以从头开始创建报告。现在,我们的数据模型非常复杂,需要具备良好的工作知识才能理解它。至少要做到这一点,需要大量的工作才能将数据模型转换为“更可报告”且更易于理解的模式。我认为我们的应用程序不适合临时报告(不值得付出努力)。 有没有人在提供临时报告方面取得任何成功?您使用了什么工具集?它对您的应用程序的成功有影响吗?

8
如何向我的雇主(不是程序员)报告项目(敏捷)的进度?
我向雇主报告进度有问题。我是兼职程序员,为我学校的(非技术)部门处理一个软件项目。 联系人: 1.实际使用该软件并提出功能要求的员工; 2.我的老板(非程序员),她不是软件的用户。 该项目的性质: 它是一种现成的软件,已从第三方购买。我必须修改或添加此软件的功能才能满足部门的需求。这是整个学期需要使用的软件。并非一开始就需要使用所有功能。 因此,我们使用的是敏捷模型:当员工需要某个功能时,他们会提出一个请求,然后我进行更改。在本学期末,我认为所有必需的功能都将得到提高和实现。 问题: 每次老板问我进度如何时,我都无法回答,因为我不知道如何回答。我没有所有必需功能的完整列表。尽管我已经完成了上周提出的功能,但是我仍然不能告诉老板我已经“完成”了,因为新功能也即将推出,我也不知道要增加多少。我不能说“我们有多少完成率”,也不能说“我们要在xxx之前完成”。有时候,在3个请求中,我设法完成2个,我会告诉老板“我已经完成2个,但是其中一项功能尚未完成”。过了很长一段时间,我听起来像是“经过这么长时间,我总是有些事情没有完成”。 无法报告进度使我看起来非常糟糕。这不关我做了多少,而是关乎如何让人们知道。如果我是经理,而我的员工几个月都没有向我报告进度,那么我也会觉得这个人也无能为力。 你们有任何想法如何报告,或回答诸如“软件修改的状态/进度是什么”这样简单的问题吗? 更新 我的老板没有直接参与开发任务,因此她对我在做什么或程序如何工作一无所知。由于她很忙,我们不定期开会,我觉得这会浪费时间,因为她不是主要用户,她也不知道程序的细节。 我会定期与使用和了解该软件的人员会面。 我很难向老板解释进度。

7
为什么我们需要优先级和严重性?
我了解他们的决定,但是将其分配给发现的问题真的有用吗?我的意思是,要么需要快速修复,要么不要求修复。 我知道如何设置它们,对其进行分类等。我知道IEEE / ISO确实需要这样做。我只是不明白为什么。

12
质量检查是否应该找到可重现的方案?
有时,我的质量检查小组会报告错误,但是我或他们都不知道如何重现错误。这导致非常长且令人沮丧的调试会话,有时甚至无法产生结果。 我的软件与专有硬件紧密相关,因此错误可能一次来自多个方向。 我应该对他们期望比“按下按钮时您的软件崩溃”还要多,还是应该自己弄清楚发生了什么? 编辑: 我的一位同事指出,我们可能是这里的所有开发人员,因此结果可能会出现一些偏差
10 testing  bug  qa  reporting 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.