2022-03-13 RASA實戰(zhàn)筆記 -- 第十章 如何閱讀rasa源碼

一、閱讀源碼前

  1. 閱讀前必須熟悉rasa所用的術(shù)語,快速了解術(shù)語最佳方式就是閱讀文檔。熟悉之后,根據(jù)名字即可知道代碼對象屬于什么屬于的范疇,不用仔細閱讀代碼即可知曉代碼對象作用。
  2. 如果想知道一個軟件是如何工作的,那么必須知道軟件是做什么的、怎么操作,有什么輸入和產(chǎn)出。
  • ①了解rasa各個模塊做什么,怎樣操作才能訓練和推理,其輸入輸出包含什么信息
  • ② 找到rasa的系統(tǒng)入口(rasa通過命令行啟動訓練和推理,因此追蹤命令行的實現(xiàn),即可得到系統(tǒng)入口)
  1. sourcetrail -- 優(yōu)秀的源代碼閱讀工具,跨平臺,免費開源

二、閱讀代碼時

  1. 確定本次閱讀源碼的目標是什么?
  • 為了解決一個棘手的bug?
  • 擴展rasa系統(tǒng)?
  • 學習rasa的設(shè)計?
  1. 解決棘手bug:建議定位到具體出錯的源碼,搞清楚出錯的代碼的功能,通過調(diào)試確定出錯原因,如果必要追溯至調(diào)用鏈
  2. 擴展rasa系統(tǒng):建議首先閱讀待擴展組件的調(diào)用者代碼:有哪些調(diào)用者,分別調(diào)用了這類組件的哪些接口,這些接口的輸入和輸出是什么;然后閱讀官方組件的實現(xiàn)源碼,確保詳細掌握了每個接口的作業(yè)
  3. 學習rasa的設(shè)計:建議多次反復閱讀源碼,逐次細化地閱讀源碼。
    第一次閱讀源碼從系統(tǒng)入口開始,按照非常粗的力度了解整個系統(tǒng)的工作流程是怎么樣的調(diào)用鏈,其中有哪些關(guān)鍵的綜合類,以及他們的作用。
    以后每次閱讀都進一步閱讀上一次沒有設(shè)計的關(guān)鍵類,了解其內(nèi)部大概的實現(xiàn)方式。
    由于我們的目的是學習架構(gòu)設(shè)計而不是學習源碼細節(jié),因此對于同一種組件,只選擇其中最簡單或最具代表性的實現(xiàn)類進行閱讀。
    另外有些組件是由深度學習算法實現(xiàn)的,需要結(jié)合論文才能理解,因此不建議閱讀,閱讀其中最簡單的實現(xiàn)類或基類即可。
    如果遇到難以理解含義或?qū)崿F(xiàn)過程的源碼,可以通過關(guān)聯(lián)這段源碼的測試代碼快速了解該源碼的輸入輸出,進而理解其作用,及其工作原理。

三、閱讀代碼后

可以嘗試在紙上或腦中回憶源碼的流程,爭取能夠脫離源代碼獨立地描述清楚源碼的邏輯。
在此基礎(chǔ)上可以反思為什么官方要這樣設(shè)計?優(yōu)點、缺點?如果是自己設(shè)計,那些事沒有考慮到的?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容