Gopher Academy
3.33K subscribers
915 photos
40 videos
279 files
1.96K links
🕸 Gopher Academy

🔷interview golang
https://github.com/mrbardia72/Go-Interview-Questions-And-Answers

حمایت مالی:
https://www.coffeete.ir/mrbardia72

ادمین:
@mrbardia72
Download Telegram
Forwarded from DevOps Labdon
🔵 عنوان مقاله
Unlock 66% better price-performance with new M4 VMs for memory-intensive workloads (4 minute read)

🟢 خلاصه مقاله:
گوگل کلود اخیراً مدل جدیدی از ماشین‌های مجازی با عنوان Compute Engine M4 را رونمایی کرده که بهینه‌سازی شده برای کارکردهای حافظه‌ای با عملکرد بالا است. این ماشین مجازی جدید می‌تواند تا 224 vCPU و 6TB حافظه DDR5 را پشتیبانی کند. M4 عملکرد قیمت به نسبت بهتری تا 2.44 برابر نسبت به نسل‌های قبلی ارائه می‌دهد و از ذخیره‌سازی پیشرفته Hyperdisk بهره می‌برد. این ویژگی‌ها M4 را یک راه‌حل قدرتمند برای کاربرانی که به حافظه بالا و قدرت پردازشی زیاد نیاز دارند، تبدیل می‌کند، که امکان پیاده‌سازی و اجرای برنامه‌ها و دیتابیس‌های عظیم را در محیط ابری فراهم می‌آورد. این پیشرفت‌ها در عملکرد و ظرفیت به کاربران اجازه می‌دهد تا به صورت کارآمدتر و مقرون به صرفه‌تر برنامه‌های کلان داده و یادگیری ماشینی خود را به اجرا درآورند.

🟣لینک مقاله:
https://cloud.google.com/blog/products/compute/m4-vms-are-designed-for-memory-intensive-workloads-like-sap?utm_source=tldrdevops


👑 @DevOps_Labdon
1👍1🔥1
🎬 استخدام – تولید ویدیو با کمک هوش مصنوعی (AI Video Creator)

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

🧠 مهارت‌های موردنیاز:

آشنایی کامل با ابزارهای ساخت ویدیو مبتنی بر هوش مصنوعی

توانایی پرامپت‌نویسی حرفه‌ای برای تولید محتوای حرفه های ویدیویی با AI

درک خوب از اصول تدوین، داستان‌پردازی تصویری و خلاقیت در تولید محتوا

آشنایی با مفاهیم پایه تولید محتوا در شبکه‌های اجتماعی

🌍 همکاری به‌صورت دورکاری / پروژه‌ای

📩 اگر فکر می‌کنی می‌تونی این نقش رو به خوبی اجرا کنی، به شماره زیر توی واتساب یا تلگرام پیام بفرستید

+989355167911
2
🔵 عنوان مقاله
Fullstack without Frameworks

🟢 خلاصه مقاله:

ماکسیمیلیانو فیرتمن با ترکیب جاوا اسکریپت و زبان برنامه‌نویسی گو، دوره‌ای ویدئویی را ارائه داده است که در آن به ساخت برنامه‌های وب با عملکرد بالا از ابتدا پرداخته می‌شود. این دوره شامل آموزش‌هایی در مورد اجزای وب، مسیریابی دینامیکی در سمت مشتری، احراز هویت، ثبت وقایع و موارد دیگر است. شرکت‌کنندگان در این دوره، درک جامعی از نحوه یکپارچه‌سازی جاوا اسکریپت و گو برای ایجاد برنامه‌های وب با کارایی بسیار بالا کسب می‌کنند.

🟣لینک مقاله:
https://golangweekly.com/link/170926/web


👑 @gopher_academy
3
🔵 عنوان مقاله
Finding Performance Problems by Diffing Two Go Profiles

