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

c# - 在我的 C# 代码中使用 .NET 4.0 元组是一个糟糕的设计决策吗?

随着在 .net 4 中添加Tuple类,我一直在尝试确定在我的设计中使用它们是否是一个糟糕的选择。在我看来,元组可以成为编写结果类的捷径(我相信还有其他用途)。

所以这:

相当于这个:

所以撇开我错过元组的可能性不谈,元组的例子是一个糟糕的设计选择吗?对我来说,它似乎不那么混乱,但不像自我记录和干净。这意味着使用 type ResultType,稍后将非常清楚类的每个部分的含义,但是您需要维护额外的代码。有了它,Tuple<string, int>您将需要查找并弄清楚每个Item代表什么,但您编写和维护的代码更少。

您在此选择方面的任何经验将不胜感激。

0 投票
5 回答
167 浏览

asp.net - 设计决策

我被要求为一个小型内部公司项目在 Web 表单和 MVC 之间进行选择。我不知道MVC。我必须知道多少 MVC 才能做出决定?

注意:1. 我已经阅读了 MVC,在一定程度上我知道我必须做出的高级设计选择,但是作为开发人员,除非我在其中编写代码,否则我会感到不舒服......

另一个问题是,我如何在不知道 mvc 能够做什么的情况下对其进行规范(例如,我被告知不能像在 Web 表单中那样使用 datagrid 控件)。我确信有一种方法可以规范它 - stackoverflow 是 Jeff 在学习 MVC 时构建的 :)

编辑:自 2002 年以来,我一直在使用 ASP.NET。

0 投票
5 回答
328 浏览

c# - .Net 应用程序设计

我们正在使用以下详细信息进行申请。

1) C#.Net 上的 Web/桌面应用程序

2) 将用户活动时间戳存储为日期时间字段。

我们需要以 UTC 格式存储这个时间戳。

现在,在显示时它将被转换为用户的时区。

问题

用户可以从一个办公室飘到另一个办公室。(多个办事处都在不同的时区)。

现在,假设我们要显示用户一个月的活动。(它可能包括不同的时区)。

我们如何存储/跟踪用户时区信息?

以便它在运行时转换时间并显示正确的时间。

例如

世界标准时间

第 1 天:时间 1

第2天:时间2

世界标准时间 +1:30

第 3 天:时间 3

ETC..

你能建议如何处理这个问题。

提前致谢。

0 投票
9 回答
44912 浏览

java - 如何设计Java应用程序?

设计 Java 应用程序时要牢记的一般准则和最佳实践是什么 [从简单控制台应用程序到 J2EE 应用程序]?

你好

我最近完成了 Sun 的 Java 编程教程并练习了核心 Java(我有以前的编程经验)。现在我了解了继承,抽象,多态,封装的基础知识

现在我正在轻松编写 Java 代码,但不确定应用程序设计。这是我的主要问题:“设计”应用程序。假设我有一个任务是用 Java 创建一个应用程序,我应该从什么开始?怎么想?在开发类层次结构时,我应该遵循任何正式/非正式的指导方针吗?我真的很困惑(抽象类或接口或子类..?)。在编写代码之前,我应该先对所有东西建模吗?

对于像我这样的人来说,拥有一套通用指南/最佳实践会非常有用,我们可以在开始开发新的 Java 应用程序时遵循这些指南。

请提供一些我应该阅读或使用的指南/想法/书籍/资源/工具

在此先感谢斯科特

0 投票
9 回答
6425 浏览

iphone - 设计 iPhone iOS4 应用程序行为:在后台运行与终止应用程序

我们正在为汽车司机开发 iPhone GPS 应用程序。

您可能知道,iOS4 引入了多任务处理,因此我们的应用程序可以在后台运行 - 确实如此。这是其功能的一部分。

问题在于在 iOS4 上关闭应用程序的标准方法。这里有两种情况:

1)用户想把应用程序放到后台:

通常,在 iPhone iOS4 上,它就像按下“主页”按钮一样简单。

2)用户想要关闭应用程序(即到达目的地后):

