![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
系统设计
文章平均质量分 67
用于更新一些常见的系统设计练习题
会说话的皮卡丘
当初耿耿于怀的东西现在也没法放下
展开
-
领域驱动设计(Domain-Driven Design, DDD)
领域驱动设计(Domain Driven Design,简称DDD)是一种面向对象软件开发方法,它强调将软件系统的设计和实现过程与业务领域紧密结合,通过深入理解和建模业务领域,从而达到高内聚、低耦合的目的。在这个例子中,我们可以将书籍、借书人、图书馆等抽象为领域模型中的实体,把借书和还书等业务流程抽象为领域模型中的业务规则。通过这样的设计,我们能够更好地理解和建模业务领域,将业务逻辑和业务流程从代码中分离出来,从而实现高内聚、低耦合的目的,提高软件质量和可维护性。原创 2023-03-25 22:16:09 · 1894 阅读 · 0 评论 -
深入理解redis
如图,redis1.0也就只有几千行,代码很少,主要有上图的几个包组成,redis.c ,redis-cli.c(redis-client以及redis-server) ae.c(ae事件库),anet.c(ae网络库),zmalloc.c(内存库)redisclient主要有四个组成部分,fd文件描述符,db是一个指向redisDBList的指针,clients是指向redisClientList的指针,最后是最后一个最核心的事件循环,是指向AeEventLoop的指针。下图是redis的数据结构部分。原创 2022-09-03 16:09:04 · 1466 阅读 · 0 评论 -
系统设计的核心思想
之前做过几道系统设计的题目,当时能理解思想,但是一直没有一套完整的pipeline,因此想要总结一下这一套pipeline,训练自己的思维能力。3.将设计的系统的各个模块展示出来,可以不要具体细节,但是要有宏观架构。第一遍读一遍题,把自己的大体思路确定下来,有疑问直接问面试官。写的有点简陋,先占个坑,后续会将自己学习的心得慢慢补充的。2.进行粗略的使用计算。原创 2022-08-21 23:18:27 · 299 阅读 · 0 评论 -
系统设计学习(三)Design Amazon‘s sales rank by category feature
老规矩,先看题那么接下来的第一步是进行计算,理清楚,如果要进行粗略的使用情况的计算的话首先看下每笔交易要用到多大的存储空间creared_at 5bytesproduct_at 8bytescategory_id 4bytesseller_id 8bytesbuyer_id 8bytesquantity 4bytestotal_price 5bytestotal 40bytes因为他说一个月1billion次交易,所以每个月要花费40gb去进行存储这些交易国恒如果三年的话需要1.44t原创 2022-06-12 08:25:39 · 253 阅读 · 0 评论 -
系统设计学习(二)Design a key-value cache to save the results of the most recent web server queries
老规矩先看题计算:缓存存储的键的有序列表分别为 query, value: resultsquery - 50 bytestitle - 20 bytessnippet - 200 bytesTotal: 270 bytes也就是说单条缓存大概需要270bytes如果10 billion的用户每条数据都是独一无二的话可以计算得到一个月的存储消耗为2.7t4000 requests per second = 01 billion requests per month也就是说每秒大概四千次请原创 2022-06-06 22:52:08 · 392 阅读 · 0 评论 -
系统设计学习(一)Design Pastebin.com (or Bit.ly)
系统设计---Design Pastebin.com (or Bit.ly)原创 2022-06-03 19:59:08 · 465 阅读 · 0 评论