问题标签 [application-design]

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 投票
3 回答
317 浏览

database-design - 设计查找值

我想知道您的开发商店或项目中用于处理查找值的协议是什么,例如世界各国或美利坚合众国的州。

我已经看到它以两种不同的方式完成:在我工作的一个地方,我们的查找都存储在带有前缀“L_”的数据库表中,并具有以下列:id、code、desc、ordersequence。因此,例如,对于世界各国,我们将有一个如下表格:

最近,我看到了一个将查找烘焙到枚举中的示例,例如:

如果这些来自数据库表,则有一个实用程序可以为枚举生成 C# 代码。否则,有人只是花时间使用值不可能更改的假设对所有条目进行硬编码。对于枚举中的数值,如果存在,则根据数据库中相应查找表中的 ID 列进行硬编码,或者仅根据从 1 开始的条目进行硬编码。

无可否认,我赞成前一种方法的论点是,它非常灵活,可以选择使用代码或完整描述、操纵顺序和进行更改而无需重新编译。尽管从它们生成代码的选项是可能的,但一个很大的优势是它们在降级到数据库时仍然是真正的“查找”。最后,它们的使用方式很灵活:作为 Dictionary 集合中的值或使用服务器端代码生成 ASP.NET ListItems 或 html 组合框元素。

我听到的关于后者的论点是值不会改变,并且即使它们在应用程序级别缓存,也必须从数据库中检索查找值存在开销。通过对它们进行硬编码或生成枚举,它们可以在没有数据库检索的情况下使用。

我的问题如下:

  1. 哪个选项对您更有意义,或者,如果您的答案是“视情况而定”,您能否给出硬编码枚举优于跨整个应用程序的数据库查找的场景?

  2. 您还见过其他处理查找的优雅解决方案吗?我曾在一个应用程序中工作,其中所有查找都有一个表(它包括一个“查找名称”列)作为示例。您的替代方法与上述两种方法相比如何?

0 投票
2 回答
110 浏览

python - 是否可以将不同的产品对象连接到一个合同?

我的问题
我希望我的客户能够将许多不同的产品连接到一个合同,并且列出附加到合同的所有产品的代码感觉很脏。

我的模特

要列出所有连接到合同的产品,代码如下所示:

我找不到任何理智的方法来找出产品是什么类型的产品!

我目前的解决方案
我已经这样解决了......但是整个混乱感觉......错了。对于正确方向的任何指示,我都会很高兴。

所以我可以像这样获取每个特定的产品(伪代码):

列出所有“真实”产品,而不仅仅是 baseproduct 实例。

我需要什么帮助
才能以某种理智的方式做到这一点。
我不介意将所有内容抽象出一堆步骤,只是为了获得更清晰的代码。

0 投票
4 回答
505 浏览

java - 唯一键约束

在应用程序级别处理具有唯一键约束的表上的数据插入/更新的最佳实践是什么?这些是我想出的:

1、在插入数据之前对表进行查询,看是否会违反约束。

优点

  • 您拥有完全控制权,因此您不必处理任何特定于 DBMS 的错误消息。
  • 额外的数据完整性检查层

缺点

  • 由于大多数时候不会违反约束,因此可能会影响性能。
  • 在运行重复数据查询时,您需要锁定表。

2.什么都不做。更新表格,看看有什么问题。

优点

  • 简单的!
  • 总体速度更快,因为您不必在每次更新表时都运行额外的查询。

缺点

  • 您的验证例程取决于数据库层。
  • 如果数据不粘,您必须通过堆栈跟踪来查找原因。

哪一个是更广泛接受的解决方案?这些有替代品吗?

我正在使用 Java、JPA、Hibernate 和 Spring BTW。欢迎任何建议,甚至是特定于框架的建议!

谢谢!

0 投票
1 回答
911 浏览

cocoa - 首次启动时 Cocoa 应用程序设置最常见的场景是什么?

我正在创建一个应用程序,我希望用户在首次启动应用程序时设置一些强制性偏好。实现这一目标的最常见方案是什么?我应该设置一些用户默认值来查看应用程序是否已设置?另外 - 如果我确定该应用程序是第一次启动 - 我应该如何显示“设置”窗口?如果我从单独的 xib 文件加载它 - 我将如何延迟主应用程序窗口的显示?

0 投票
3 回答
149 浏览