标准 iPhone iOS4 程序如下:

  • 按“主页”按钮 - 应用程序进入后台
  • 按两次“主页”按钮 - 出现正在运行的应用程序列表
  • 点击并按住其中一个应用程序图标 - 所有图标“摇动”和“-”符号出现在每个图标上
  • 在用户想要终止的应用程序图标上点击“-”号

用户每次到达某个地方(例如,一天两次)时都必须终止我们的应用程序,以节省电池电量。如果他不这样做 - GPS 会很快耗尽所有电池电量。此外,我们不能在后台运行时禁用 GPS,因为我们需要主要应用程序功能的精确位置信息。

当然,您不能从您的应用程序中更改“主页”按钮的行为(被 AppStore 接受)。此外,我认为将预期行为更改为与 iPhone 平台上的其他应用程序完全不同的东西并不是一个好的解决方案。

你怎么看?你知道任何好的解决方案。我们有一个想法,但我还不想向你推荐任何东西。

我们的解决方案非常简单:只需在屏幕右上角显示小“x”按钮即可。点击它会终止应用程序(可能在一些确认问题之后)。

这个解决方案有一个很大的优势:它不会改变默认的系统行为——知道 iOS4 多任务使用的用户仍然可以按“主页”按钮在后台运行应用程序并以 iPhone 方式关闭它。

你怎么看?

0 投票
4 回答
1409 浏览

database - 大型数据驱动网站的架构

我知道如何创建小型数据驱动的网站,但想了解如何将它们转换为处理大型数据流。

这些问题基于一个站点,该站点的行为主要类似于堆栈溢出、craigslist 等,人们可以在其中发布内容和其他人回复,并且具有基于标签的基本搜索功能。

  1. SQL Server、Oracle 等常规关系数据库是否足够强大以支持大量数据读写?

  2. 如果我有一个托管在专用单台服务器上的网站,我一般可以期望它处理多少流量?

  3. 在创建中大型应用程序时,是否有任何一般的设计规则或问题需要考虑?

0 投票
9 回答
310 浏览

c# - 5年应用设计

我的问题不是技术性的。这更像是一种哲学,实际上取决于个人喜好。我正在设计和开发一个应用程序(Web + 桌面),这发生在我身上,想知道你们(程序员和设计师)是否曾经遇到过这个问题:

一些设计者相信应用程序可以运行 3 到 5 年,并且对它们的任何更改都会反映在它们上,而无需求助于系统核心更改。作为一名程序员,我知道事实并非如此。小的外观变化确实会发生,但通常在一两年后它们就会消失,随着时间的推移,会出现需要核心更改的更改,最终您将创建一个新的应用程序。

鉴于技术的快速变化,设计一个应用程序 5 年下来是相当荒谬的,恕我直言。好吧,我的意思不是设计,而是这个应用程序将运行 5 年的想法以及我们不需要创建新应用程序的信念,我认为这是生活在傻瓜的天堂。我的意思是,程序员同胞们,大多数具有运行流程的关键任务或基本小型应用程序通常在几年后重新制作/重新构建/重新组织/重新编码。

所以我的问题是,为什么要保持这种态度,让这个完美的应用程序可以运行十年。这真的很愚蠢,因为您知道技术每年都会发生变化。新框架、新方法、新技术将会出现,您的客户会想要它们。所以,如果你原谅我使用这句话,WTF 是重点?

我一直告诉我的设计师,无论如何,该应用程序将在几年内重新设计,试图让它从它的@ss 拍摄照明是没有意义的,因为它永远不会。没有完美的应用程序。

我希望你们能明白我的意思。小伙伴们是不是也有同感。顺便说一句,我从事软件编程业务已有大约 7 年了。如果你真的想一想,你真的认为 Facebook 会在未来 5 年保持不变吗?可以肯定的是,设计每年都会改变,以保持“时髦”,但核心每隔几年就会改变一次。我对此深信不疑。我是偏执狂还是什么?请告诉我有其他程序员跟我一样。任何人?

0 投票
2 回答
52 浏览

web-applications - 复制数据中心对加速响应有用吗?

