Category

Go Programming

Go language tutorials, patterns, and best practices

64 posts

تسلط بر الگوهای تابعی عمومی در Go: Map، Filter و Reduce

برای سال‌ها، زبان برنامه‌نویسی Go به دلیل سادگی و جریان کنترل صریح خود شناخته می‌شد. اگرچه این پارادایم Go را برای برنامه‌نویسی سیستمی و همزمانی بسیار موفق کرده است، اما اغلب در تضاد با سبک مختصر و اعلانی یافت شده در زبان‌های تابعی مانند Haskell...

تسلط بر همزمانی در Go: گوروتین‌ها و کانال‌ها

همزمانی تنها یک ویژگی در Go نیست؛ بلکه پایه فلسفه طراحی آن است. برخلاف زبان‌هایی که به رشته‌ها و قفل‌ها تکیه دارند، Go با معرفی گوروتین‌ها و کانال‌ها، مدیریت وظایف همزمان را به شکلی شیک و ایمن ممکن می‌سازد. برای توسعه‌دهندگان متوسط...

تسلط بر کانال‌های Go: الگوهای پیشرفته Select، مدیریت زمان‌بندی و پیشگیری از نشت

مدل همزمانی Go که بر پایه گوروتین‌ها و کانال‌ها ساخته شده، یکی از قدرتمندترین ویژگی‌های این زبان است. با این حال، برای توسعه‌دهندگان متوسطی که از استفاده‌های پایه به سمت سیستم‌های سطح تولید حرکت می‌کنند، تسلط بر این اصول اولیه کار ساده‌ای نیست. مدیریت نادرست کانال‌ها می‌تواند منجر به بن‌بست...

برگه تقلب جنریک‌های Go: ۱۰ الگوی کد کاربردی برای نقشه‌ها، برش‌ها و محدودیت‌های سفارشی

از زمان انتشار Go 1.18، جنریک‌ها زبان را متحول کرده‌اند و امکان نوشتن کد قابل استفاده مجدد و ایمن از نظر نوع را بدون کدهای تکراری interface{} یا بازتاب فراهم کرده‌اند. برای توسعه‌دهندگان متوسط و پیشرفته، تسلط بر جنریک‌ها دیگر اختیاری نیست...

الگوهای کلاینت HTTP عمومی و Repository در Go: راهنمای پیاده‌سازی عملی

از زمان معرفی جنریک‌ها در Go 1.18، این زبان انعطاف‌پذیری بی‌سابقه‌ای کسب کرده است بدون آنکه فلسفه اصلی سادگی و عملکرد خود را فدا کند. برای توسعه‌دهندگان متوسط و پیشرفته، استفاده از جنریک‌ها برای انتزاع کدهای تکراری رایج—مانند ارسال درخواست‌های HTTP یا...

تسلط بر الگوهای همزمانی Go: گروه‌های کارگر، Fan-In/Fan-Out و خطوط لوله

زبان برنامه‌نویسی Go که اغلب به عنوان زبان عصر ابری مدرن شناخته می‌شود، قدرت خود را از یک اصل ساده اما عمیق به نام گوروتین (goroutine) می‌گیرد. برخلاف رشته‌ها در سایر زبان‌ها که سنگین و پرهزینه هستند، گوروتین‌ها سبک‌وزن و توسط زمان‌اجرای Go مدیریت می‌شوند. با این حال، آسانی ایجاد هزاران عملیات همزمان، مجموعه‌ای جدید از چالش‌ها را به همراه دارد: همگام‌سازی، مدیریت منابع و کنترل جریان داده.