نقشه‌ی راه و فهرست مفهوم‌ها

اولویت‌هایی برای توسعه‌ی آینده‌ی مسیر Go.


این سند نمای کلی‌ای از موضوع‌های اصلی ارائه می‌دهد که مشارکت‌کنندگان و نگه‌دارندگان احتمالاً در ماه‌های پیش رو روی آن‌ها تمرکز می‌کنند.

نمای کلی موضوع‌ها

  • بهبود تمرین‌های مفهومی موجود
  • ساخت تمرین‌های مفهومی بیشتر (به نمای کلی برنامه‌ی درسی در پایین نگاه کنید)
  • تعریف فهرست‌های prerequisites و practices برای همه‌ی تمرین‌های عملی (به Issue 1396 نگاه کنید)
  • رفع باگ‌های باقی‌مانده‌ی test runner
  • رفع اشکال و فعال‌سازی دوباره‌ی analyzer (برای نمونه، به Issue 16 نگاه کنید) و رفع باگ‌های دیگر
  • تکمیل یک نسخه‌ی خوب و پایدار از representer و راه‌اندازی آن به‌صورت زنده
  • بهبود و افزودن رویکردها برای تمرین‌ها
  • همگام‌سازی تست‌ها با مشخصات مسئله

نمای کلی برنامه‌ی درسی

مفاهیم موجود

  • 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 (import/export)
  • 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
  • الگوی گزینه‌های تابعی
  • جاسازی فایل‌ها

موضوع‌های دیگری که ممکن است خارج از حوزه‌ی تمرین‌های مفهومی باشند:

  • ابزارها (go fmt، go vet، go doc و غیره)
  • نوشتن تست‌ها و مثال‌ها
  • بنچمارک کردن
  • پروفایل کردن
  • go generate
  • گزینه‌های کامپایلر