Дорожня карта та список концепцій

Пріоритети подальшого розвитку треку Go


Цей документ дає огляд головних тем, на яких контрибʼютори та супровідники, ймовірно, зосередяться в найближчі місяці.

Огляд тем

  • Удосконалити наявні концептуальні вправи
  • Створити додаткові концептуальні вправи (див. огляд силабусу нижче)
  • Визначити списки prerequisites і practices для всіх практичних вправ (див. Issue 1396)
  • Виправити решту помилок у test runner
  • Виправити й знову ввімкнути analyzer (напр., див. Issue 16) та виправити інші помилки
  • Довести representer до хорошої стабільної версії й запустити його в роботу
  • Удосконалити наявні підходи до вправ і додати нові
  • Синхронізувати тести з problem specs

Огляд силабусу

Концепції, які вже є

  • basics
  • strings and strings-package
  • numbers (базовий) and arithmetic-operators
  • floating-point-numbers
  • booleans
  • comments
  • conditionals-if and 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 and select
  • closures/anonymous-functions/higher-order-functions
  • JSON
  • defer
  • Buffer, io.Reader/io.Writer
  • typed-parameters (generics)
  • context
  • допоміжні функції для роботи з часом (ticket, sleep тощо)
  • reflection
  • unsafe
  • init
  • патерн функціональних опцій
  • вбудовування файлів

Додаткові теми, які, можливо, виходять за межі концептуальних вправ:

  • інструментарій (go fmt, go vet, go doc тощо)
  • написання тестів і прикладів
  • бенчмаркінг
  • профілювання
  • go generate
  • параметри компілятора