مسیر یادگیری متنباز و پروژهمحور
از Python و Django تا Go در سطح Senior
هر مفهوم Go را کنار معادل Python آن یاد میگیرید: با توضیح فارسی، کد اجرایی و تستشده، تمرین در چهار سطح و هشت پروژهٔ واقعی. همهچیز روی سیستم خودتان و بدون نیاز به اینترنت اجرا میشود.
- ۶
- فاز
- ۸۳
- درس
- ۸
- پروژه
- ۴۱۸
- ساعت
یک کار، دو طرز فکر: خطا در Go یک مقدار است و در Python یک exception.
Go در برابر Python
شش تفاوتی که طرز فکر شما را عوض میکند
اینها فقط تفاوت syntax نیستند. هر کدام روش طراحی برنامه را تغییر میدهد و در درسها با کد و جزئیات runtime بررسی میشود.
خطا یک مقدار است
- Go
- تابع مقدار error برمیگرداند و فراخواننده همانجا آن را بررسی میکند.
- Python
- خطا با raise بالا میرود و جایی دورتر با except گرفته میشود.
interface ضمنی
- Go
- هر نوعی که methodهای لازم را داشته باشد، بدون اعلام، interface را برآورده میکند.
- Python
- نزدیکترین معادل typing.Protocol است؛ ABC به ارثبری صریح نیاز دارد.
همروندی در خود زبان
- Go
- goroutine و channel بخشی از زباناند و روی همهٔ هستهها موازی اجرا میشوند.
- Python
- باید بین asyncio، thread و process انتخاب کنید و GIL را در نظر بگیرید.
یک فایل اجرایی
- Go
- خروجی build یک binary مستقل است که بدون نصب چیزی اجرا میشود.
- Python
- برای اجرا به مفسر، محیط مجازی و بستههای نصبشده نیاز دارید.
zero value بهجای None
- Go
- هر متغیر از لحظهٔ تعریف مقدار معتبر دارد: 0، رشتهٔ خالی یا nil.
- Python
- نام تعریفنشده خطا میدهد و None باید صریح مدیریت شود.
composition بهجای وراثت
- Go
- رفتار با embedding و interfaceهای کوچک ترکیب میشود؛ کلاس و وراثت وجود ندارد.
- Python
- وراثت چندگانه و mixin رایج است و MRO ترتیب را تعیین میکند.
مسیر یادگیری
شش فاز، از نصب ابزار تا درون runtime
فازها پشت سر هم ساخته شدهاند و سختی بهتدریج بالا میرود. پیشرفت شما در هر فاز همینجا دیده میشود.
راهاندازی و طرز فکر Go
پیشنیاز۵ درس · ۸ ساعتنصب toolchain، آشنایی با دستور go و ماژولها، و فلسفهٔ طراحی Go در برابر Zen of Python.
۰٪مبانی
Junior۱۶ درس · ۴۵ ساعتنوعها، کنترل جریان، تابع، slice، map، رشته، struct، pointer، package، خطا و اولین تست.
۰٪سطح میانی
Mid-level۱۴ درس · ۵۰ ساعتinterface، composition، خطاها بهصورت عمیق، generics، iterator، I/O، JSON، تست پیشرفته و CLI.
۰٪همروندی
Mid-level۱۲ درس · ۵۰ ساعتgoroutine، channel، select، بستهٔ sync، context و الگوهای همروندی در برابر asyncio و Celery.
۰٪مهندسی Backend
Mid-level تا Senior۱۸ درس · ۱۱۵ ساعتnet/http، middleware، JSON API، پایگاه داده، احراز هویت، معماری، تست یکپارچه و graceful shutdown.
۰٪سطح Senior
Senior۱۸ درس · ۱۵۰ ساعتدرون runtime، profiling، observability، gRPC، صف پیام، resilience، امنیت، CI/CD و تصمیمهای معماری.
۰٪
پروژهها
هشت پروژه که روی هم ساخته میشوند
هر پروژه مهارتهای قبلی را به کار میگیرد و با code review در سطح Senior تمام میشود. پروژهٔ چهارم یک بار با Go و یک بار با Django ساخته و مقایسه میشود.
- 01
CLI Task Manager
یک مدیر کار خط فرمان با ذخیرهسازی در فایل JSON و پوشش تست.
- struct
- slice
- JSON
- file I/O
- testing
- 02
Concurrent Web Crawler
خزندهٔ همروند وب با کنترل عمق، لغو و محدودیت نرخ درخواست.
- goroutine
- channel
- context
- rate limiting
- 03
URL Shortener
سرویس کوتاهکنندهٔ پیوند؛ ابتدا با ذخیرهسازی در حافظه و سپس PostgreSQL.
- net/http
- PostgreSQL
- layering
- slog
- 04
REST API با Go و Django
یک API کامل که هم با Go و هم با Django/DRF ساخته و از نظر معماری و کارایی مقایسه میشود.
- CRUD
- migration
- validation
- auth
- DRF
- 05
Auth Service
سرویس احراز هویت با JWT، refresh token، هش گذرواژه و middleware امنیتی.
- JWT
- refresh token
- argon2
- middleware
- 06
Rate Limiter و Cache Service
پیادهسازی token bucket و sliding window روی Redis همراه با benchmark.
- Redis
- token bucket
- sliding window
- benchmark
- 07
Microservices با gRPC و صف پیام
چند سرویس با ارتباط gRPC و طراحی رویدادمحور روی NATS.
- gRPC
- Protobuf
- NATS
- event-driven
- 08
Capstone
یک سیستم production-grade با observability، Docker، CI/CD، load testing و مستندات.
- OpenTelemetry
- Docker
- CI/CD
- load testing
ساختار هر درس
هر درس یک قالب ثابت دارد
قالب یکسان کمک میکند روی مفهوم تمرکز کنید: هدف، مفهوم، کد، مقایسه، دامهای رایج، نکتههای Senior، تمرین و آزمون.
- ۱
Go کنار Python
هر مثال با نزدیکترین کد idiomatic در Python و یک جدول مقایسه همراه است.
- ۲
زیر کاپوت
میبینید در runtime خود Go و در CPython دقیقاً چه اتفاقی میافتد.
- ۳
تمرین در چهار سطح
از Easy تا Senior Challenge، با کد شروع و تست خودکار که با make exercise اجرا میشود.
- ۴
آزمون و چکلیست
پنج تا ده پرسش با بازخورد فوری و یک چکلیست برای مرور پایان درس.
آمادهاید اولین برنامهٔ Go را بنویسید؟
از فاز ۰ شروع کنید: نصب ابزار، اولین برنامه و طرز فکر Go.