這份文件會說明如何新增一個新的練習。
要確認還有哪些練習尚未實作,最簡單的方法就是前往軌道的建置頁面(例如 https://exercism.org/tracks/csharp/build),然後查看「練習」區塊。
建置頁面上的資料每天只更新一次。
你可以從軌道的根目錄執行bin/add-practice-exercise腳本(原始碼),快速建立新的練習骨架:
bin/add-practice-exercise <exercise-slug>
你也可以選擇性地指定練習的難度(透過-d)和/或作者的 GitHub 使用者名稱(透過-a):
bin/add-practice-exercise -d 3 -a foobar <exercise-slug>
如果你處理的軌道儲存庫沒有這個檔案,歡迎用上面的原始碼連結把它複製到你的儲存庫。
骨架檔案建立好之後,你需要:
.meta/config.json 檔案中:
authors 鍵config.json 檔案中:
practices 鍵(只有當軌道有概念練習時才需要)prerequisites 鍵(只有當軌道有概念練習時才需要)新增練習時,一個關鍵環節就是加入測試。 大致來說,為練習加入測試時有以下選擇:
canonical-data.json 檔案中的測試案例,該檔案位於 problem-specifications 儲存庫。https://exercism.org/exercises/<slug>,就能大致了解有哪些軌道實作了某個練習)。後者可能特別吸引人,因為它能讓你很快看到成果。 不過請記得,你應該調整實作,讓它最符合你的軌道。 舉例來說,有些軌道不使用類別,只使用函式。 但如果你的軌道通常使用物件,就應該把實作調整成最符合你軌道的樣子。
有些軌道會使用測試產生器,自動(重新)產生練習的測試檔。 請查看軌道的文件,確認是否有測試產生器,如果有,該怎麼使用。
為了確保能寫出通過測試的程式碼,需要加入範例實作。
這段程式碼_不_一定要符合慣用寫法,只要通過測試就好。
你可以從軌道的根目錄執行bin/verify-exercises腳本(原始碼),驗證範例實作是否通過所有測試:
bin/verify-exercises <exercise-slug>
請根據輸出結果,確認範例實作通過所有測試。
如果你處理的軌道儲存庫沒有這個檔案,歡迎用上面的原始碼連結把它複製到你的儲存庫。
在底層,bin/verify-exercises腳本會做幾件事:
骨架實作檔案提供了讓學生開始的起點。
我們建議骨架檔案只包含最少的程式碼,確保:
實際上,這代表要定義測試套件所測試的函式/方法。 軌道可以自由決定如何設定這些程式碼,只要能確保骨架程式碼一開始會讓所有測試失敗就好。
Python:
def two_fer(name):
pass
Kotlin:
fun twofer(name: String): String {
TODO("Implement the function to complete the task")
}
最後一步是執行檢查器,確認軌道的(設定)檔案結構正確,無論在語法還是語意上。
首先,執行下列指令,確認你有最新版的 configlet:
bin/fetch-configlet
接著執行檢查器:
bin/configlet lint
請根據輸出結果,確認一切正常。
一切就緒之後,你就可以向軌道的儲存庫提交 Pull Request。
提交之前,請先閱讀貢獻者 Pull Request 指南和 Pull Request 指南。
請確保 PR 說明中列出了要新增的練習。