🟢 خلاصه مقاله:
**
ابزار پروفایلینگ pprof گو قابلیت مقایسه دو پروفایل اجرایی را دارد که این امکان را برای برنامه نویسان فراهم می‌آورد تا تفاوت‌های عملکردی بین دو حالت از برنامه‌هایشان را شناسایی کنند. این ابزار توسط تیم دولت برای شناسایی یک پارامتر به اشتباه سخت‌افزاری شده که باعث ایجاد هزینه‌های سنگین در تولید جداول سیستم شده بود، به کار گرفته شد. با تشخیص و اصلاح این پارامتر، تیم دولت توانست عملکرد نرم‌افزار خود را بهینه‌سازی کند و هزینه‌های محاسباتی غیرضروری را کاهش دهد.

🟣لینک مقاله:
https://golangweekly.com/link/170928/web


👑 @gopher_academy
1
🔵 عنوان مقاله
How to Store Go Pointers from (Go) Assembly

🟢 خلاصه مقاله:

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

🟣لینک مقاله:
https://golangweekly.com/link/170930/web


👑 @gopher_academy
3
🔴قابلیت Synthetic time for testing ویژگی های جدید گولنگ نسخه 1.25

⏱️ چی هست این Synthetic Time؟

قطعه‌ای از کد که زمان واقعی (real-time) استفاده می‌کنه—مثلاً `time.Sleep(60*time.Second)`—در تست، باعث می‌شه نتایج:

* کند (شصت ثانیه‌ای وسط تست منتظر شیم؟!)
* غیرقابل اعتماد (وابسته به scheduler واقعی و بار سیستم)

این ویژگی testing/synctest این مشکل رو با فراهم کردن یک "زمان مصنوعی" حل می‌کنه—زمان فقط وقتی جلو می‌ره که goroutineها بلاک بشن، و همه چی بلافاصله و به صورت دترمینیستیک اجرا می‌شه

---

🔧 نحوه استفاده با مثال

مثال تابع با تأخیر و timeout:

func Read(in chan int) (int, error) {
select {
case v := <-in:
return v, nil
case <-time.After(60 * time.Second):
return 0, fmt.Errorf("timeout")
}
}


تست timeout بدون معطلی:

import "testing/synctest"

func TestReadTimeout(t *testing.T) {
synctest.Test(t, func(t *testing.T) {
ch := make(chan int)
_, err := Read(ch)
if err == nil {
t.Fatal("expected timeout, got nil")
}
})
}


در این تست:

* تابع درون synctest.Test اجرا می‌شه.
*این clock از جنس مصنوعیه؛ بدون انتظار، بعد از بلاک شدن goroutine‌ روی select، زمان مصنوعی ۶۰ ثانیه جلو میره و timeout فعال می‌شه—امتحان با سرعت و قابل اعتماد

---

⚙️ قابلیت synctest.Wait()

این متد اجازه می‌ده تا:

1. کدی با goroutine اجرا بشه،
2. منتظر بشیم همه goroutineها بلاک بشن،
3. سپس دقیقاً بررسی انجام بشه،
4. و ادامهٔ تست.

مثل این مثال:

func TestWait(t *testing.T) {
synctest.Test(t, func(t *testing.T) {
done := make(chan struct{})
go func() {
time.Sleep(time.Second)
close(done)
}()
synctest.Wait()
<-done
})
}


این تضمین می‌کنه که قبل از ادامه تست، همه goroutineها به نقطهٔ بلاک رسیده باشن

---

جمع‌بندی & پیشنهاد

*این Go 1.25 با testing/synctest تست‌ زمان‌محور و همزمان را سریع، مطمئن و ساده می‌کند.
* فقط کافیه تابع تست رو داخل synctest.Test (یا Run) بنویسید.
*این Wait() هم برای سناریوهای چندgoroutine مفیده.
* ویژگی در نسخه RC هست و باید ویژگی GOEXPERIMENT=synctest رو هنگام اجرای go test فعال کنید


👑 @gopher_academy
3👍3🔥1🍾1
🔵 عنوان مقاله
Charm Fang: A CLI Starter Kit for Cobra Apps

🟢 خلاصه مقاله:

