问题标签 [infrastructure]

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 投票
17 回答
14589 浏览

architecture - 过度工程的具体症状

我最近发现自己处于解释我写给我公司喜欢雇用的两名​​候选人的(内部)应用程序的位置,以协助维护和添加次要功能。

这是我编写的第一个“生产”应用程序,它有 45k LOC,我花了将近两年的时间“单独”开发它。我还很年轻(18 岁),从头开始编写应用程序,同时被签约为一名离开公司的前开发人员的替身。在设计这种规模的应用程序方面缺乏经验,我尝试使用常见的架构和设计模式。

今天我知道我做了一些严重的过度工程,例如使用断开连接的更改跟踪架构而不是所选 ORM 已经实现的工作单元模式。我可能永远不必去“真正的”三层。

两位候选人在相关平台的内部应用程序开发方面都有 10 年以上的背景。作为他们的一半年龄并且没有什么经验,我确实尊重他们的意见。当我向他们解释应用程序架构时,评论大致如下:

  • 天哪,没有人会付钱让我做那样的事情,我必须把事情做好
  • 坚持框架的功能,不要使用花哨的库/技术
  • 不要包装框架代码。在一个团队中,无论如何,每个人都会编写自己的包装代码。
  • 您使用的是 .NET 3.5?好吧,我们使用的是 2.0。
  • 那些 LINQ 的东西给我带来了什么?所有这些查询组合和投影似乎都太复杂了。

现在我问自己:
我是一名建筑宇航员吗?我怎么知道我在建筑方面走得太远了?过度工程的常见症状是什么?

0 投票
1 回答
385 浏览

ruby-on-rails - 专业 Rails 托管服务的优势和缺陷是什么?

希望我的问题不会太宽泛。因此,我尝试构建我的问题,以免对这个问题的问题得到太相似的答案。

目前我已经在 Linode 上部署了我的 rails 应用程序。服务很好,价格合理。但是不时有那些管理工作的人。没有这些我也能活。最近我开始对 Heroku 或 EngineYard 等其他 Rails 托管服务感兴趣,而且还有其他一些服务。他们可以提供的服务在我看来很吸引人。他们承诺将我们从管理事务中解放出来。好的,我不能选择数据库,但我可以拥有一个像数据库一样的数据库,或者可以拥有无​​模式的数据库或集群。如果我真的不想关心细节,只是想要提供我的服务所必需的服务,那么我不应该打扰。但是.. 我正在寻找但可能有一些事情需要考虑。我发现为 rails 应用程序(或任何应用程序)选择正确的基础架构至关重要。在选择正确的基础架构或基础架构提供商时,我想到了这些事情:

  • 部署简单
  • 定价- 我在这里看到两个巨大的模型。处理能力后付费(EngineYard)还是机器配置付费(Heroku)?什么时候,哪个模型更适用?
  • 迁移- 将 rails 应用程序和数据从一个提供商迁移到另一个提供商有多简单。
  • 附加服务——比如 Heroku 提供 WebSolr,或者监控 rails 应用程序。这些事情可能是至关重要的,或者至少是有用的。

当我想选择我的私人、租用或混合的基础设施时,哪些事情是必要的?这些关于rails托管服务的东西有什么比较吗?是否有任何资源可以学习如何更好地决定任何设计,哪种模型最适用?

希望我的问题不要提出太宽泛,并且可以在合理的范围内在这个论坛上得到回答。我想找到如何设计私人基础设施、VPS 和 Rails 托管服务的正确组合的方法。感谢您的建议。

0 投票
1 回答
4661 浏览

repository - 领域驱动设计 - 作为存储库或服务的外部数据 API

在使用域驱动设计开发的博客应用程序中,“帖子”实体具有相关的标签实体集合。

在创建帖子(例如从 UI 填充对象)时,我想通过 REST 调用第三方 API,该 API 获取帖子的内容并提取语义标签(链接文本)以进行关联。

主要问题:设计这个的最佳方法是什么......

最好的设计是让 Post 实体调用域服务,例如 PostServices.GetTags(Postcontent) 传递其内容并检索标签列表。?

** PostServices.GetTags 将通过进一步的包装类与 REST API 连接。

还是应该将第三方 API 包装为存储库?

函数 Post.GenerateTags() 是否应该根本不存在于域实体中?

进一步的问题

1:我还读到,让域实体与域服务对话并不是一个好习惯。这是真的?

2:是否可以通过工厂创建方式获取PostServices域服务的引用。例如..

IPostService PostService = ServiceUtil.GetPostService(); 返回 PostService.GetTags(Post.content);

3 : 将域服务与第三方 api 耦合是否可以接受?

