實作其他工具


在推出賽道、並具備最初 20 多個練習與一個測試執行器之後,重心就應該轉向實作其他賽道工具。

賽道工具有兩種類型:

  • 正式環境:為該語言的學習體驗提供關鍵功能
  • 維護:協助賽道維護

正式環境工具

正式環境的工具有(目前)三種:

  • 測試執行器:針對學生的程式碼執行練習的測試。(必要)
  • 表徵器:建立解答的正規化表徵(選用)
  • 分析器:自動評估學生提交的內容,並提供導師風格的評論。(選用)

維護工具

為了協助賽道維護,也可以建立:

  • 測試產生器:自動產生或更新練習的測試與學生的程式碼介面。(選用)

該實作哪個工具?

正式環境工具比維護工具更重要。 到這個階段,你應該已經實作好測試執行器了(如果還沒,請參考建立測試執行器的文件)。

建立好測試執行器後,下一個要處理的工具是表徵器。 表徵器與分析器的目標有些重疊,但我們建議先建立表徵器,原因如下:

  • 表徵器通常(遠)比較容易實作
  • 表徵器能讓導師更有力量,因此對引導負擔的影響遠比分析器來得大
  • 表徵器適用於所有練習,而分析器通常只針對特定練習或其中一部分

想開始建立表徵器,請參考從零開始建立表徵器這份文件吧。

最後,實作完表徵器後,要建立的最後一個工具就是分析器。 想開始建立分析器,請參考從零開始建立分析器這份文件。

到了這個階段,重心大概又該回到新增更多練習上。 為了加快新增練習的速度,可以考慮建立測試產生器。

實作

賽道工具通常(大多)是用該賽道所用的語言撰寫的。

Caution

雖然你可以自由使用其他語言,但每多一種語言,都會讓賽道更難維護,也更難讓人貢獻。 因此,我們建議盡可能使用賽道本身的語言,因為這樣會讓維護與貢獻都更容易。

部署

正式環境工具會打包成 Docker 容器 來執行。 工具用的 Docker 映像檔會透過 GitHub Actions 工作流 自動部署。

維護工具則_不會_部署。