软件系统设计指南

     

系统设计是什么? - maheshba

424 3K

在我研究生涯的早期,我曾有机会与世界上一些最优秀的系统研究人员一起研究一些非常有趣的系统设计。研究工作的乐趣之一在于研究人员(尤其是 SOSP/OSDI 社区的研究人员)在提出新颖而实用的设计方案时所.

分布式系统设计模式手册

903 25K
如果您决定确实需要分布式系统,那么您将面临一些常见的挑战: 异构性——分布式系统允许我们使用范围广泛的不同技术。问题在于我们如何在所有不同服务之间保持一致的通信。因此,重要的是要商定并采用通用标准以简.

系统设计中正向代理和反向代理的区别

452 3K

如果您正在准备系统设计面试,那么了解正向代理和反向代理之间的区别非常重要,这是系统设计中最常见的问题之一在设计复杂系统时,通常使用代理服务器来提高性能、安全性和可靠性。代理服务器位于客户端和服务器之间.

系统设计蓝图:终极指南

1155 4 5K

在这篇博文中,我们将探索基本的系统设计组件,例如 DNS、负载平衡、API 网关等,以及一个简明的备忘单,可以帮助开发人员设计不同复杂度的系统。第一节:系统设计原则1.1:模块化将系统划分为更小的、易.

每个程序员都应该学习的十大系统设计概念 - DEV

787 1

系统设计是构建复杂应用程序的软件工程师的基本技能。它需要创造性和系统地思考如何解决问题的能力,以及有效实施解决方案的技术知识。在本文中,我们将回顾每个程序员都应该学习的前 10 个系统设计概念。1. .

什么是设计思维?

672

设计思维是一种以客户为中心,从客户的需求、问题、习惯和实践出发,解决问题和设计产品的方法。对于业务分析师而言,设计思维可以证明是一种有价值的分析和设计方法,可通过以下实践开发创新解决方案: 了解用户需.

7个系统设计基础概念

930 1

任何系统设计面试肯定会要求您为您尝试构建的任何系统提出基本的高级设计。有一些组件是肯定需要的。记下这些组件:1、负载均衡器  如果没有负载均衡器来在各个节点之间分配传入请求,就不可能拥有分布式系统。这.

GoF 23种设计模式速查表

1534 5K
设计模式是针对常见软件设计问题的可重用解决方案。它们提供了一种描述和记录软件架构的方法,以及供开发人员交流软件设计的通用词汇表。 有几种类型的设计模式,包括创建模式、结构模式和行为模式。 创建模式处理.

线性思考、设计思考和系统思考三者权衡

1511 2
线性思考者、设计思考者和系统思考者走进一家酒吧……他们谈论未来的房子。 线性思考者绘制平面图。他详细介绍了卧室、厨房、浴室、休息室等。他确保每个房间都有充足的光线、暖气、正确数量的插头等。​设计思考家.

系统设计面试完整列表

1881 3K

系统设计面试完整列表:1.网络通信协议分布式系统中的机器通过网络彼此通信。需要了解的内容: - 对低级网络的基本了解 - 协议(IP、TCP、UDP、DNS和HTTP) 2.储存信息存储是每个分布式系.

Airbnb内部员工权限的访问管理系统设计

1069 3K

Airbnb 如何为我们庞大的员工、承包商和呼叫中心员工团队安全地管理权限?Airbnb 是一家建立在信任之上的公司。这种信任的一个重要部分来自保护我们的客人和房东与我们共享的数据。我们这样做的方法之.

弹性工程设计:Actor模型与微服务架构比较 - ufried

1819 1 8K
弹性有点像安全性:它有助于在某些事情没有按预期进行时不至于损失钱财。它也有一个概率成分:因为意外事件和失败只发生在一定的概率下。它也有一个间接的组成部分:如果你的IT系统过于频繁地出现故障,将会导致次.

system-design-resources:最好的系统设计资源

1270 24K

这个github陈列了一些最好的系统设计资源英文,点击标题:视频处理大规模转码视频:https ://www.egnyte.com/blog/2018/12/transcoding-how-we-se.

系统设计:百万计级别的直播技术

1340

用于直播的主要技术是 - RTMP 编码 将 RTMP 转换为不同的格式、大小、方向 将这些数据添加到 CDN 用户从 CDN 获取压缩和 ABR 编码的数据 我们还简要添加了其他功能,这将是结束讨论.

软件系统架构更像一座城市社区?

1590 2 2K

"架构 "是软件工程中非常常用的一种方法,也是非常成功的一种方法。如此成功,以至于我们把 "架构师 "作为软件世界中的一个角色。做一个架构师是一件很酷的事情!有谁记得《黑客帝国》中的 "建筑师"?是的.

