1 起因与动机

最近在看 System Design By Example 这本书,主旨是通过设计和实现各种日常开发中常见的软件,以理解和提高系统设计(System Design)的能力。

每个章节都会实现一个软件,然后还会有大量的习题来完善这个软件,以练带学。

而我最推崇,并且认为最好的学习方法就是:费曼学习法(Feynman Technique), 其核心理念就是:

学习一种新事物最好的方法是,用你的话讲给别人听。

通过向别人清楚的解说某一事物,来确认自己是否真的弄懂了这件事。

所以说,学习最好的方式,是把你学到的东西教给别人。

因此,这个项目就是我在学习和理解 System Design By Example 这本书后,结合参考的论文和个人经验内化出来的学习成果。

也希望其他人也可以从中受益。

2 项目

GitHub: https://github.com/ramsayleung/reinvent

原书是用 node + Javascript 编写的,部分代码因API变更而变得不可用,因此本项目也做了对应修改,并将 Javascript 替换成 Typescript, 通过类型系统来降低维护成本。

  1. 单元测试框架