问题标签 [granularity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
146 浏览

strong-typing - 你封装标量吗?

我发现自己定义了如下类:

与将角度尺寸存储为普通双精度数相比,这具有许多优势。

优点 1,它可以定义这 2 个不同的构造函数:

...后一个明确称为Vec2(1, AngleSize(5));
(尽管在这种情况下,静态工厂函数Vec2::fromPolar(1, 5)可能同样好?)

优点 2,它更类型安全,捕获以下错误:

然而一切都不是很好。

缺点1、冗长且出人意料的语法

呃,这真的应该说cos(direction)在不允许不安全的隐式转换的情况下,我需要详细地访问实际值。

缺点2每件事的课程太多,你在哪里画线?

在这种情况下,你自己会怎么做?

另外,我在哪里可以阅读有关此问题的信息?我想boost可能有什么相关的?

请注意,这不仅仅是几何,它适用于任何地方。想想posix socklen_t ...

0 投票
5 回答
17100 浏览

nhibernate - NHibernate 中的 DateTime 精度和 NHibernate SchemeExport 中对 DateTime2 的支持

然后我使用 Fluent NHibernate 及其自动映射功能来映射以下简化的 POCO 类:

默认情况下,CreatedDateTime 字段将映射到 SQL DateTime。但是,如果我进行测试以检查实体是否正确创建,它会失败。这是因为 DateTime 字段的精度没有通过 SQL 数据库来维护。我了解这背后的原因是 MS SQL Server DateTime 只能通过四舍五入到 .000、.003 或 .007 的增量来保持毫秒精度(请参阅http://msdn.microsoft.com/en-us/library /ms187819.aspx)。由于这个原因,NHibernate 会在保存到存储时截断毫秒。这导致我的测试失败,因为我的 .NET DateTime 保存了它的毫秒数,但在保存后恢复的 DateTime 已经丢失了它的毫秒数,因此两者并不真正相等。

为了克服这个问题,我在 Foo 对象中添加了以下映射:

我知道这种映射使 NHibernate 将 CreatedDateTime 持久化为 datetime2 的 SQL 类型,它可以存储 .NET DateTime 可以存储的完整精度。这是一种享受,现在测试通过了。

然而,一次通过又一次失败:我检查架构导出的测试现在失败,并出现以下错误:

堆栈跟踪:

该代码使用 NHibernate.Tool.hbm2ddl.SchemaExport 对象来调用 Execute 方法。

我正在使用 Fluent v1 和 NHibernate v2.1。

我也尝试将 my 映射DateTime到 TimeStamp 但由于插入失败,甚至无法使映射正常工作:

无法将显式值插入时间戳列。与列列表一起使用INSERT以排除时间戳列,或将 aDEFAULT插入时间戳列。

有谁知道如何让 SchemeExport 与 a 一起使用datetime2或如何让时间戳映射为datetime属性工作?

0 投票
1 回答
166 浏览

models - 模型的粒度化?

我正在开发一个主要基于 Zend Framework 组件的 CMS。此 CMS 的一些数据库表如下:

我有一个名为的模型Site,其中包括以下方法:

对于我应该如何定义模型,我有点犹豫:

一种选择是从该方法返回SiteLocale对象/模型(换句话说,数据库表表示)listLocales(),其中这些SiteLocale对象包含以下方法:

另一种选择是在模型中简单地创建以下方法Site,并使用它来完成:

您认为正确的方法是什么?为什么?

此外,第一个选项(或者甚至两个选项)会违反得墨忒耳定律吗?

编辑(1 月 22 日)
虽然我喜欢Jeff 的回答,但我仍然愿意接受新的/其他观点。

0 投票
11 回答
116902 浏览

terminology - 粗粒度与细粒度

粗粒度和细粒度有什么区别?

我在 Google 上搜索了这些术语,但找不到它们的含义。

0 投票
6 回答
11620 浏览

agile - 故事中的任务应该有多精细?

我们最近一直在实施 Scrum,我们经常想知道的一件事是故事中任务的粒度。

我们公司内部的一些人表示,理想情况下,这些任务应该是非常细粒度的,也就是说,有助于传递故事的每个小部分都应该代表一个任务。他们认为这可以跟踪我们在当前 sprint 中的表现。

这导致大量任务详细说明了许多技术方面和需要完成的小动作,例如为组件 X 创建一个 DAO 以持久保存在数据库中。我也一直在阅读 Ken Schwaber 和 Mike Beedle 的书,使用 Scrum 进行敏捷软件开发,并且我理解任务确实应该具有这种粒度;在其中一章中,他们指出任务应该需要 4 到 16 个小时才能完成。

但我注意到,对于如此小的任务,我们往往会过度指定事情,当我们的解决方案与我们之前在计划会议中确定的不同时,我们需要创建许多新任务或替换旧任务。团队成员也不必跟踪他们在 sprint 中所做的每一件事并创建新任务,因为这意味着我们必须在燃尽图中增加我们的总任务,但不一定要添加一个汇总价值的任务。

那么,理想情况下,每个故事中的任务应该有多细?

0 投票
1 回答
1611 浏览

sorting - MongoDB日期排序中的粒度?

是否可以按粒度对 MongoDB 的日期值进行排序?

我想按日期排序我的结果,但我不关心小时/分钟/秒数据。我不希望存储像“20101215”这样的附加参数。

0 投票
2 回答
5190 浏览

vbscript - 以 100 纳秒的粒度显示 NTFS 时间戳

我知道 FAT 文件系统以 2 秒的粒度存储文件的时间戳(修改日期等),而 NTFS 以 100 纳秒的粒度存储它们。

我正在使用带有 FileSystemObject 的 VBScript 来显示文件详细信息。函数 file.DateLastModified 以 1 秒的精度显示日期(在 NTFS 上)。

有没有办法根据 NTFS 的内部存储粒度精确显示时间戳。我想像 8/9/2010 14:40:30,1234567

如果不使用 VBScript / FileSystemObject,还有其他方法吗?

0 投票
3 回答
3884 浏览

web-services - SOA - 服务应该有多精细才能保持性能?

我正在接手一个项目,从头开始替换一个古老的遗留系统。在我上任之前,公司聘请了一位顾问,他整理了系统的基本草图并大力推动 SOA。这导致了一长串“实体服务”,目的是将它们组合成更复杂的服务组合。例如,想要获得委员会信息的用户会点击“委员会”服务,然后调用“个人”服务来获取其成员,并调用“会议”服务来获取其会议,等等。

我理解这样做的灵活性,但我担心的是性能。在我看来,以如此精细的服务粒度构建的系统在翻译服务消息上花费了太多资源,并且性能将无法接受。在我看来,仍然可以使用基本的可重用对象来获得灵活性增益,尽管在这种情况下,与技术无关的接口的好处会失去以获得性能。

更多背景信息:请求此软件的组织目前没有需要集成的稳定的第三方软件套件。该软件将取代所有套件。目前也没有外部消费者需要访问提供的网站界面之外的数据——所有服务调用都来自我们系统内的其他部分。在这种情况下选择 SOA 似乎完全基于“准备”的概念。

所以我的问题是——在不牺牲性能的情况下,稳定的服务可以接受什么样的粒度级别?我是否对我们将所有实体实现为服务所带来的性能影响持怀疑态度?功能是否应该仅在需要时作为 Web 服务提供,而将“准备”的重点放在设计业务层上,以便以后将服务丢弃在其之上?

0 投票
3 回答
420 浏览

asp.net-mvc - 哪种控制器粒度适合大型网站的 MVC 样式?

我们(我和我的团队)有一个大型网络项目,该项目将处理许多用户(至少 15,000 个用户!)。在细化阶段,我们决定以 MVC 风格进行编码。我们面临一个权衡(在这个项目中,所有操作都应该由经过身份验证的用户执行)。

一种设计方式可能是:控制器获取请求并根据它创建(从数据库加载)请求的负责对象,然后将该对象的引用保存到控制器,最后将控制器添加到会话用户。这种风格需要控制器是一个粗粒度的类,在用户可能的高频动作中具有多种行为。

另一种设计方式可能是:控制器获取请求,然后为请求创建负责的对象,但该控制器是无状态的,并且根据例如网站的一个页面具有特定的行为。通过这种方式,我们应该为每个页面创建一个控制器,如果它需要某些页面中常见的信息,我们必须从数据库或缓存中加载它们。

  • 在第一种风格中,控制器应该是一个粗粒度的对象,因为它减少了创建和垃圾收集,因此它只在用户通过身份验证后创建一次,并且在会话到期之前不会成为垃圾。会话中存在的对象的生命周期是直到会话过期,所以我认为这可能是导致内存不足的原因!
  • 在第二种风格中,每次用户切换到其他页面时,都应该创建一个控制器并从数据库中提取信息,这可能会导致性能问题!

我的要求:我想从内存使用和性能两个方面来比较它们!如果有任何建议,我会很乐意提及!

一个简单的例子请看下图:

http://v1.iimmgg.com/images/is7gr/fb0f6b763eea5294815dcb2d50a12f56.png

0 投票
2 回答
1270 浏览

java - 支持甘特图和粒度的免费库 <= 1 小时

是否有免费的图形库支持以小时甚至分钟为单位的甘特图?我试过几个。JFreeChart 是最有前途的,但按比例缩小似乎将表示的最大时间尺度减少到仅几天。