language-agnostic - 应用程序设计——什么时候应该使用接口?

我有点将接口理解为可以应用于没有共同点的类的合同(例如:Java 中的 Comparable)。但是,在什么情况下,您会有在设计阶段添加界面的反射?

0 投票
3 回答
155 浏览

project-management - 编写项目规范时要避免的陷阱

我目前正在尝试为一个大型项目编写一些软件规格,我想在 oDesk 上竞标(可能是 3k-6k)。我接受过计算机科学方面的经典教育,但工作经验很少,而且我从未在公司环境中工作过。

我为要在 Google App Engine 上运行的 API 编写了 15 页的项目规范。我发现难以解决以下问题的微妙之处:在哪里划定要指定的内容和不指定的内容;如何将项目分解成几部分,以便如果一个部分出错,其他部分仍然可以使用;在哪里以及如何设置里程碑;以及如何筛选具有正确实施规范的技能的候选人。

我问一个朋友我应该注意哪些问题,他说:

  • 确保规格没有相互矛盾的信息
  • 确保规格不是不必要的具体,因为这会关闭更多熟练的开发人员

在制定项目规范时,我还应该注意哪些其他陷阱和常见错误?

0 投票
1 回答
83 浏览

asp.net-mvc - MVC 身份验证流查询

我正在编写一个小应用程序,以允许用户在线更新他们的个人信息。

我让他们在流程开始时进行身份验证,但也想在我将任何更改提交回数据库之前再次询问他们的密码。

这是亚马逊在允许您查看购物篮和结账之前的工作方式。

有没有明智的方法来做到这一点?

0 投票
1 回答
116 浏览

database-design - 如何通知大量关注者?

假设一个人有很多追随者。此人发布故事,应用程序应通知所有关注者。如果关注者的数量不是太多,我们可以在用户单击提交按钮时发送电子邮件。

但是,如果某些人拥有成千上万的关注者,您将如何实施通知系统?

0 投票
3 回答
1098 浏览

c# - 软件即服务的最佳应用程序设计

使用 ASP.NET MVC3 C# 和 MS SQL 2008

我正在开发一个软件即服务站点。这是汽车经销商的汽车库存应用程序。我对网站的架构有一些想法,但想要第二个意见。

每个经销商将被限制在一个布局中,但可以上传一个徽标并选择一些颜色主题。

起初我考虑为每个经销商创建单独的站点,但升级将是一场噩梦。

所以我的想法是,一个根据主机名动态变化的主要站点。IE。因此,如果输入 miamicars.carinventory.com,他们会看到他们的配色方案和徽标。

我将有一个用于用户和公司设置的主数据库,但每个站点都有一个单独的数据库,其中包含大量数据(汽车库存等)。这样我可以单独备份和处理每个站点的数据,但应用程序的主要代码将在一个地方。

此外,每个公司都会有一个目录来存储他们的个人图像。

任何反馈都将受到欢迎。

谢谢

0 投票
2 回答
108 浏览

c# - 如何轻松更改应用程序的不同部分

我目前正在尝试创建一个需要 10 多个具有不同内容和控件的不同“页面”的应用程序,并且我需要在特定事件上在它们之间来回切换。

我所做的只是在网格中创建所有不同的部分,并将它们的可见性设置为折叠,然后当我需要显示它们时,只需将可见网格切换到新的。

这有几个缺点,我假设从编码的角度来看它非常糟糕,这几乎不允许我使用设计器。(我也不知道它对性能有什么影响)

最重要的是,每次我切换到新页面时,我都需要将所有组件(文本框等)重置为默认状态,因为它们不会因为变得不可见而被重置:P

关于我的问题:我需要一种方法来绘制所有不同的页面,在它们之间提供视觉上有吸引力的过渡,并能够使用设计器来创建它们(我并不是说在某处设计它然后只是复制 xaml)

我环顾四周,遇到了 SketchFlow,这似乎是一个完美的解决方案,我可以在页面之间淡入淡出并轻松地将所有内容映射到流程图上,然后我意识到它仅适用于应用程序原型,我实际上无法将其编译为正常应用程序...我还需要从自定义 Window 类继承。

有什么东西可以让我这样做吗?或者我该如何编码才能正常工作?

注意:这绝对需要留在一个窗口内。我不能冒险在每次我需要更改某些东西时弹出 10 多个不同的窗口。因为这种情况经常发生