انتشار جدید Charm همیشه مورد توجه توسعه دهندگان قرار می‌گیرد، زیرا آنها کتابخانه‌های فوق‌العاده و خوب طراحی شده‌ای ایجاد می‌کنند. فنگ، که یک لایه افزوده به فریم‌ورک کبرا است، امکانات جدیدی مانند خروجی‌ها و پیام‌های خطای بهبود یافته، صفحات راهنما، پشتیبانی از تکمیل خودکار دستورات، و دیگر بهبودی‌های کاربری برای برنامه‌های کاربری خط فرمان (CLI) اضافه می‌کند. از آنجایی که فنگ جدید است، فعلاً مستندات آن محدود است، اما کد نمونه‌ای که ارائه شده راهنمایی مفیدی برای استفاده بهینه از این امکانات جدید فراهم می‌کند.

🟣لینک مقاله:
https://golangweekly.com/link/170940/web


👑 @gopher_academy
👍2
🔵 عنوان مقاله
Eliminating Dead Code in Go Projects

🟢 خلاصه مقاله:

در سال 2023، تیم توسعه‌دهنده زبان برنامه‌نویسی Go ابزاری بنام "deadcode tool" را منتشر کرد که به شناسایی کد‌های غیرقابل دسترس یا مرده در پروژه‌های نرم‌افزاری کمک می‌کند. این ابزار با اسکن کد‌های Go، قسمت‌هایی که هرگز اجرا نمی‌شوند را شناسایی کرده و به توسعه‌دهندگان در حذف آن‌ها کمک می‌کند. استفاده از این ابزار موجب بهبود عملکرد و خوانایی برنامه‌ها شده و بازخورد مثبتی از جامعه توسعه‌دهندگان دریافت کرده است. این ابزار همچنین در بهینه‌سازی سیستم‌های قدیمی و در زمان بازنویسی‌های اساسی بسیار مفید است.

🟣لینک مقاله:
https://golangweekly.com/link/170933/web


👑 @gopher_academy
3
Gopher Academy
🔴قابلیت Synthetic time for testing ویژگی های جدید گولنگ نسخه 1.25 ⏱️ چی هست این Synthetic Time؟ قطعه‌ای از کد که زمان واقعی (real-time) استفاده می‌کنه—مثلاً `time.Sleep(60*time.Second)`—در تست، باعث می‌شه نتایج: * کند (شصت ثانیه‌ای وسط تست منتظر شیم؟!)…
🔴قابلیت json/v2 ویژگی های جدید گولنگ نسخه 1.25

در Go 1.25، بستهٔ `json/v2` (همراه با jsontext) معرفی شده است
یک نسخهٔ اساسی و پیشرفته‌تر نسبت به encoding/json قبلی که با فعال‌سازی آزمایشی از طریق متغیر محیطی GOEXPERIMENT=jsonv2 کار می‌کند

🔑 مزایای کلیدی json/v2

1. انعطاف‌پذیری در Marshal/Unmarshal

* دیگر محدود به یک رفتار یکنواخت نیستید؛ با MarshalToFunc و UnmarshalFromFunc می‌توانید رفتار سفارشی خود را برای هر نوع داده بنویسید

2. افزایش قابل‌توجه در سرعت

* به‌ویژه در عملیات خواندن (unmarshal)، تا ۱۰ برابر سریع‌تر از نسخهٔ فعلی گزارش شده است .

3. این API جدید برای تولید و مصرف جریان‌های داده

* امکان مستقیم خواندن از io.Reader و نوشتن به io.Writer فراهم شده (MarshalWrite, UnmarshalRead) بدون نیاز به شیء Encoder/Decoder جداگانه.

4. ویژگی‌های جدید همچون برچسب‌های سفارشی و رفتار پیش‌فرض بهبود یافته

* امکانات گسترده‌ای برای تنظیم سفارشی JSON وجود دارد (برچسب‌ها، inlining، skip کردن فیلدها و غیره) .

یک مثال مفهومی

فرض کنید می‌خواهید برای بولین‌ها (bool) به‌جای true/false از کاراکترهای ویژه مثل و استفاده کنید.

import (
"fmt"
"encoding/json/v2"
"encoding/json/v2/jsontext"
)

