首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >推荐一个标星46k系统设计指南开源项目

推荐一个标星46k系统设计指南开源项目

作者头像
永恒君
发布2023-12-13 14:02:41
发布2023-12-13 14:02:41
4650
举报
文章被收录于专栏:开源小分队开源小分队
大家好,我是热爱开源的了不起!

我们在面试的时候,可能会被问到一些关于系统设计的问题,对于没有做过系统设计的朋友来说,是件挺痛苦的事情,回答的不好这次面试可能就凉凉了,最近了不起在逛开源社区发现一个很有意思的开源项目:system-design-101,是关于系统设计的,目前在 GitHub 上标星 46k+。

项目介绍

system-design-101 用图片和简单文字让你容易理解复杂系统的设计原则,对我们面试和日常工作都是有很大帮助的。

system-design-101 包含了通信协议、数据库、缓存、微服务架构、支付系统、DevOps、CI/CD、云服务、操作系统、安全、真实案例等等。

为什么要学习系统设计

最常见的有两种原因:

  • 在准备面试,面试官会问到系统设计问题;
  • 你想成为架构师,需要储备系统设计的知识;

如果想一直从事程序开发这个职业,我们就要学习一些系统设计,了解一些中间件原理,了解架构原理,不能只停留在CURD上,毕竟现在是一个很卷的时代,不然就会被淘汰!

项目展示

了不起在这里展示一些模块,更多内容需要各位朋友去下载源码学习。

如何提高 API 性能?

我们在写接口的时候,需要考虑怎么能让接口响应更快,提高用户体验。

system-design-101 给出了一些解决方案:

CAP定理

CAP 定理是分布式系统中的重要理论,在一个分布式系统中最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项,不能同时满足这三项。

缓存策略

缓存是项目中提高程序性能的常用手段,也是面试中经常问到的问题,比如缓存怎么使用,缓存和数据库一致性解决方案。

微服务最佳实践

现在是微服务的天下,如果我们从0到1开发一个项目,会拆分服务吗?面试官可能会问,你们项目服务是怎么拆分的?system-design-101 给出最佳的实践方案:

如何存储密码

密码怎样存储更安全,肯定不能是明文存储,使用什么算法效率更高?

项目地址

代码语言:javascript
复制
https://github.com/ByteByteGoHq/system-design-101

总结

system-design-101 用通俗易懂的语言介绍怎样进行系统设计,几乎涵盖了开发人员可能接触到的不同业务场景。未来的架构师们赶快去学习吧~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-12-12,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 项目介绍
  • 为什么要学习系统设计
  • 项目展示
    • 如何提高 API 性能?
    • CAP定理
    • 缓存策略
    • 微服务最佳实践
    • 如何存储密码
  • 项目地址
  • 总结
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档