大规模实时流计算的系统设计 - Kashyap

1543 1 3K
使用 Spring、Pub/Sub、Dataflow、Redis、Reentrant Lock 模式和 guava 缓存构建实时视图计数服务以处理 20k tps 规模。​系统架构对于任何现场表演,观.

五种权限系统设计- Xu

1571 1
我们如何设计权限系统?下图列出了 5 种常用方法:1. ACL(访问控制列表) ACL 是一个规则列表,用于指定允许或拒绝哪些用户访问特定资源。优点 - 易于理解。缺点——容易出错,维护成本高2. D.

什么是架构决策记录 (ADR)?

1911 1 4K

架构决策记录(ADR) 是一个记录重要架构决策及其上下文和后果的文档。架构决策(AD) 是解决重要需求的软件设计选择。架构决策日志(ADL) 是为特定项目(或组织)创建和维护的所有 ADR 的集合。架.

系统设计:API 网关

1425 2K
API Gateway 是一个 API 管理工具,位于客户端和后端服务集合之间。它是系统的单一入口点,封装了内部系统架构并提供为每个客户端量身定制的 API。它还具有其他职责,例如身份验证、监控、负载.

karanpratapsingh/system-design:系统设计课程

1533 10K

系统设计帮助我们定义满足业务需求的解决方案。这是我们在构建系统时可以做出的最早决定之一。通常必须从高层次思考,因为这些决定以后很难纠正。随着系统的发展,它还使推理和管理架构更改变得更加容易。系统设计是.

Slack系统架构简介 - jinlow

1429 4K

Slack 是最著名的工作平台和团队消息传递应用程序之一。它使分布在不同地点的团队之间的沟通更加容易。目前,它已帮助全球超过 70 万家公司改善了沟通。Slack=聊天群+65个工具集成(SMS、Go.

如何准备 2022 年的系统设计面试 - Fahim

1664 4K
对于许多软件工程师来说,系统设计面试仍然是一个神秘的挑战。大多数工程师以前从未真正在大型系统上工作过,因此必须解释如何构建一个似乎令人生畏。而且因为系统设计面试的问题可以是开放式的,所以很难知道正确的.

系统设计五步指南 - benscheer

1034 3K
系统设计对话可能非常具有挑战性。可能有很多模棱两可的地方、选项和想法——加上有限的时间和难以解决的问题。根据经验,我发现了一种通用方法,可以帮助使这些对话更有条理、更有趣、更有成效。1. 要求和目标系.

donnemartin/system-design-primer:学习如何设计大型系统、准备系统设计面试

1673 15K

学习如何设计可扩展系统将帮助您成为一名更好的工程师。系统设计是一个广泛的话题。网络上散布着大量关于系统设计原则的资源。此 repo 是一个有组织的资源集合,可帮助您学习如何大规模构建系统。点击标题进入.

如何应对系统设计面试问题? - hackpack

944 2K

在研究数据结构/算法 (DSA) 面试问题时,有一个清晰的剧本:掌握概念并始终如一地实践以应用这些知识。这种做法很容易,因为 LeetCode、HackerRank 和 AlgoExpert 等网站上.

思考工具之加强反馈循环 | Untools

1156

了解指数(复利)变化背后的力量。只要环路内的行为或事件相互加强,就会发现强化反馈环路。这些环路放大了过程的效果。这是一个口号,但你可以在你周围找到现实世界的例子。复利是一个非常常见的例子。你在银行的钱.

思考工具之平衡反馈回路 | Untools

1354

平衡反馈回路是一种机制,它抵制在一个方向的进一步变化。它以反方向的变化来对抗一个方向的变化。它试图稳定一个系统。通常在系统中,你会发现这种平衡环路与强化反馈环路在一起,强化反馈环路的作用正好相反,会产.

产品领域MVP、MMP和MLP概念区别

3978

最小可行产品 (MVP:Minimum Viable Product) 、最小可销售产品 (MMP:Minimum Marketable Product) 与最小可爱产品 (MLP:Minimum L.

架构就是上下文 - Eltjo

963 1 2K

Eltjo Poort 是 CGI 荷兰的架构实践负责人,在软件行业拥有超过 30 年的经验。Eltjo 首先解释了架构上下文和业务驱动程序的重要性,它们可以帮助架构师理解不同的权衡和选项,以便做出正.

系统设计:如何设计Youtube?

2142 2 7K

Youtube 是世界上最受欢迎的视频分享网站之一。该服务的用户可以上传、查看、分享、评价和报告视频以及添加对视频的评论。 系统的要求和目标为了这个练习,我们计划设计一个更简单的 Youtube 版本.