// Marshal custom برای bool:
boolMarshaler := json.MarshalToFunc(
func(enc *jsontext.Encoder, val bool) error {
if val {
return enc.WriteToken(jsontext.String("✓"))
}
return enc.WriteToken(jsontext.String("✗"))
},
)

// Marshal برای stringهای شبیه bool:
strMarshaler := json.MarshalToFunc(
func(enc *jsontext.Encoder, val string) error {
if val == "on" || val == "true" {
return enc.WriteToken(jsontext.String("✓"))
}
if val == "off" || val == "false" {
return enc.WriteToken(jsontext.String("✗"))
}
return json.SkipFunc
},
)

marshalers := json.JoinMarshalers(boolMarshaler, strMarshaler)

vals := []any{true, "off", "hello"}
data, err := json.Marshal(vals, json.WithMarshalers(marshalers))
fmt.Println(string(data), err)
// خروجی: ["✓","✗","hello"]


در این مثال:

* true به
* "off" به
* و رشتهٔ "hello" به حالت پیش‌فرض تبدیل می‌شود

📌 وضعیت کنونی و توصیه‌ها

*این Experimental: این ویژگی آزمایشی است و باید با GOEXPERIMENT=jsonv2 فعال شود
* نسخه فعلی encoding/json وقتی flag فعال باشد از json/v2 استفاده می‌کند و عملکرد قدیمی حفظ شده تا سازگاری کامل برقرار شود ([github.com][5]).
* توصیه شده: پروژه‌هایی که وابسته به عملکرد JSON هستند، با فعال‌سازی این flag تست شوند تا مشکلات ناسازگاری احتمالی شناسایی شود .

---
جمع‌بندی

*این json/v2 در Go 1.25 یک نسخه‌ی کاملاً بازطراحی‌شده است: سریع‌تر، انعطاف‌پذیرتر و پیشرفته‌تر.
* با قابلیت‌هایی مانند سفارشی‌سازی عمیق Marshal/Unmarshal و I/O مستقیم همراه است.
* هنوز آزمایشی‌ست؛ اگر پروژه‌ای دارید که نیاز به performance یا JSON پیچیده‌تری دارد، توصیه می‌شود با GOEXPERIMENT=jsonv2 امتحانش کنید.


👑 @gopher_academy
🔥7👍31
🔵 عنوان مقاله
BillionMail 3.0: Open Source Email Marketing Platform

🟢 خلاصه مقاله:

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

🟣لینک مقاله:
https://golangweekly.com/link/170948/web


👑 @gopher_academy
2
🔵 عنوان مقاله
Unregistry: Push Docker Images Directly to Remote Servers

🟢 خلاصه مقاله:

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

🟣لینک مقاله:
https://golangweekly.com/link/170944/web


👑 @gopher_academy
1👍1
🔵 عنوان مقاله
makefile-graph: Turn a Makefile into a Graph

🟢 خلاصه مقاله:

این مقاله درباره ابزاری بحث می‌کند که هم به عنوان کتابخانه و هم ابزار CLI قابل استفاده است و برای تحلیل Makefile‌ها طراحی شده است. این ابزار، وابستگی‌های میان مختلف هدف‌های تعیین شده در Makefile‌ها را می‌خواند و آن‌ها را به شکل گراف درآورده تا توسط ابزار گرافیکی Graphviz dot نمایش داده شود. ویژگی دوگانه بودن این ابزار به همراه قابلیت نمایش تصویری، تحلیل و بهینه‌سازی فرایندهای ساخت نرم‌افزار را برای توسعه‌دهندگان آسان‌تر می‌کند.

🟣لینک مقاله:
https://golangweekly.com/link/170946/web


👑 @gopher_academy
1👍1
خیلی جالبه، سازنده flask (از فریمورک های معروف پایتون) خودش پیشنهاد میکنه پروژه های جدید بکندی رو با گولنگ بنویسید!

https://lucumr.pocoo.org/2025/6/12/agentic-coding/

