Questions tagged «architecture»

体系结构包含解决方案的流程,工件和高级结构。

16
您何时真正被迫使用UUID作为设计的一部分?
我真的不明白UUID的意义。我知道发生碰撞的可能性实际上是nil,但实际上nil几乎不可能。 有人可以举一个例子,您除了使用UUID别无选择。从我所看到的所有用途中,我可以看到没有UUID的替代设计。当然,设计可能会稍微复杂一些,但至少它不会有非零的失败概率。 对我来说,UUID闻起来像全局变量。全局变量可以通过多种方式来简化设计,但这只是懒惰的设计。
123 architecture  uuid 

6
React / Redux和多语言(国际化)应用程序-体系结构
我正在构建一个应用程序,它将需要提供多种语言和区域设置。 我的问题不是纯粹的技术问题,而是关于架构以及人们在生产中实际用来解决此问题的模式。我在那里找不到任何“食谱”,所以我转向了我最喜欢的问答网站:) 这是我的要求(它们实际上是“标准”): 用户可以选择语言(平凡) 更改语言后,界面应自动翻译成新选择的语言 我现在不太担心格式化数字,日期等的问题,我想要一个简单的解决方案来只翻译字符串 这是我可以考虑的可能解决方案: 每个组件都独立处理翻译 这意味着每个组件在其旁边都有例如一组en.json,fr.json等文件以及转换后的字符串。还有一个帮助程序功能,可帮助您根据所选语言从这些值中读取值。 Pro:更尊重React理念,每个组件都是“独立的” 缺点:您无法将所有翻译集中在一个文件中(例如,让其他人添加新语言) 缺点:您仍然需要在每个血腥部分及其子女中传递当前语言作为道具 每个组成部分都通过道具接收翻译 所以他们不知道当前的语言,他们只是拿一个字符串列表作为道具,恰好匹配当前的语言 优点:由于这些字符串是“自上而下”的,因此可以将它们集中在某个位置 缺点:现在每个组件都已绑定到翻译系统中,您不能只是重复使用一个组件,而是每次都需要指定正确的字符串 您绕过道具了一下,可能是使用情境啄向下传递当前语言 优点:几乎是透明的,不必始终通过道具传递当前语言和/或翻译 缺点:使用起来很麻烦 如果您还有其他想法,请说! 你怎么做呢?

5
设计模式和建筑模式之间有什么区别?
当我们在互联网上阅读有关设计模式时,我们注意到有3类: 创造力的 结构性 行为的 但是,当我们创建软件的体系结构时,我们会考虑MVP,MVC或MVVM。 例如,在创建模式中,我找到了单例模式,但我还在MPV中使用了单例。 所以我的问题是:设计模式是否涵盖了产品的所有结构? 如果是,那么单例如何成为设计模式?因为我可以在应用程序中的任何地方使用它。基本上,仅在内存中一次创建一个实例是受限制的,但是这个概念是否定义了软件的设计方式? 如果不是,那么三类模式中的MVP,MVC和MVVM在哪里?软件设计和体系结构之间有什么区别?


1
Elixir / erlang在哪里适合微服务方法?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 改善这个问题 最近,我一直在使用docker compose做一些实验,以部署多个协作微服务。我可以看到微服务提供的许多好处,并且现在有了一个很好的工具集来管理它们,我认为跳入微服务旅行并不难。 但是,我也一直在尝试Elixir,我非常喜欢它本身提供的好处。鉴于它鼓励将代码打包到多个解耦的应用程序中,并支持热代码升级,您如何将docker与elixir(或erlang)混合使用? 例如,如果我要使用docker,因为它提供了dev-prod奇偶校验,那么elixir怎么适合呢?鉴于Docker容器是不可变的,我将失去进行热代码升级的能力,对吗?蓝色/绿色部署或Canary版本又如何呢? 我的意思是,我可以用Elixir编写微服务,并像使用其他任何语言编写微服务一样使用。多语制仍然是微服务的好处之一,但是我没有得到使用OTP平台的全部好处,我猜想纯协作式erlang应用程序比使用中间队列在以不同(或不同)语言编写的微服务之间进行通信的方式更为优化。


