發展藍圖與概念清單

Go 軌道未來發展的優先事項。


這份文件概述了接下來幾個月裡,貢獻者與維護者可能會專注的主要主題。

主題概覽

  • 改善現有的概念練習
  • 建立更多概念練習(請見下方的課程大綱概覽)
  • 為所有練習題定義 prerequisites 與 practices 清單(請見 Issue 1396)
  • 修掉 test runner 剩下的 bug
  • 修復並重新啟用 analyzer(例如請見 Issue 16),並修掉其他 bug
  • 完成穩定好用的 representer 版本,並讓它正式上線
  • 改善或新增練習的解法
  • 讓測試與 problem specs 保持同步

課程大綱概覽

已存在的概念

  • basics
  • strings 與 strings-package
  • numbers(基礎)與 arithmetic-operators
  • floating-point-numbers
  • booleans
  • comments
  • conditionals-if 與 comparison
  • conditionals-switch
  • structs
  • type-definitions
  • slices
  • iteration(for 迴圈)
  • functions(包含多重回傳值)
  • maps
  • range-iteration
  • runes
  • pointers
  • methods
  • interfaces
  • errors
  • zero-values(包含 nil)
  • type-conversion
  • type-assertion
  • constants
  • string-formatting
  • packages(匯入/匯出)
  • time
  • variadic-functions(介紹 ...)
  • randomness
  • regular-expressions
  • stringers

未來可能的概念

  • time-duration
  • integer-types
  • panic-recover
  • error-wrapping(errors.Is、errors.As)
  • bytes
  • bitwise-operators
  • goroutines
  • waitgroups
  • mutexes
  • channels 與 select
  • closures/anonymous-functions/higher-order-functions
  • JSON
  • defer
  • Buffer、io.Reader/io.Writer
  • typed-parameters(泛型)
  • context
  • 時間相關的輔助工具(ticket、sleep 等)
  • reflection
  • unsafe
  • init
  • functional options 模式
  • 嵌入檔案

還有一些主題可能不屬於概念練習的範圍:

  • 工具(go fmt、go vet、go doc 等)
  • 撰寫測試與範例
  • 基準測試
  • 效能分析
  • go generate
  • 編譯器選項