有不同类型的数据中心,所以我想解释一下,我说的是数据中心设置,目的是更快地向地球上的某个地方提供内容。

据我了解,每个数据中心都共享对数据存储的访问权限,并且基本上只存在于世界某个地方,以防止请求通过数千英里到达主服务器。

但是,由于每个数据中心都必须保持数据与其他数据中心的同步,这是否会减慢一切以抵消将它们分布在世界不同地区的好处?

例如,必须从主服务器获取结果集 - 这与用户自己向该主服务器发出请求不一样吗?

显然不是,因为企业使用它们,所以也许有人可以解释这一点。

0 投票
2 回答
1578 浏览

model-view-controller - 具体来说,什么属于模型、视图和控制器?

我一直在学习模型-视图-控制器范式(“MVC”),但我很困惑,因为有些教程与其他教程相矛盾。

我目前对该过程的理解是这样的:

路由器/调度程序/前端控制器:

  • 尽管在“MVC”名称中没有特别提到,Router 仍然是一个非常重要的部分。正是在这里,请求从原始 URL 转换为特定的控制器。例如,将对 www.StackUnderflow.com/question/123 的请求路由到应用程序的“问题”控制器

模型:

  • 这是从某些存储源(例如数据库或 XML 文件)收集原始数据的地方。该模型充当抽象层,将Controller对特定数据的请求转换为(例如)SQL 查询,并将查询结果转换为数据对象等标准格式。

  • 例如,在上述 /browse/all 场景中:

    • 问题”控制器会询问模型“请给出问题 123 的数据”。
    • 然后模型会将其转换为“SELECT * FROM Questions WHERE Id = 123;” 并将其放入数据库
    • 数据库将向模型返回“问题”记录
    • 模型将获取记录,并将其转换为问题数据对象
    • 模型然后要求做同样的事情“SELECT * FROM Answers WHERE QuestionID = 123;” 并从结果集中创建一个 Answer 对象数组,并将其添加到 Question 对象的 answers 成员变量中。
    • 模型会将问题对象返回给“问题”控制器

控制器:

  • 这是应用程序的真正主力。除了将消息来回传递给ModelView之外,Controller还负责诸如 Authorization之类的事情和应用程序/“业务”逻辑编辑:根据答案,业务逻辑属于模型。

  • 在正在进行的示例中,控制器将负责:

    • 确保用户已登录。
    • 从 URL 确定 QuestionId。
    • 确定要使用的视图。
    • 如果需要,发送 HTTP 代码和重定向。
    • 向模型询问数据,并将所需的数据存储在成员变量中。

看法:

  • 总的来说,视图是应用程序中最简单的部分。在基本应用程序中,它主要由 HTML 模板组成。这些模板将具有占位符,用于从 Controller 的成员变量将数据插入到模板中:

例如

  • 视图还将包含格式化数据以交付给用户的方法。例如,formatAnswerList()上面的方法将从Controller获取一组答案,并在调用类似的东西时循环遍历它们,include $markupPath . "/formatAnswer.inc"这将是一个答案容器的小模板。

问题:

  • 这种对 MVC 的看法从根本上来说是正确的吗?
  • 如果没有,请仔细解释哪些组件放错了位置,它们应该放在哪里,以及它们应该如何与其他组件正确交互(如果有的话)。
  • 用多少类来描述这个?在我的示例中,有四个对象——一个用于 MVC 的三个组件,一个用于简单地存储相关数据以供传输。这是正常的,还是应该结合一些。如果有,有哪些?
0 投票
1 回答
157 浏览

iphone - 应用程序设计 - iPhone 和 Cocoa 应用程序之间的区别?

在 iPhone 开发中,您看到的每个页面都有 2 个文件、一个 nib 文件和一个视图控制器(books.nib、booksViewController.m),但在 Cocoa 应用程序中,苹果建议有 3 个文件(books.nil、books.m ,书籍视图控制器)。拥有 2 个类文件有什么意义?在与逻辑相同的文件中将属性连接到接口中的插座是一个坏主意吗?

所以保持它与 iphone 一样的 nib 文件和 ciew 控制器?