I've evaluated agent performance across different languages my workload, and if you can choose your language, I strongly recommend Go for new backend projects
👍95🍾2
🔵 عنوان مقاله
JSON Evolution in Go: From V1 to V2

🟢 خلاصه مقاله:

با ارائه بسته JSON v2 در نسخه 1.25 زبان برنامه نویسی Go که قرار است در ماه آگوست منتشر شود، ویژگی‌های جدید و بهبود‌های قابل توجهی معرفی شده‌اند. این به‌روزرسانی شامل افزودن برچسب‌های زمینه‌ی جدید، تغییرات در تنظیمات پیش‌فرض مارشال‌کردن، استفاده از رابط‌های برنامه‌نویسی API های جریانی، و دیگر امکانات است که برای تسهیل کار با داده‌های JSON در Go طراحی شده‌اند. یکی از مهم‌ترین پیشرفت‌ها، بهبود قابل توجه در فرآیند آنمارشال‌کردن است که تا ده برابر سریع‌تر از نسخ‌های قبلی گزارش شده‌ است، که این باعث افزایش کارایی و کاهش مصرف منابع در برنامه‌های کاربردی می‌شود.

🟣لینک مقاله:
https://golangweekly.com/link/170927/web


👑 @gopher_academy
👍21
🔵 عنوان مقاله
Cloud66's Go Stack in 2025

🟢 خلاصه مقاله:

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

🟣لینک مقاله:
https://golangweekly.com/link/170929/web


👑 @gopher_academy
1
🔵 عنوان مقاله
'Go Should Be More Opinionated'

🟢 خلاصه مقاله:

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

🟣لینک مقاله:
https://golangweekly.com/link/170932/web


👑 @gopher_academy
3
🔵 عنوان مقاله
♟️ Running a Million-Board Chess MMO in a Single Process

🟢 خلاصه مقاله:

این مقاله به توضیح دقیقی پرداخته است در رابطه با نحوه ساخت یک بازی شطرنج چندنفره بزرگ توسط یک توسعه‌دهنده بازی، که با استفاده از زبان برنامه‌نویسی Go در پشت‌صحنه، بدون هیچ مشکلی در عملکرد، انجام شده است. توسعه‌دهنده این فرایند را از طریق ویدیویی در یوتیوب به اشتراک گذاشته که هم آموزشی است و هم نمایشی از کاربرد Go در توسعه بازی‌های زمان-واقعی پیچیده. عبارت "Go Blue" به استفاده و حمایت از زبان Go در جامعه فناوری یا بازی‌سازی اشاره دارد.

🟣لینک مقاله:
https://golangweekly.com/link/171243/web


👑 @gopher_academy
3🔥2
🔴قابلیت Container-aware GOMAXPROCS ویژگی های جدید گولنگ نسخه 1.25


در Go 1.25، رفتار پیش‌فرض GOMAXPROCS (تعداد هسته‌های مجازی که به اجرای goroutineها اختصاص داده می‌شود) اکنون آگاه به محدودیت‌های cont GOMAXPROCS هم شده 1
* اگر quota عددی کسری ainer/cgroup است:

🧠 چه تغییری ایجاد شده؟

1. پیش‌فرض هوشمندانه در محیط‌های container

قبل از Go 1.25، اگر داخل یک کانتینر با CPU quota=1 اجرا می‌کردید، GOMAXPROCS برابر با تعداد کل CPU های میزبان (مثلاً 8 یا 32) بود.
حالا این مقدار با توجه به quota واقعی کانتینر تنظیم می‌شود:

* اگر quota برابر 1 باشد،باشد (مثلاً 2.3)، با گرد کردن به بالا مقدار 3 می‌گیرد
* حداقل مقدار، حتی برای quota=1 هم 2 خواهد بود، مگر اینکه affinity یا CPU فیزیکی کمتر باشد

2. بروزرسانی پویا در حین اجرای برنامه

اگر پس از شروع برنامه quota تغییر کند (مثلاً از Kubernetes)، runtime به‌صورت دوره‌ای (معمولاً هر ثانیه) مقدار GOMAXPROCS را به‌روز می‌کند .

