Category

Go Programming

Go language tutorials, patterns, and best practices

27 posts

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

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

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

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

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

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

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

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

ساخت APIهای REST با عملکرد بالا با استفاده از Gin: راهنمای جامع

در فضای مدرن توسعه بک‌اند، عملکرد و بهره‌وری توسعه‌دهنده در اولویت هستند. اگرچه کتابخانه استاندارد net/http قدرتمند است، اما اغلب به کدهای تکراری برای مسیریابی و تبدیل JSON نیاز دارد. Gin یک فریم‌ورک وب HTTP با عملکرد بالا است که با زبان Go نوشته شده است.

تسلط بر اتصال پوول دیتابیس در Go: بهترین شیوه‌ها برای برنامه‌های با عملکرد بالا

در دنیای برنامه‌نویسی Go، یکی از رایج‌ترین سوءتفاهم‌ها میان توسعه‌دهندگانی که از فریم‌ورک‌هایی مانند Django، Spring یا Ruby on Rails مهاجرت می‌کنند، این فرض است که آن‌ها باید اتصالات دیتابیس را به صورت دستی مدیریت کنند. در آن اکوسیستم‌ها، یک اتصال اغلب برای هر درخواست باز و پس از آن بسته می‌شود، الگویی که تحت بار کاری به خوبی مقیاس‌پذیری ندارد.