2022-03-13 RASA实战笔记 -- 第十章 如何阅读rasa源码

一、阅读源码前

  1. 阅读前必须熟悉rasa所用的术语,快速了解术语最佳方式就是阅读文档。熟悉之后,根据名字即可知道代码对象属于什么属于的范畴,不用仔细阅读代码即可知晓代码对象作用。
  2. 如果想知道一个软件是如何工作的,那么必须知道软件是做什么的、怎么操作,有什么输入和产出。
  • ①了解rasa各个模块做什么,怎样操作才能训练和推理,其输入输出包含什么信息
  • ② 找到rasa的系统入口(rasa通过命令行启动训练和推理,因此追踪命令行的实现,即可得到系统入口)
  1. sourcetrail -- 优秀的源代码阅读工具,跨平台,免费开源

二、阅读代码时

  1. 确定本次阅读源码的目标是什么?
  • 为了解决一个棘手的bug?
  • 扩展rasa系统?
  • 学习rasa的设计?
  1. 解决棘手bug:建议定位到具体出错的源码,搞清楚出错的代码的功能,通过调试确定出错原因,如果必要追溯至调用链
  2. 扩展rasa系统:建议首先阅读待扩展组件的调用者代码:有哪些调用者,分别调用了这类组件的哪些接口,这些接口的输入和输出是什么;然后阅读官方组件的实现源码,确保详细掌握了每个接口的作业
  3. 学习rasa的设计:建议多次反复阅读源码,逐次细化地阅读源码。
    第一次阅读源码从系统入口开始,按照非常粗的力度了解整个系统的工作流程是怎么样的调用链,其中有哪些关键的综合类,以及他们的作用。
    以后每次阅读都进一步阅读上一次没有设计的关键类,了解其内部大概的实现方式。
    由于我们的目的是学习架构设计而不是学习源码细节,因此对于同一种组件,只选择其中最简单或最具代表性的实现类进行阅读。
    另外有些组件是由深度学习算法实现的,需要结合论文才能理解,因此不建议阅读,阅读其中最简单的实现类或基类即可。
    如果遇到难以理解含义或实现过程的源码,可以通过关联这段源码的测试代码快速了解该源码的输入输出,进而理解其作用,及其工作原理。

三、阅读代码后

可以尝试在纸上或脑中回忆源码的流程,争取能够脱离源代码独立地描述清楚源码的逻辑。
在此基础上可以反思为什么官方要这样设计?优点、缺点?如果是自己设计,那些事没有考虑到的?

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容