问题标签 [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 投票
1 回答
151 浏览

objective-c - 如何在不阻塞 UI 的情况下有效地从 Web 服务器请求数据?

我希望制作一个可以从网络服务器下载一些数据并将其显示在 UItableview 中的应用程序。

主要问题是(据我了解)如果我尝试在主线程中请求数据,程序将锁定。这听起来完全合理和正确。所以,我必须创建一个新的 NSThread 来并行运行它,我也正确。

我的问题是如何接收数据(可能包含图像、文本等)并一次显示(假设我想一次显示 20 个单元格,当我到达底部时20,会出现一个加载圆圈,并在可以加载下一个20)。即使图像尚未加载,我如何加载 20 个单元格?我对数据传输没有明确的联系,所以我的问题可能看起来有点模糊。

谁有好的教程?

0 投票
1 回答
740 浏览

oop - 使用 API 进行 OO 编程中的类图

  • 我正在尝试为我尝试在给定框架内创建的应用程序创建类图。
  • 这个框架公开了它自己的自定义 API,我设计中的一些类由 API 中的类表示。
  • 其中一些类往往变得相当复杂,所以我面临如何在我的类图中表示这些类的问题——或者我是否应该尝试这样做。

更具体,

  • 我的应用程序将工件从一台服务器移动到另一台服务器。
  • 我正在研究的框架提供了类和方法来表示源和目标服务器并与之通信。
  • 现在,我知道我的类图需要考虑服务器类及其功能的表示,但是我如何在我的类图中做到这一点

提前谢谢你的帮助。

0 投票
1 回答
405 浏览

asp.net - 电子邮件应用程序设计,如何管理附件和消息?

我正在做一个电子邮件应用程序,它允许多个附件和电子邮件将在预定日期发送。我在这里有一些设计问题。请用您的经验知识指导我。

电子邮件将存储在 db 表中,但附件将存储在服务器上的文件夹中。用户将首先上传文件,稍后他的电子邮件将存储在数据库中。我有消息和附件表。但是有些情况下系统应该能够处理。

  1. 我应该如何存储不同用户的电子邮件附件(在一个文件夹或多个文件夹中)?
  2. 应该如何管理附件命名,多个附件(由一个或不同的用户)可以具有相同的名称?
  3. 用户可以上传文件,但以后可以留下撰写信息,系统将如何处理此类附件?
  4. 在用户按钮(保存或草稿)按下或撰写页面请求的数据库表中保存电子邮件的最佳时间是什么?如果您在页面请求中提出建议,那么如何处理未成功完成的消息?

如果我缺少其他任何东西,请指导。

我将更加感谢您的指导、时间和真诚的建议。

0 投票
2 回答
755 浏览

ruby-on-rails - Web 应用程序中的 API 版本控制

我目前正在为新网站设计版本化 API。我了解如何命名路由,但我坚持在模型中实现版本化方法的最佳方式。

下面的代码示例使用的是 rails 框架,但大多数 web 框架之间的事情原理应该是一致的。

路线目前看起来像:

和控制器:

所以很明显,我们只是在这里公开了 Product 上可用的属性,如果你只需要一个版本的 API,这个解决方案就很好用。当您想要发布 V2 并且 V2 需要重新实现产品名称的显示方式时会发生什么(同时保持与 V1 的向后兼容性 - 至少在短期内)?

据我所知,你有几个选择......

  1. 立即放弃对 V1 的支持并处理后果(可能的最坏解决方案)
  2. 您开始覆盖 to_[format] 方法(我很确定您使用 as_[format] 执行此操作,但这是题外话)以包含一个新属性...-name_2这似乎同样愚蠢
  3. 实现某种代理类,它只负责公开我们所追求的方法
  4. 让视图处理创建某种散列,版本化控制器并调用to[format]...

三个和四个是我真正认为有意义的唯一一个......三个看起来像:

其他人过去做了什么?

0 投票
4 回答
2316 浏览

.net - WPF 设计师:您的设计过程是什么?

我将完全重新提出这个问题。所以这是一个很大的编辑

我正在寻找 WPF 专业人士关于他们的设计过程的一些反馈。例如,当我设计一个网站时,在我编写任何 HTML、CSS、JavaScript 之前,我会在 Photoshop 中设计界面,这样我就可以向客户展示他们网站的外观。在我写任何代码之前,我会选择样式、配色方案,如果不是全部的话,大部分第三方图形(股票摄影)一旦客户批准了设计,我就开始构建它。

我想知道设计 WPF 桌面应用程序的等价物是什么。在设计界面时,选择配色方案,选择按钮样式,选择可能进入其中的任何图像,首先创建模型是否常见?您是否只是在构建它的同时快速创建所有图形。还是简单地在网上找到一个主题/皮肤并在您的应用程序中使用它更常见?

再说一次,我知道没有正确的答案,我只是想听听你们都在做什么。

谢谢

ps - 我有 Expression Blend 4,我可以手写 XAML(不仅仅是在 Blend 中使用设计视图)。我的问题不是关于我应该使用什么工具来构建 WPF 应用程序,而是关于设计过程。

0 投票
1 回答
244 浏览

database - 标记系统设计问题

我在一个新闻网站上工作,我正在考虑实施一个标记系统(类似于这个网站),您可以在其中按不同的类别类型对新闻进行分类,例如:新闻类别(经济、政治等)但是还有诸如它所用的语言和新闻文章的类型(社论、专题报道等)之类的东西。

我应该如何区分这些不同的类别类型?我应该为每种类别类型提供一个标签表,还是应该将所有内容保存在一个表中并使用标签前缀,例如“language:en”、“category:economy”?第二种解决方案似乎更灵活,因为我可以通过附加前缀来添加更多的护理类型。然而,第一个解决方案感觉更有条理,更容易使用。

另外,我想知道您如何确定何时应将某些内容表示为标签,或者何时应将其表示为数据库中的列值/记录(例如,语言应该是标签还是我的“新闻”表中有语言列?) . 我不知道在哪里画线。

谢谢

0 投票
2 回答
183 浏览

database - 向用户显示行的主键是否不安全?

为什么许多应用程序在向用户显示记录时用看似随机的替代 id 替换数据库的主键?

我的猜测是它可以防止用户猜测表中的其他行。如果是这样,那不就是一种虚假的安全感吗?

0 投票
1 回答
833 浏览

database-design - 需要可视化应用程序开发工具来处理复杂的多对多和层次关系

我正在寻找一个可视化数据库应用程序开发工具(基于 GUI 或脚本),我们可以使用它来开发一个应用程序,该应用程序通过一系列构建大量多对多和分层的转换来获取一组文本和数字字段数据元素之间的关系(例如,多个主从关系)

[编辑 - 从最初的问题开始]

我发现了一些产品可以让我们的 DBA 定义表和 SQL ......然后我们的“设计师”可以使用这些 GUI PHP 生成器来创建基于表单的网页,以针对 MySQL 表/sql

  • 脚本案例
  • Xlinesoft phprunner
  • 代码收费
  • Sqlmaestro php 生成器

对这些解决方案的赞成或反对的任何见解将不胜感激。例如:生成的代码有多干净?我注意到有些具有更复杂的运行时设置..而不是“纯”脚本输出。

非常感谢

0 投票
1 回答
85 浏览

ruby-on-rails-3 - Rails 构建可激活(或不可激活)功能的最佳实践?

好的,假设我有一个很棒的带有一些帖子的 Rails 应用程序,可以评论和投票。它是在线的,人们喜欢它。

现在想象一个客户过来告诉我“嘿,这个应用看起来不错!我可以拥有相同的应用,但带有我的徽标和对评论的投票吗?”

好吧,我克隆应用程序,进行更改,然后将调整后的应用程序交付给客户,然后我回到原来的应用程序并继续改进它。

几个月后,另一个客户来了,也想要同样的应用程序(现在改进了),但也对评论进行了投票。

当然,我首先意识到克隆应用程序并不是一个聪明的主意。

我想知道的是,您将如何从一开始就使其变得简单、可维护和 DRY 以重用为第二个项目中的第一个客户制作的功能?

然后想象一下很多客户都有很多不同的请求功能。现在你意识到能够“构建”一个只有这个功能或这个功能的新应用程序真是太棒了,而不是这个功能,等等。

你将如何做到这一点?

我想 git 分支可能是实现这一目标的好方法,或者可能是 Rails Engines/Gems,或者我不知道,但我绝对没有足够熟练的 git 或 rails 来清楚地看到漏洞图。

谢谢 !

0 投票
4 回答
1777 浏览

c# - 在静态类中存储全局不可变数据

我有一个 WinForms 项目,它使用了很多用户控件。其中一些用户控件使用来自业务逻辑层的类。这些类主要对数据库执行 CRUD 操作(通过数据访问层)以及一些额外的验证和报告。

该项目使用了一些常见的对象(登录用户、一些控制器和验证器),这些对象在主窗体中被实例化,然后通过初始化方法或公共属性注入到子用户控件中。这意味着,我有很多代码,它们只是将这些公共对象从父控件传递到子控件。

为了避免这种情况,我可以创建一个静态类(例如 ApplicationContext)并将所有常用控件保存到其中。这将发生在主窗体中,项目中的所有其他用户控件或窗体都可以使用它。

我看到通常不鼓励这种模式(将一些全局数据存储在静态类中)。但是如果这些数据是不可变的呢?这种方法曾经是个好主意吗?

或者您知道任何其他方法可以帮助我摆脱所有初始化代码吗?