3. امکان غیرفعال‌سازی

* اگر مقدار GOMAXPROCS دستی تنظیم شده یا در env مشخص شده باشد، این رفتار جدید غیرفعال می‌شود .
* همچنین می‌توانید با تنظیم Gontainermaxprocs=0 یا updatemaxprocs=0 رفتار را خاموش یا بروزرسانی پویا را متوقف کنید ([tip.golang.org][1]).

- 📚 مثال واقعی

فرض کنید در Kubernetes اجرای زیر را داریم:

kubectl run go-app --image=golang:1.25rc1 \
--limits="cpu=1"


درون برنامه:

fmt.Println("GOMAXPROCS:", runtime.GOMAXPROCS(0))


خروجی قبل از Go 1.25:

GOMAXPROCS: 8   // مثلاً روی یک نود ۸ هسته‌ای


در Go 1.25:

GOMAXPROCS: 1


اگر quota = 2.3 باشد، مقدار:

GOMAXPROCS: 3


و اگر quota = 1، ولی نود بزرگتر باشد، مقدار:

GOMAXPROCS: 2


حالا اگر حجم CPU محدودیت افزایش یابد، مثلاً از 1 به 2، مقدار نیز بدون نیاز به ری‌استارت برنامه بروزرسانی می‌شود

برای بازگرداندن به حالت پیش‌فرض پس از تنظیم دستی، می‌توانید بنویسید:

runtime.SetDefaultGOMAXPROCS()


چرا این مهم است؟

1. هماهنگی با منابع کانتینری – دیگر نیازی به تعیین دستی یا بسته شدن برنامه ندارید.

2. کاهش throttling – با منطبق شدن با quota، احتمال deschedule شدن threadها و تأخیر کاهش پیدا می‌کند .

3. کارایی بهتر GC و scheduler – هرچه GOMAXPROCS کمتر به real CPU نزدیک‌تر باشد، مصرف حافظه و context switch کاهش می‌یابد

4. مناسب برای Kubernetes و سرورلس – نیازی نیست ابزار اضافی مثل automaxprocs استفاده شود؛ همین رفتار در runtime تعبیه‌شده کافی است .

✳️ جمع‌بندی

در Go 1.25 به‌صورت هوشمندانه GOMAXPROCS را بر اساس محدودیت واقعی CPU در کانتینر تنظیم و بروزرسانی می‌کند. این ویژگی باعث اجرای بهینه‌تر برنامه‌ها در Kubernetes و محیط‌های مشابه می‌شود و نیاز به تنظیمات اضافی را حذف می‌کند. اگر در پروژه شما محدودیت CPU تعریف نکرده‌اید یا به رفتار پیشین نیاز دارید، می‌توانید با GODEBUG یا runtime.SetDefaultGOMAXPROCS() کنترل کنید.


👑 @gopher_academy
2👍1🎉1
🔵 عنوان مقاله
The Evolution of Caching Libraries in Go

🟢 خلاصه مقاله:

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

🟣لینک مقاله:
https://golangweekly.com/link/171241/web


👑 @gopher_academy
3
🔵 عنوان مقاله
An Interactive Tour of Go 1.25

🟢 خلاصه مقاله:

نسخه نهایی Go 1.25 قرار است در ماه آگوست منتشر شود، و فرآیند توسعه آن طبق برنامه پیش می‌رود. نخستین نسخه آزمایشی، RC1، منتشر شده و نسخه دوم، RC2، انتظار می‌رود هفته آینده عرضه شود. یادداشت‌های پیش‌نویس انتشار داده شده و شامل اطلاعات مفیدی درباره ویژگی‌ها و بهبود‌های جدید است. علاوه بر این، آنتون، شخصیت شناخته‌شده در جامعه Go، تور‌های تعاملی خود را ارائه می‌دهد که در آن‌ها می‌توان به ویرایش و اجرای نمونه‌های کد مستقیماً از طریق مرورگر پرداخت.

🟣لینک مقاله:
https://golangweekly.com/link/171237/web


👑 @gopher_academy
1👍1