Code Review 第一期回顾:Compound 代码解读

昨天进行了第一期 Code Review,总共花费了两个小时,从晚上 22:30 搞到了 00:30,参与人有 6 个人,后面有一个人退出。

我领着大家一起读的 compound。基本的流程是:

  1. 介绍原理
  2. 浏览文档和代码架构
  3. 找到核心模块,开始读
  4. 总结 + 讨论

1.介绍原理

一般需要提前做点工作,看看介绍的文章,我看了下链闻的文章,之前还看过它的白皮书,另外我自己也写过 compound 的介绍文章,所以这个工作算是做好了。

2.浏览文档和代码结构

主要目的是了解它的整体架构,找到它的核心模块,方便我们从最核心的模块入手去读。compound 最核心的模块是 comptroller 和利率计算的模块。

3.找到核心模块,开始读

找到核心模块,就可以开始从这里读了,读的时候,我们总结了几个要点:

  1. 可以直接从函数开始看,而且只看核心的函数,主要是那些修改合约状态的函数
  2. 可以适当的忽略的代码:
    1. view 函数
    2. 变量定义
    3. 治理代码
    4. admin 代码
    5. event 定义
  3. 如果有 interface,可以先看 interface
  4. 有些文档和代码,没有看懂是做什么的,可以先随便猜一下,然后跳过,继续看,回头看别的代码可能就会理解了,如果不理解也没关系,可以不先去深究,以后有机会再去研究

读代码的时间大概花了一个小时,比自己看的要快一些,因为互相可以帮助理解,还可以提醒有些代码不需要读,只关注核心逻辑。

4.总结 + 讨论

总结和讨论,花了半个小时的时间,我们发现:

  • compound 的代码架构不是非常的清晰,interface 没有放在一起,所有的代码都放在了一起
  • 代码 github readme 页面显示 build 失败的
  • compound 核心概念不是很难
  • 工程实现 compound 比 uniswap 要难,因为多出了治理、清算等逻辑

最后

第一期 code review 搞下来应该说达到了初始设定的目标,达到了大家一起交流和学习的目的,而且是相对比较高效的,比自己单独学习要高效,交流的环节也增进了对于产品和代码的了解,还有大家相互之间也有了更多的了解,后面要继续搞下去。

大家还提了一个小建议,每个人交一些押金,迟到一分钟罚款一块钱。


Code Review 是由 Rebase 社区组织的代码学习活动,通过组成一个小组,一起学习开源项目代码。方式是每次约几个人一起 review 某个项目的代码,这样既能学习代码,还能了解一个项目。还有一个好处是,大家能一起互相激励学习、交流和进步。

你可能感兴趣的:(Code Review 第一期回顾:Compound 代码解读)