4:领域实体是否应该只知道如何处理通过调用 REST API 的应用层接收到的标签。

慢慢地试图让我的头脑围绕 DDD,但是我似乎找不到任何关于如何实现这种事情的例子。

0 投票
2 回答
203 浏览

svn - 用于桌面软件开发的服务器基础架构是什么?

我在一家初创公司工作,致力于开发一种新的数字内容创建桌面工具。我们现在正在为多个地点的一个小型软件开发团队建立一个基础设施。

我们正在研究建立一个通用服务器,它将存储所有代码,以及主机版本控制(Subversion)、构建系统、内部文档、Bugzilla 等。我们将需要管理权限并希望编译、进行夜间构建等。

1.) 为我们的场所购买服务器 2.) 为数据中心的服务器安排托管托管,或 3.) 其他方式的优缺点是什么。我们仍在引导,显然非常关注成本、安全性和备份(使用我们自己的本地服务器,我们需要一个单独的备份解决方案)。

提前感谢您的见解!

0 投票
1 回答
243 浏览

python - “新闻提要”的基础设施

我想为我们网站的用户提供类似新闻提要的功能。当用户登录时,他会看到网站各个区域的最新更新列表。

恐怕这将难以扩展。

有哪些网络/数据库拓扑可以支持可扩展的基础架构,而无需拥有大量相同数据的副本?(我想这样做,如果更新了一条数据,每个用户的提要也会实时更新)。

感谢您的帮助和建议。

0 投票
2 回答
1612 浏览

infrastructure - 微软 PKI 还是 PKI 供应商?

我有一个与 PKI 基础结构相关的问题,组织应该使用 Microsoft PKI 还是独立的独立 PKI 基础结构?如果我使用 Microsoft PKI Infrastructure,是否有任何许可限制?或者我应该从提供 PKI TSA 和 SP(签名证明)基础设施的供应商那里获得独立的 PKI 基础设施。

0 投票
3 回答
1322 浏览

mysql - 云数据库服务延迟/性能

我正在运行一个交通繁忙的网站,我们的服务器开始达到极限,目前整个 LAMP 堆栈都在一个盒子上(不理想)。

我想将数据库移动到它自己的盒子或云服务上,但根据我之前的经验,将数据库从与网络服务器相同的盒子移出会增加读取延迟,从而大大降低网站速度。

是否使用云服务来解决这个问题,因为据我所知,它的情况基本相同(将其移动到我控制的单独盒子上)?在这种情况下,为什么目前基于云的数据库服务如此受欢迎?

基于云的数据库服务是否如此之快以至于读取延迟如此之低以至于几乎就像将它放在同一个数据中心的同一个盒子上一样?

0 投票
1 回答
130 浏览

web-applications - 我的网站视频上传速度比其他网站慢?

我已经将同一个文件上传到两个不同的站点,它有 30% 的时差,影响这个的主要因素是什么?我应该怎么做才能提高我的网站上传速度?

0 投票
1 回答
1059 浏览

api - 构建有效的 REST API 身份验证

我已经创建了一个 Web 应用程序,现在我想构建一些 REST API 以使其可由第三方开发人员进行编程。然后,我想用一些流行的语言(JavaScript、PHP、Ruby 等)构建一些客户端库,通过避免他们手动解析每个请求的 JSON 响应,使开发人员能够舒适地使用我的服务。

我以前从未构建过 API 基础架构,所以我有以下问题。我想跟踪第三方开发人员调用的 API 方法的使用情况。每个开发人员在使用 API 之前都必须进行注册,因此我想将每个请求与注册的开发人员相关联(因此,设置一些特定的使用限制等)。

我想为每个开发人员创建一个唯一的 api 密钥,他可以在他的所有应用程序中使用它来验证请求。但后来我意识到,如果他决定使用我的 javascript 包装器,那么恶意用户可以查看客户端应用程序页面的源代码并获取他的 api 密钥。因此,我决定最好为每个应用程序创建一个唯一的 api 密钥,并与托管客户端应用程序的域相关联。因此,即使用户抓住了其他人的密钥,那么它在最初注册的域之外也是无用的。但后来我想:移动应用程序呢?如果不是从网站拨打电话会发生什么?如果没有域或 IP 地址不是静态的,我如何通过其域验证密钥?

有小费吗?

谢谢!

0 投票
1 回答
1032 浏览

social-networking - Stackoverflow、Twitter、LinkedIn 和 Facebook 使用的基础架构是什么

我很好奇,以下网站使用的基础架构是什么:Stackoverflow、Twitter、LinkedIn 和 Facebook?(或任何其他社交网络)