14
单页JavaScript Web应用程序的体系结构?
如何在客户端上构建复杂的单页JS Web应用程序?具体来说,我很好奇如何根据应用程序的模型对象,UI组件,任何控制器以及处理服务器持久性的对象来干净地构建应用程序。 起初,MVC似乎很合适。但是,由于UI组件嵌套在不同的深度(每个组件都有自己的作用于模型数据/对模型数据进行响应的方式,并且每个组件都会生成它们自己可能会或可能不会直接处理的事件),因此似乎无法完全应用MVC。(但如果不是这种情况,请纠正我。) - (此问题提出了关于使用ajax的两个建议,显然,除了最简单的一页应用程序之外,其他任何东西都需要使用ajax。)

11
“解决方案架构师”和“应用程序架构师”之间有什么区别?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 据我所知,Solutions Architect只是Applications Architect的一个不同的“营销”术语。那是正确的还是角色实际上有所不同?如果是这样,怎么办? 是的,我已经在StackOverflow和Google上进行了搜索。

9
不使用存储库模式,请按原样使用(EF)ORM
我一直使用存储库模式,但是对于我的最新项目,我想看看是否可以完美使用它以及实现“工作单元”。我越开始挖掘,就会开始问自己一个问题:“我真的需要吗?” 现在,这一切都从对Stackoverflow的一些评论开始,并追溯到Ayende Rahien在他的博客上的帖子,其中包括2个具体的, 存储库是新的单例 询问没有存储库的阿连德生活,他们值得生活 这可能永远被谈论,并且取决于不同的应用程序。我想知道什么 这种方法是否适合实体框架项目? 使用这种方法是业务逻辑仍在服务层中,还是扩展方法(如下所述,我知道扩展方法是使用NHib会话)? 使用扩展方法很容易做到。干净,简单且可重复使用。 public static IEnumerable GetAll( this ISession instance, Expression<Func<T, bool>> where) where T : class { return instance.QueryOver().Where(where).List(); } 使用这种方法并Ninject作为DI,我是否需要制作Context一个接口并将其注入控制器中?

10
为什么堆栈通常会向下生长?
我知道在我个人熟悉的体系结构(x86、6502等)中,堆栈通常会向下增长(即,推入堆栈的每个项目都会导致SP递减,而不是递增的SP)。 我想知道这样做的历史依据。我知道在统一的地址空间中,在数据段的另一端(例如)启动堆栈很方便(因此,如果两侧在中间发生碰撞,则只有一个问题)。但是,为什么堆栈通常会占据顶部呢?特别是考虑到这与“概念”模型相反的情况? (请注意,在6502架构中,即使堆栈绑定到单个256字节页面,堆栈也向下增长,并且这个方向选择似乎是任意的。)

