Tag: 架构

为什么比特数总是(?)是2的幂?

我们有8位,16位,32位和64位的硬件架构和操作系统。 但不是,比如42位或者69位。 为什么? 2 ^ n位是一个更好的select,还是与现有系统兼容? (一个64位寄存器可以容纳两个32位指针,或者一个32位数据单元可以容纳4个字节,显然很方便)。

编写可维护的事件驱动代码

我最近刚刚开始使用事件驱动的体系结构,来自一个非常标准的面向对象的思维模式。 我注意到的第一件事是,通过程序理解和追踪的难度似乎随着程序的规模成倍地增加。 虽然小型宠物项目很容易遵循,但感觉就像代码将迅速转向意大利面。 我明白,我对这种发展思维是陌生的,并不是我所有的面向对象的担忧都会继续下去。 在编写可维护,可理解的事件驱动代码方面是否有任何资源? 使用node.js或Twisted或Event Machine的人对此做了什么?

应用层和业务逻辑层有什么区别?

应用层和业务逻辑层有什么区别? 我理解业务层提供业务特定服务和应用层耦合业务服务,并为最终用户(Web服务,UI等)提供服务。 我对吗?

域对象,POCO和实体有什么区别?

我在印象之下他们都基本一样。 模型对象是否也是一样的? 现在,在我的架构中,我有: class Person { public string PersonId; public string Name; public string Email; public static bool IsValidName() { /* logic here */ } public static bool IsValidEmail() { /* logic here */ } } class PersonService { private PersonRepository pRepository; PersonService() { pRepository = new PersonRepository(); } public bool IsExistingEmail(string email) { //calls […]

客户端(iOS)上的核心数据caching来自服务器的数据策略

我已经编写了许多与后端进行通信的iOS应用程序。 几乎每次,我都使用HTTPcaching来caching查询,并将响应数据(JSON)parsing到Objective-C对象中。 对于这个新项目,我想知道一个核心数据方法是否合理。 这是我的想法: iOS客户端向服务器发出请求,并将对象从JSONparsing到CoreData模型。 每次我需要一个新的对象,而不是直接获取服务器,我parsingCoreData,看看我是否已经提出了这个请求。 如果该对象存在并且没有过期,则使用获取的对象。 但是,如果对象不存在或已经过期(这里将应用一些caching逻辑),我将从服务器获取对象并相应地更新CoreData。 我认为有这样的架构可以帮助以下几点:1.避免对后端不必要的查询2.允许全面支持脱机浏览(您仍然可以使用DataCore的RDBMS进行关系查询) 现在这是我的问题: 我知道这有点需要编写后端逻辑第二次(服务器+ CoreData),但这是矫枉过正? 我有估计的任何限制? 任何其他的想法?

什么是SOA(面向服务的体系结构)?

如果你愿意的话,可以叫我一个巨魔,但我很认真 – 新的SOA趋势究竟与15年前build立的客户服务架构有什么不同呢? 我一直听到SOA,但是我没有看到它和我们一直做的不一样。 早在10年前,y公司就有多个客户(以多种语言)与同一个服务交谈。 这不是XML(这是一个名为Microsoft DCOM的二进制协议),并没有通过WSDL自动发现,但是这样做是可以的,因为阅读文档同样简单。 我们的系统甚至是“开放”的,因为我们logging的数据足以让第三方与我们的服务进行交stream。 我们不是开路先锋 – 十年前我所认识的其他任何一家公司都在做同样的事情。 现在和现在看到的唯一区别是,现在互联网上有一种单一的服务,而10年前,每个客户都将托pipe他自己的服务实例。 但是,这不是一个架构问题 – 服务的实际生活对于使用该服务的任何人来说都是透明的。 那么SOA究竟是什么与我们多年来所做的不同呢? SOA是否仅仅是一个营销术语,代表了很久以前实际上已经很普遍的最佳实践? 还是我错过了一些SOA的东西,跟我们一直在做的不一样?

django多租户应用的最佳体系结构

我一直沉迷于正确/最佳的方式来创build一个基于Django的多租户应用程序。 一些解释: 应用程序可以由几个租户(tenant1,tenant2,…)使用。 所有的租户个人数据必须得到保护,防止其他租户(及其用户)的访问。 租户可以为应用程序对象创build额外的自定义字段。 当然,底层硬件限制了一个“系统”上租户的数量。 1)通过例如子域分隔每个租户,并使用底层的租户特定数据库 2)使用模型中的一些租户ID分离数据库中的租户数据 我正在考虑部署过程,系统部分(networking服务器,数据库服务器,工作节点等)的性能。 什么是最好的设置? 亲和骗子在哪里? 你怎么看?

GraphQL和微服务架构

我试图了解GraphQL最适合在微服务体系结构中使用的地方。 关于只有1个作为API网关的GraphQL模式将请求代理到目标微服务并强制响应,存在一些争议。 微服务仍然会使用REST / Thrift协议来进行通信思想。 另一种方法是每个微服务有多个GraphQL模式。 拥有一个较小的API网关服务器,将请求路由到目标微服务,包含请求的所有信息+ GraphQL查询。 第一种方法 如果将1个GraphQL模式作为API网关,则每当您更改微服务合约input/输出时都会有一个缺点,因此我们必须在API网关端相应地更改GraphQL模式。 第二种方法 如果每个微服务使用多个GraphQL模式,那么在某种意义上说是有道理的,因为GraphQL会强制执行一个模式定义,并且消费者需要尊重微服务给出的input/输出。 问题 你在哪里发现GraphQL适合devise微服务架构? 你将如何devise一个可能的GraphQL实现的API网关?

我应该为多客户端应用程序使用单个还是多个数据库设置?

我正在开发一个旨在简化公司工作stream程和项目pipe理的PHP应用程序,让我们来说一下像Basecamp和GoPlan 。 我不确定最好的方法是数据库方式。 我应该使用单个数据库并为每个表添加客户特定的列,还是应该为每个新客户创build一个数据库? 一个重要的因素是自动化:我希望它创build一个新的客户端(也许开放自己注册的可能性)是简单的。 使用一个数据库可以考虑的可能的缺点: 缺乏可扩展性 安全问题(尽pipe错误不应该在那里 ) 你对此有什么想法? 你有什么想法上述公司最有可能select什么解决scheme?

Android应用程序架构 – build议的模型是什么?

Web或桌面应用程序可能有三个或三个层,例如用户界面(UI),业务(Business),数据(Data) – Android应用程序的build议结构是什么? 你如何将课堂分组在一起,你有什么层次? 我刚刚开始Android开发(一个基于互联网的应用程序,必须响应传入的通知),并没有真正的感觉我所瞄准的结构。 build议感激。