问题标签 [architecture]

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 回答
1308 浏览

sql - 跨应用程序重用 SQL 存储过程

我很好奇人们在许多应用程序都可以访问的数据库中使用存储过程的方法。具体来说,您是否倾向于为每个应用程序保留不同的存储过程集,您尝试使用共享集,还是混合使用?

一方面,当发生模型更改或类似的事情时,SP 的重用允许更少的更改,并且理想情况下更少的维护。另一方面,如果应用程序的需求不同,对一个应用程序的存储过程的更改可能会破坏其他应用程序。我应该注意到,在我们的环境中,每个应用程序都有自己的开发团队,他们之间的沟通很差。数据团队虽然有更好的沟通,但主要负责编写存储过程。

谢谢!

0 投票
4 回答
788 浏览

java - 应该如何在架构级别计划异常?

是否有任何好的资源可以从架构的角度规划如何使用异常?(或者直接在这里提供你的建议。)在我工作过的项目中,我发现一些常见的异常被一遍又一遍地使用,并且往往失去了它们的意义。来自:http: //jamesjava.blogspot.com/2007/10/exception-plan.html

0 投票
2 回答
199 浏览

architecture - 使用 ORM 时,如何安全地跨层发送加载的实体

当系统有 N 层时,并且使用 ORM 时,如何跨层发送加载的实体?

你使用 DTO 吗?

当不使用 DTO 直接发送实体时,如何防止未初始化的延迟加载关系错误?

注意:这不是“应该使用 N 层吗?” 问题。我假设系统已经有 N 层。

0 投票
15 回答
8084 浏览

architecture - 使用短路评估的好处

在大多数语言中,b不会被评估,因为a它是假的,所以a && b不可能是真的。我的问题是,就架构而言,短路不会更慢吗?在管道中,您是否只是在等待获得 a 的结果以确定是否应评估 b 时停止?做嵌套ifs会更好吗?这甚至有帮助吗?

另外,有谁知道短路评估通常被称为什么?这个问题是在我发现我的编程朋友从未听说过短路评估并表示它不常见,在许多语言中都没有,并且在管道中效率低下之后出现的。最后一个我不确定,所以请教各位!

好的,我想一个不同的例子来解释我的朋友可能来自哪里。他认为,由于并行评估如下语句:

将使系统崩溃,没有短路的架构(因此不允许上述语句)在处理如下语句时会更快:

因为如果它不能并行执行 (a),它就不能并行执行 (b)。在这种情况下,允许短路的语言比不允许短路的语言慢。

我不知道这是不是真的。

谢谢

0 投票
7 回答
14020 浏览

architecture - 函数式编程架构

我熟悉面向对象的体系结构,包括使用设计模式和类图进行可视化,并且我知道面向服务的体系结构及其合同和协议绑定,但是对于用函数式编程语言?

我知道 FP 已用于大中型项目。保罗格雷厄姆写了雅虎的第一个化身!存储在 Common Lisp 中。一些 lisp 开发系统很复杂。用函数式语言编写的人工智能和金融系统可以变得相当大。它们都至少有某种固有的架构,不过,我想知道它们是否有任何共同点?

基于表达式评估的架构是什么样的?FP 架构是否更具可组合性?

更新: Kyle 提醒我SICP是这个主题的一个很好的资源。

更新 2:我找到了一篇关于这个主题的好帖子: 函数式编程如何影响你的代码结构?

0 投票
15 回答
21462 浏览

c++ - 函数调用的成本是多少?

相比

  • 简单的内存访问
  • 磁盘访问
  • 另一台计算机上的内存访问(在同一网络上)
  • 另一台计算机上的磁盘访问(在同一网络上)

在 Windows 上的 C++ 中。

0 投票
4 回答
638 浏览

linq-to-sql - 使用 linq to sql 开发良好的网站架构?

有人发现使用 linq to sql 的良好网站架构吗?任何帮助都会非常有帮助!

0 投票
1 回答
332 浏览

design-patterns - 设计思考——核心控制逻辑和渲染层

我只是想看看我是否可以对我目前正在做的一些工作的设计有你的想法。

这是目前的情况 - 基本上:

  • 我正在为我们的应用程序开发一系列控件。
  • 其中一些可用于 WinForms 和 ASP.NET Web 应用程序。
  • 我一直在努力改进我的代码的测试和可测试性。

