زبان Go
GoGo عمداً کوچک است. کل زبان را در یک هفته یاد میگیری؛ سختیاش جای دیگری است — در فکر کردن به همروندی و در پذیرفتن اینکه خطا هم یک مقدار عادی است.
پیشرفت تو
درصد هر فصل از دو چیز میآید: چقدر از بخشهایش را خواندهای (۵۵٪) و چند تمرینش را تیک زدهای (۴۵٪). همهچیز داخل مرورگر خودت میماند.
فصل
فصلها به هم وابستهاند و ترتیبشان معنا دارد. هر مسیر با پروژههای نهایی تمام میشود: ساده، متوسط، پیچیده.
چرا Go؛ نصب و اولین برنامه
فلسفهٔ زبان و ابزار go.
در نوبت نوشتننوعها، struct و method
بدون کلاس، بدون وراثت.
در نوبت نوشتنinterface — متفاوت از آنچه فکر میکنی
پیادهسازی ضمنی، و interface کوچک.
در نوبت نوشتنخطا بهعنوان مقدار
errors.Is، errors.As، wrap — و چرا panic نه.
در نوبت نوشتنslice و map — دامهای حافظه
append، ظرفیت، و نشتی که کسی انتظارش را ندارد.
در نوبت نوشتنgoroutine و مدل همروندی
ارزان است، اما رایگان نیست.
در نوبت نوشتنchannel و select
ارتباط بهجای اشتراک حافظه.
در نوبت نوشتنsync، mutex و context
وقتی channel جواب نمیدهد، و لغو کار.
در نوبت نوشتنپکیج و ماژول
سازماندهی کد و مدیریت وابستگی.
در نوبت نوشتنتست و benchmark
تست جدولی و اندازهگیری واقعی.
در نوبت نوشتنHTTP server استاندارد
بدون فریمورک، با کتابخانهٔ استاندارد.
در نوبت نوشتنJSON و struct tag
کدگذاری، رمزگشایی و میدانهای اختیاری.
در نوبت نوشتناتصال به پایگاهداده
database/sql، pool و تراکنش.
در نوبت نوشتنساختار پروژه در Go
الگوهای رایج، و اینکه چرا سادهتر بهتر است.
در نوبت نوشتنپروفایلینگ با pprof
پیدا کردن گلوگاه واقعی.
در نوبت نوشتنکامپایل و استقرار
باینری تکفایل، کراسکامپایل و ایمیج کوچک.
در نوبت نوشتنپروژهٔ ۱ — ابزار خط فرمان
خواندن ورودی، پردازش موازی و خروجی تمیز.
در نوبت نوشتنپروژهٔ سادهپروژهٔ ۲ — REST API با پایگاهداده
لایهبندی، تست و مدیریت خطا.
در نوبت نوشتنپروژهٔ متوسطپروژهٔ ۳ — سرویس همروند پرکار
worker pool، context، graceful shutdown و پروفایل.
در نوبت نوشتنپروژهٔ پیچیده