3
Spring BeanPostProcessor到底如何工作?
我正在研究Spring Core认证,我对Spring如何处理bean的生命周期,尤其是bean后处理器有疑问。 所以我有这个架构: 我很清楚这是什么意思: 在“ 装入Bean定义”阶段执行以下步骤: 的@Configuration类被处理和/或@Components被扫描和/或XML文件进行解析。 Bean定义已添加到BeanFactory(每个索引均在其ID下进行索引) 调用特殊的BeanFactoryPostProcessor bean时,它可以修改任何bean的定义(例如,用于属性-占位符值的替换)。 然后,在Bean创建阶段执行以下步骤: 默认情况下,每个Bean都急切地实例化(以正确的顺序创建并注入了依赖项)。 依赖项注入后,每个bean都会进入后期处理阶段,在该阶段中可能会进行进一步的配置和初始化。 在后期处理之后,bean被完全初始化并可以使用(通过其id进行跟踪,直到上下文被销毁) 好的,这对我来说很清楚,我也知道有两种类型的Bean后处理器: 初始化程序:如果有指示,则初始化Bean(即@PostConstruct)。 和所有其余的:其允许额外的配置和其之前或初始化步骤之后运行 我张贴这张幻灯片: 所以对我来说很清楚初始化器 bean后处理器是什么(它们是用@PostContruct注释注释的方法,这些方法在setter方法之后立即自动调用(因此在依赖项注入之后),我知道我可以使用执行一些初始化批处理(如上例中那样填充缓存)。 但是,到底哪个代表另一个bean后处理器呢?当我们说这些步骤在初始化阶段之前或之后执行时,这是什么意思? 因此,实例化了我的bean并注入了它的依赖项,因此初始化阶段完成了(通过执行@PostContruct带注释的方法)。我们说在初始化阶段之前使用Bean后处理器是什么意思?这意味着它发生在@PostContruct注释方法执行之前?这是否意味着它可能发生在依赖项注入之前(在调用setter方法之前)? 当我们说它是在初始化步骤之后执行时,我们到底是什么意思。这意味着它会在执行@PostContruct带注释的方法之后发生,还是什么? 我可以很容易地想到为什么我需要一个@PostContruct带注释的方法,但是我无法弄清楚另一种bean后处理器的典型示例,您能告诉我一些什么时候使用的典型示例吗?

12
iOS应用提交:缺少64位支持
我昨天发送了一个应用进行审核,没有问题。然后,我意识到我有一点点要做(将地图的最大缩放级别从19更改为18,别无其他),所以我从iTunes Connect中删除了二进制文件,然后尝试重新提交。 现在我有这个警告: 我不明白为什么,因为我的架构是: 架构:armv7 有效架构:armv6,armv7,armv7s,arm64 该应用程序在模拟器中运行良好。如果我尝试按照警告中的建议使用标准体系结构(armv7,arm64),则该应用程序将无法构建,并且我得到: 架构x86_64的未定义符号 ld:找不到架构x86_64的符号 我正在使用lib route-me,并且设置了相同的体系结构设置。

3
胖模型和瘦控制器听起来像是在创建上帝模型。
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我读过很多博客,这些博客提倡胖模型和瘦控制器方法,尤其是。Rails阵营。结果,路由器基本上只是想找出要在哪个控制器上调用的方法,而所有控制器方法都需要在模型上调用相应的方法,然后调出视图。所以我在这里有两个我不明白的问题: 除了仅基于路由在类似于上帝的模型上调用方法外,控制器和路由器实际上并没有执行很多不同的任务。 模型做得太多了。发送电子邮件,创建关系,删除和修改其他模型,排队任务等。基本上,现在您有了像神一样的对象,它们应该执行与建模和数据处理有关或不涉及的一切事情。 您在哪里划界线?这不只是落入上帝的榜样吗?

14
为什么应将域实体与表示层隔离?
域驱动设计的一部分似乎没有很多细节,它是如何以及为什么应将域模型与界面隔离的。我试图说服我的同事,这是一个好习惯,但是我似乎并没有取得太大进展。 他们在表示层和界面层中随便使用领域实体。当我向他们争辩说他们应该使用显示模型或DTO来将Domain层与界面层隔离时,他们反驳说在这样做时他们看不到商业价值,因为现在您需要维护一个UI对象以及原始域对象。 所以我在寻找一些具体的理由来支持这一点。特别: 为什么我们不应该在表示层中使用域对象? (如果答案很明显,那就是“解耦”,那么请解释一下为什么在这种情况下如此重要) 我们是否应该使用其他对象或构造将我们的域对象与接口隔离?

15
在编写任何代码之前,您如何计划应用程序的体系结构?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 改善这个问题 我遇到的一件事是在编写任何代码之前先规划应用程序的体系结构。 我并不是说要收集要求以缩小应用程序的工作范围,而是要有效地思考一种布局总体类,数据和流结构的好方法,并对这些想法进行迭代,以便我有一个可靠的计划。在打开IDE之前,请牢记操作。现在,只需打开IDE,创建一个空白项目,开始编写位和鲍勃并让设计从那里“长出来”就可以了。 我收集到UML是执行此操作的一种方法,但是我没有使用它的经验,因此看起来有点模糊。 在编写任何代码之前,您如何计划应用程序的体系结构?如果要采用UML,您能为小型应用程序开发人员推荐一个简洁实用的介绍吗? 感谢您的投入。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.