所以,这就是我所做的:

  • 在没有 UI 概念的类中创建核心控制逻辑。它只是在有关它的事情发生变化时引发事件。所有数据都存储为需要与其他对象区分开来的自定义类型对象(例如,我有一个PagingControl它拥有的地方SelectedPagePageNumber项目)。
  • 然后我创建了一个抽象类作为渲染“引擎”的接口。这可确保引擎处理使用(并可能添加)到核心逻辑的任何自定义类型。按照上面的例子,它包含一个抽象方法RenderSelectedPage
  • 然后我创建了抽象渲染引擎的具体实现(例如ConsoleRenderingEngineHtmlRenderingEngine等等)。然后,这会处理这些方法并将它们呈现给它们各自的 UI/输出。

我发现这种方法有以下优点和缺点:

专业人士

  • 有用。很好,它很容易实现一个新的渲染机制,你所做的就是子类化抽象引擎并渲染输出(它将所需的引用传递给你)。
  • 它确实将 UI 与核心代码分开,使其更容易测试
  • 显然,由于核心/渲染逻辑的封装,问题出现时很明显。

    骗局

  • 可能看起来令人困惑/臃肿。尽管每个类中没有大量代码,但有 3x 个类可以将其渲染到 1 个输出(1x 核心,1x 接口,1x 渲染器)。但是,当创建 WinForms/WebForms 控件时,它也意味着另一个类(因为需要 sublcasControl以及AbstractRenderingEngine)。

...好吧,这是我真正能想到的唯一“骗局”,也是这个问题的主要原因^_^

所以,

你对这个“模式”有什么看法?你会如何改变/改进它?


这个问题可能会随着我的更多想法而更新,或者可能需要澄清(我知道这是一个沉重的阅读!)。


更新

谢谢你们的回答,你说MVP很有趣,我以为我在某个地方看到过这样的东西,但我一生都记不起它是什么了!一看到“MVP”,我就想“该死”。:D

谢谢你们的回应。我会更多地研究 MVP,看看我是否可以进一步改进我所拥有的东西。

0 投票
2 回答
196 浏览

.net - 文档/视图或复合应用程序架构有哪些好的资源?

最近我一直在研究相对面向数据的应用程序。一般来说,他们往往是由以奇怪方式相关的类表示的数据的编辑器。我一直在通过UserControl为每种类型的对象设置一个来处理它,并且随着选择的更改,程序会为该对象显示适当的编辑器。

我为此制作的“框架”感觉笨重和凌乱。一般来说,我有一个两窗格的界面,左侧是“项目选择”控件,右侧是“工作区”。UI 必须通过确定UserControl要显示的内容来响应项目选择的大部分工作,并实施诸如撤消和询问用户是否要在更改项目之前保存数据等行为可能会变得混乱。这篇文章的灵感来自于我正在与一位同事一起开发的一个很好的“让我们的构建过程更容易”的应用程序,但它真的无法控制,以至于精心设计的重写可能会比当前代码完成的速度更快。 .

通过阅读一些 C++ 书籍,我对文档/视图架构有了初步的了解。我知道 .NET 中更现代的对应物可能是 Composite UI Application 块。问题是除了这些主题的快速演练或操作指南外,我从未见过任何东西。从来不是从“你应该如何为此设计一个应用程序”的观点,而是从“把这个粘贴到应用程序中,你就会明白!”的观点。我花了一两个小时来研究 CAB 文档,但这让我有些困惑。我不喜欢 CAB 主要是因为我很好奇事情是如何在幕后工作的,我想如果在我开始使用框架之前能够实现类似模式的简单版本,我会更感激它。

我真正认为我需要的是一个专注于这个问题的网站或书籍。我似乎没有得到的重要部分是如何将关注点分离到适当的位置;我习惯于用几种方法来设计我的数据类来处理数据,这似乎是控制器对象的工作?您认为哪些资料对介绍该主题有用?我看过很多文章都画了这样漂亮的图表我对这些架构的工作原理有了高级的了解。我认为我从来没有找到合适的资源来教我低级的“如何实现它”部分。

0 投票
7 回答
54710 浏览

asp.net - ASP.NET MVC & Web Services

Does adding a Web Service to my ASP.NET MVC project break the whole concept of MVC?

That Web Service (WCF) depends on the Model layer from my MVC project to communicate with the back-end (so it looks to me like it needs to be part of the MVC solution).

Should I add this to the Controller or Model layer?