Gopher Academy
📌 Memory Allocation in Go 🔹 در این پست به بررسی جزئیات مدیریت حافظه در زبان Go میپردازیم. درک درست از ساختار حافظه به شما کمک میکند عملکرد برنامههایتان را بهتر بهینه کنید و رفتار Garbage Collector را بهتر بفهمید. 🔵 Introduction 🔴 https://t.me/gopher_academy/4231…
🔹 Introduction – Memory Allocation in Go
مدیریت حافظه بخش حیاتی هر زبان برنامهنویسی است و Go هم از این قاعده مستثنی نیست. سرعت و کارایی برنامههای Go به شدت وابسته به نحوه تخصیص و مدیریت حافظه است.
هرچند Go با APIهای سادهای مثل
* بفهمیم چگونه runtime بازدهی بالایی دارد،
* نقاط ضعف و گلوگاههای احتمالی را شناسایی کنیم.
در این سری قرار است:
* با اجزای اصلی memory allocator در Go آشنا شویم،
* نحوه مدیریت حافظه برای اشیاء کوچک، متوسط و بزرگ را ببینیم،
* مدیریت stack در کنار heap را بررسی کنیم،
* و در نهایت با مطالعه case studyها**، تأثیر عملی این استراتژیها را در برنامههای واقعی درک کنیم.
قبل از ورود به جزئیات، بهتر است مفاهیم پایهای **Virtual Memory در سیستمعامل مرور شود.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
مدیریت حافظه بخش حیاتی هر زبان برنامهنویسی است و Go هم از این قاعده مستثنی نیست. سرعت و کارایی برنامههای Go به شدت وابسته به نحوه تخصیص و مدیریت حافظه است.
هرچند Go با APIهای سادهای مثل
new(T)
, &T{}
و make
پیچیدگیها را از دید برنامهنویس پنهان میکند، اما درک سازوکار پشت پرده به ما کمک میکند:* بفهمیم چگونه runtime بازدهی بالایی دارد،
* نقاط ضعف و گلوگاههای احتمالی را شناسایی کنیم.
در این سری قرار است:
* با اجزای اصلی memory allocator در Go آشنا شویم،
* نحوه مدیریت حافظه برای اشیاء کوچک، متوسط و بزرگ را ببینیم،
* مدیریت stack در کنار heap را بررسی کنیم،
* و در نهایت با مطالعه case studyها**، تأثیر عملی این استراتژیها را در برنامههای واقعی درک کنیم.
قبل از ورود به جزئیات، بهتر است مفاهیم پایهای **Virtual Memory در سیستمعامل مرور شود.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
❤1
Gopher Academy
📌 Memory Allocation in Go 🔹 در این پست به بررسی جزئیات مدیریت حافظه در زبان Go میپردازیم. درک درست از ساختار حافظه به شما کمک میکند عملکرد برنامههایتان را بهتر بهینه کنید و رفتار Garbage Collector را بهتر بفهمید. 🔵 Introduction 🔴 https://t.me/gopher_academy/4231…
🔹 Go’s View of Virtual Memory
یک برنامه Go در اصل یک پردازش فضای کاربر (user-space process) است و همان چیدمان استاندارد حافظه مجازی (Stack, Heap, BSS, Data) را دارد.
در Stack، Go از استک خاصی به نام g0 stack استفاده میکند که به نخ اصلی runtime (m0) متصل است.
متغیرهای global که مقدار اولیه دارند در بخش Data ذخیره میشوند، و متغیرهای global بدون مقدار اولیه در بخش BSS قرار میگیرند.
بر خلاف زبانهای سنتی مثل C که از Heap زیر program break استفاده میکنند، Go این Heap سنتی را برای اشیای خود به کار نمیبرد.
به جای آن، Go برای تخصیص حافظه اشیای heap و استک گوروتینها از memory-mapped segments استفاده میکند.
از اینجا به بعد، وقتی از "heap" در Go صحبت میکنیم، منظور همان بخش memory-mapped است (و نه heap سنتی زیر program break).
👉 به زبان ساده: Go یک heap اختصاصی روی memory-mapped segments میسازد و مدیریت حافظه را خودش انجام میدهد، نه اینکه از heap پیشفرض سیستم عامل استفاده کند.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
یک برنامه Go در اصل یک پردازش فضای کاربر (user-space process) است و همان چیدمان استاندارد حافظه مجازی (Stack, Heap, BSS, Data) را دارد.
در Stack، Go از استک خاصی به نام g0 stack استفاده میکند که به نخ اصلی runtime (m0) متصل است.
متغیرهای global که مقدار اولیه دارند در بخش Data ذخیره میشوند، و متغیرهای global بدون مقدار اولیه در بخش BSS قرار میگیرند.
بر خلاف زبانهای سنتی مثل C که از Heap زیر program break استفاده میکنند، Go این Heap سنتی را برای اشیای خود به کار نمیبرد.
به جای آن، Go برای تخصیص حافظه اشیای heap و استک گوروتینها از memory-mapped segments استفاده میکند.
از اینجا به بعد، وقتی از "heap" در Go صحبت میکنیم، منظور همان بخش memory-mapped است (و نه heap سنتی زیر program break).
👉 به زبان ساده: Go یک heap اختصاصی روی memory-mapped segments میسازد و مدیریت حافظه را خودش انجام میدهد، نه اینکه از heap پیشفرض سیستم عامل استفاده کند.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
❤1🔥1
Gopher Academy
📌 Memory Allocation in Go 🔹 در این پست به بررسی جزئیات مدیریت حافظه در زبان Go میپردازیم. درک درست از ساختار حافظه به شما کمک میکند عملکرد برنامههایتان را بهتر بهینه کنید و رفتار Garbage Collector را بهتر بفهمید. 🔵 Introduction 🔴 https://t.me/gopher_academy/4231…
برای مدیریت بهینهی حافظه، Go حافظهی تخصیصدادهشده از طریق memory mapping را به واحدهای سلسلهمراتبی تقسیم میکند:
ساختار حافظه:
Arena (۶۴MB)
بزرگترین واحد تخصیص در Go.
هر Arena فضایی به اندازهی ثابت ۶۴MB دارد.
اGo سعی میکند Arenaها رو پشتسر هم قرار بده، ولی همیشه تضمین نمیشه (به خاطر رفتار mmap).
Page (۸KB)
هر Arena به صفحات (Page) تقسیم میشود.
سایز هر Page: ۸KB.
این Pageها با Pageهای سیستمعامل (معمولاً ۴KB) متفاوت هستند.
تخصیص اشیاء:
اگر اندازهی شیء کوچکتر از ۸KB باشد → چندین شیء در یک Page جا میگیرند.
اگر اندازهی شیء دقیقاً ۸KB باشد → کل Page را اشغال میکند.
اگر اندازهی شیء بزرگتر از ۸KB باشد → روی چند Page گسترده میشود.
اGoroutine Stack
استک هر goroutine در همین Pageها نگهداری میشود.
هر استک در ابتدا فقط ۲KB است.
بنابراین یک Page (۸KB) میتواند تا ۴ goroutine stack را در خود جا دهد.
به زبان ساده:
اGo حافظه را اول به Arena (۶۴MB) تقسیم میکند، سپس هر Arena را به Page (۸KB) میشکند و این Pageها برای اشیاء مختلف یا استک goroutineها استفاده میشوند.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
ساختار حافظه:
Arena (۶۴MB)
بزرگترین واحد تخصیص در Go.
هر Arena فضایی به اندازهی ثابت ۶۴MB دارد.
اGo سعی میکند Arenaها رو پشتسر هم قرار بده، ولی همیشه تضمین نمیشه (به خاطر رفتار mmap).
Page (۸KB)
هر Arena به صفحات (Page) تقسیم میشود.
سایز هر Page: ۸KB.
این Pageها با Pageهای سیستمعامل (معمولاً ۴KB) متفاوت هستند.
تخصیص اشیاء:
اگر اندازهی شیء کوچکتر از ۸KB باشد → چندین شیء در یک Page جا میگیرند.
اگر اندازهی شیء دقیقاً ۸KB باشد → کل Page را اشغال میکند.
اگر اندازهی شیء بزرگتر از ۸KB باشد → روی چند Page گسترده میشود.
اGoroutine Stack
استک هر goroutine در همین Pageها نگهداری میشود.
هر استک در ابتدا فقط ۲KB است.
بنابراین یک Page (۸KB) میتواند تا ۴ goroutine stack را در خود جا دهد.
به زبان ساده:
اGo حافظه را اول به Arena (۶۴MB) تقسیم میکند، سپس هر Arena را به Page (۸KB) میشکند و این Pageها برای اشیاء مختلف یا استک goroutineها استفاده میشوند.
➖➖➖➖➖➖➖➖
👑 @gopher_academy
❤1👍1🏆1
🔵 عنوان مقاله
GoMLX: An Accelerated Machine Learning Framework for Go
🟢 خلاصه مقاله:
اGoMLX یک مجموعه کتابخانه و ابزار یادگیری ماشین برای زبان Go است که با تمرکز بر اجرای شتابگرفته و تجربهای سازگار با اکوسیستم Go ارائه میشود. این پروژه عملاً نقش جایگزینی برای PyTorch یا TensorFlow در دنیای Go را بازی میکند و ساخت مدل، آموزش، پردازش داده و استنتاج را با APIهای ساده و ایدئوماتیک Go ممکن میسازد. با وجود نام مشابه، هیچ ارتباطی با MLX از Apple ندارد و در حال حاضر فقط روی Linux قابل استفاده است؛ انتخابی که آن را برای محیطهای سروری و کانتینری رایج مناسب میکند.
#GoMLX #Go #MachineLearning #PyTorch #TensorFlow #Linux #MLOps
🟣لینک مقاله:
https://golangweekly.com/link/174649/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GoMLX: An Accelerated Machine Learning Framework for Go
🟢 خلاصه مقاله:
اGoMLX یک مجموعه کتابخانه و ابزار یادگیری ماشین برای زبان Go است که با تمرکز بر اجرای شتابگرفته و تجربهای سازگار با اکوسیستم Go ارائه میشود. این پروژه عملاً نقش جایگزینی برای PyTorch یا TensorFlow در دنیای Go را بازی میکند و ساخت مدل، آموزش، پردازش داده و استنتاج را با APIهای ساده و ایدئوماتیک Go ممکن میسازد. با وجود نام مشابه، هیچ ارتباطی با MLX از Apple ندارد و در حال حاضر فقط روی Linux قابل استفاده است؛ انتخابی که آن را برای محیطهای سروری و کانتینری رایج مناسب میکند.
#GoMLX #Go #MachineLearning #PyTorch #TensorFlow #Linux #MLOps
🟣لینک مقاله:
https://golangweekly.com/link/174649/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - gomlx/gomlx: GoMLX: An Accelerated Machine Learning Framework For Go
GoMLX: An Accelerated Machine Learning Framework For Go - gomlx/gomlx
❤2 1
🔵 عنوان مقاله
TableWriter 1.1: Render Rich Text-Based Tables
🟢 خلاصه مقاله:
جدولنویسی TableWriter 1.1 یک کتابخانه چندمنظوره برای رندر کردن جدولهای متنیِ خوانا در قالبهای مختلف است. خروجیهای استاندارد مانند ASCII، Unicode، Markdown و HTML را پوشش میدهد و برای ترمینالهای رنگی نیز مناسب است؛ بنابراین برای ابزارهای خط فرمان، گزارشها و مستندسازی انتخابی کاربردی محسوب میشود. تمرکز آن بر انعطافپذیری و خوانایی است تا با تنظیم چینش، فاصلهها و مرزبندی، دادههای متفاوت را به شکلی منظم نمایش دهد. README این پروژه با مثالهای فراوان، شروع کار را سریع و بیدردسر میکند.
#TableWriter #ASCII #Unicode #Markdown #HTML #Terminal #CLI #OpenSource
🟣لینک مقاله:
https://golangweekly.com/link/174651/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
TableWriter 1.1: Render Rich Text-Based Tables
🟢 خلاصه مقاله:
جدولنویسی TableWriter 1.1 یک کتابخانه چندمنظوره برای رندر کردن جدولهای متنیِ خوانا در قالبهای مختلف است. خروجیهای استاندارد مانند ASCII، Unicode، Markdown و HTML را پوشش میدهد و برای ترمینالهای رنگی نیز مناسب است؛ بنابراین برای ابزارهای خط فرمان، گزارشها و مستندسازی انتخابی کاربردی محسوب میشود. تمرکز آن بر انعطافپذیری و خوانایی است تا با تنظیم چینش، فاصلهها و مرزبندی، دادههای متفاوت را به شکلی منظم نمایش دهد. README این پروژه با مثالهای فراوان، شروع کار را سریع و بیدردسر میکند.
#TableWriter #ASCII #Unicode #Markdown #HTML #Terminal #CLI #OpenSource
🟣لینک مقاله:
https://golangweekly.com/link/174651/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - olekukonko/tablewriter: ASCII table in golang
ASCII table in golang. Contribute to olekukonko/tablewriter development by creating an account on GitHub.
❤2
🔵 عنوان مقاله
The Day the Linter Broke My Code
🟢 خلاصه مقاله:
**
روزِ خرابکاریِ linter یادآور این واقعیت است که تحلیل ایستا همیشه تمامِ زمینه را نمیبیند. یک «اصلاح بیضرر»—مثل حذف یک متغیر بهظاهر بلااستفاده—میتواند رفتار پنهانی یا الگوهای پویا را از کار بیندازد و کد را بشکند. راهحل، کنار گذاشتن linter نیست؛ بلکه تنظیم دقیق قوانین، پرهیز از autofix برای تغییرات معنایی، کاهش شدت برخی قوانین، افزودن مستندات و استثناهای صریح، و تکیه بر تستها و بازبینی انسانی است. از lint باید بهعنوان راهنما استفاده کرد، نه مرجع نهایی؛ بهویژه در کدهایی که با الگوهای پویا، reflection یا codegen کار میکنند. با بازخورد به نگهداران ابزارها، استفاده از حالتهای آگاه به نوع (مثل ESLint با TypeScript) و سیاستهای روشن در CI، میتوان مزایای lint را گرفت و ریسک «اصلاحات خطرناک» را کم کرد.
#linting #staticanalysis #codequality #developerexperience #CI #autofix #falsepositives #softwareengineering
🟣لینک مقاله:
https://golangweekly.com/link/174418/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
The Day the Linter Broke My Code
🟢 خلاصه مقاله:
**
روزِ خرابکاریِ linter یادآور این واقعیت است که تحلیل ایستا همیشه تمامِ زمینه را نمیبیند. یک «اصلاح بیضرر»—مثل حذف یک متغیر بهظاهر بلااستفاده—میتواند رفتار پنهانی یا الگوهای پویا را از کار بیندازد و کد را بشکند. راهحل، کنار گذاشتن linter نیست؛ بلکه تنظیم دقیق قوانین، پرهیز از autofix برای تغییرات معنایی، کاهش شدت برخی قوانین، افزودن مستندات و استثناهای صریح، و تکیه بر تستها و بازبینی انسانی است. از lint باید بهعنوان راهنما استفاده کرد، نه مرجع نهایی؛ بهویژه در کدهایی که با الگوهای پویا، reflection یا codegen کار میکنند. با بازخورد به نگهداران ابزارها، استفاده از حالتهای آگاه به نوع (مثل ESLint با TypeScript) و سیاستهای روشن در CI، میتوان مزایای lint را گرفت و ریسک «اصلاحات خطرناک» را کم کرد.
#linting #staticanalysis #codequality #developerexperience #CI #autofix #falsepositives #softwareengineering
🟣لینک مقاله:
https://golangweekly.com/link/174418/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
👍1
Forwarded from Bardia & Erfan
اگه با دلار ۱۰۰۰ تومنی زندگیتو جمع کردی
با دلار ۱۰۰ تومنی نصیحت نکن.
با دلار ۱۰۰ تومنی نصیحت نکن.
❤6🕊1
🔵 عنوان مقاله
Valgo 0.7: An Expressive Validator Library
🟢 خلاصه مقاله:
اValgo 0.7 یک کتابخانه اعتبارسنجی است که با تکیه بر generics، API ایمن از نظر نوع و قابلگسترش ارائه میدهد. بهجای استفاده از struct tags، قواعد بهصورت توابع نوشته میشوند؛ رویکردی که خوانایی، تستپذیری و ترکیبپذیری را افزایش میدهد و وابستگی به رشتهها و reflection را کاهش میدهد. نتیجه، اعتبارسنجی شفافتر و قابلنگهداریتری است که از بررسیهای ساده تا منطقهای پیچیده و دامنهمحور را پوشش میدهد و بهسادگی با لایههای مختلف کد ادغام میشود.
#Validation #Generics #TypeSafety #Extensibility #CleanCode #DeveloperExperience #SoftwareEngineering
🟣لینک مقاله:
https://golangweekly.com/link/174655/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Valgo 0.7: An Expressive Validator Library
🟢 خلاصه مقاله:
اValgo 0.7 یک کتابخانه اعتبارسنجی است که با تکیه بر generics، API ایمن از نظر نوع و قابلگسترش ارائه میدهد. بهجای استفاده از struct tags، قواعد بهصورت توابع نوشته میشوند؛ رویکردی که خوانایی، تستپذیری و ترکیبپذیری را افزایش میدهد و وابستگی به رشتهها و reflection را کاهش میدهد. نتیجه، اعتبارسنجی شفافتر و قابلنگهداریتری است که از بررسیهای ساده تا منطقهای پیچیده و دامنهمحور را پوشش میدهد و بهسادگی با لایههای مختلف کد ادغام میشود.
#Validation #Generics #TypeSafety #Extensibility #CleanCode #DeveloperExperience #SoftwareEngineering
🟣لینک مقاله:
https://golangweekly.com/link/174655/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - cohesivestack/valgo: Valgo is a type-safe, expressive, and extensible validator library for Golang. Supports localization…
Valgo is a type-safe, expressive, and extensible validator library for Golang. Supports localization and is built with generics. - cohesivestack/valgo
👍1🔥1
🔵 عنوان مقاله
the top 'programming languages' in 2025
🟢 خلاصه مقاله:
فهرست برترین زبانهای برنامهنویسی در 2025 نشان میدهد کجا واقعاً نرمافزار ساخته و نگهداری میشود؛ معیارهایی مثل میزان استفاده، تقاضای شغلی، بلوغ اکوسیستم، عملکرد و ابزارها در نظر گرفته شده است. زبانهای جاافتاده مثل Python، JavaScript/TypeScript، Java و C# همچنان ستونهای اصلیاند؛ C/C++ برای کارهای کمتأخیر و سیستمها و SQL برای داده ضروریاند، و رشد Rust بر اهمیت ایمنی و کارایی تاکید دارد؛ Kotlin و Swift نیز در موبایل قدرتمند ماندهاند. در این میان، Go در رتبه ۱۰ قرار گرفته چون سادگی، کامپایل سریع، همروندی با goroutine و channel و باینریهای مستقل را با پذیرش گسترده در فضای cloud‑native ترکیب میکند؛ پروژههایی مثل Docker و Kubernetes نقش آن را در زیرساخت نشان میدهند. جمعبندی: 2025 ترکیبی از ثبات و نوآوری است و انتخاب زبان باید بر اساس مسئله، مهارت تیم و نگهداشت بلندمدت باشد—اغلب در چارچوبی چندزبانه و عملگرایانه.
#ProgrammingLanguages #GoLang #Trends2025 #SoftwareEngineering #CloudNative #Developers #Rust #Python
🟣لینک مقاله:
https://golangweekly.com/link/174641/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
the top 'programming languages' in 2025
🟢 خلاصه مقاله:
فهرست برترین زبانهای برنامهنویسی در 2025 نشان میدهد کجا واقعاً نرمافزار ساخته و نگهداری میشود؛ معیارهایی مثل میزان استفاده، تقاضای شغلی، بلوغ اکوسیستم، عملکرد و ابزارها در نظر گرفته شده است. زبانهای جاافتاده مثل Python، JavaScript/TypeScript، Java و C# همچنان ستونهای اصلیاند؛ C/C++ برای کارهای کمتأخیر و سیستمها و SQL برای داده ضروریاند، و رشد Rust بر اهمیت ایمنی و کارایی تاکید دارد؛ Kotlin و Swift نیز در موبایل قدرتمند ماندهاند. در این میان، Go در رتبه ۱۰ قرار گرفته چون سادگی، کامپایل سریع، همروندی با goroutine و channel و باینریهای مستقل را با پذیرش گسترده در فضای cloud‑native ترکیب میکند؛ پروژههایی مثل Docker و Kubernetes نقش آن را در زیرساخت نشان میدهند. جمعبندی: 2025 ترکیبی از ثبات و نوآوری است و انتخاب زبان باید بر اساس مسئله، مهارت تیم و نگهداشت بلندمدت باشد—اغلب در چارچوبی چندزبانه و عملگرایانه.
#ProgrammingLanguages #GoLang #Trends2025 #SoftwareEngineering #CloudNative #Developers #Rust #Python
🟣لینک مقاله:
https://golangweekly.com/link/174641/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
IEEE Spectrum
The Top Programming Languages 2025
Python reigns supreme again, but is AI changing the game for programming languages? Find out how coding is transforming.
💋یادی کنیم از دوتا پست قدیمی این جنل که برای خیلی ها مفید بود
✍️برای برقراری ارتباط بین دو سرویس با استفاده از gRPC
https://t.me/gopher_academy/3051
✍️برای ارتباط بین دو سرویس با استفاده از Kafka
https://t.me/gopher_academy/3052
➖➖➖➖➖➖➖➖
👑 @gopher_academy
✍️برای برقراری ارتباط بین دو سرویس با استفاده از gRPC
https://t.me/gopher_academy/3051
✍️برای ارتباط بین دو سرویس با استفاده از Kafka
https://t.me/gopher_academy/3052
➖➖➖➖➖➖➖➖
👑 @gopher_academy
👨💻1 1
Forwarded from VIP
🚀 به دنیای توسعه و تکنولوژی خوش اومدی!
اگر به موضوعات زیر علاقهمندی:
🔹 Golang
🔹 Linux & DevOps
🔹 Software Engineering
🔹 AI & Machine Learning
🔹 فرصتهای شغلی ریموت (خارجی و داخلی)
ما برات یه مجموعه کانالهای تخصصی ساختیم تا همیشه بهروز، حرفهای و الهامبخش بمونی!
📚 یادگیری، فرصت، شبکهسازی و پیشرفت، همش اینجاست...
📌 از این لینک همه چنلهامونو یهجا ببین و جوین شو:
👉 https://t.me/addlist/AJ7rh2IzIh02NTI0
اگر به موضوعات زیر علاقهمندی:
🔹 Golang
🔹 Linux & DevOps
🔹 Software Engineering
🔹 AI & Machine Learning
🔹 فرصتهای شغلی ریموت (خارجی و داخلی)
ما برات یه مجموعه کانالهای تخصصی ساختیم تا همیشه بهروز، حرفهای و الهامبخش بمونی!
📚 یادگیری، فرصت، شبکهسازی و پیشرفت، همش اینجاست...
📌 از این لینک همه چنلهامونو یهجا ببین و جوین شو:
👉 https://t.me/addlist/AJ7rh2IzIh02NTI0
🤝1
🔵 عنوان مقاله
Twenty Talks from GopherCon UK 2025
🟢 خلاصه مقاله:
** پلیلیست YouTube با عنوان Twenty Talks from GopherCon UK 2025 مجموعهای از بیست ارائه تازهمنتشرشده از کنفرانس ماه گذشته Go در لندن را یکجا گرد آورده است. همهی Talks عمیق و فنیاند؛ اگر فقط یکی را میخواهید ببینید، پیشنهاد میشود “What’s Coming in Go 1” از Daniel Marti را از دست ندهید.
#Go #Golang #GopherConUK #YouTube #ConferenceTalks #SoftwareEngineering #BackendDevelopment
🟣لینک مقاله:
https://golangweekly.com/link/174632/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Twenty Talks from GopherCon UK 2025
🟢 خلاصه مقاله:
** پلیلیست YouTube با عنوان Twenty Talks from GopherCon UK 2025 مجموعهای از بیست ارائه تازهمنتشرشده از کنفرانس ماه گذشته Go در لندن را یکجا گرد آورده است. همهی Talks عمیق و فنیاند؛ اگر فقط یکی را میخواهید ببینید، پیشنهاد میشود “What’s Coming in Go 1” از Daniel Marti را از دست ندهید.
#Go #Golang #GopherConUK #YouTube #ConferenceTalks #SoftwareEngineering #BackendDevelopment
🟣لینک مقاله:
https://golangweekly.com/link/174632/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
YouTube
GopherCon UK 2025
Discover all the sessions from GopherCon 2025, the premier Go programming conference bringing together the global Go community. Explore the latest in Go deve...
❤2
🔵 عنوان مقاله
Practical Networking Patterns in Go
🟢 خلاصه مقاله:
** این بخش تازه از Go Optimization Guide مجموعهای از ۱۳ راهنما را ارائه میکند که به شکل عملی ساخت اپلیکیشنهای شبکهای مقیاسپذیر با Go را پوشش میدهند. محورهای اصلی شامل دستیابی به «همزمانی بسیار بالا»، الگوهای مدیریت اتصال، کنترل فشار، زمانبندی و لغو عملیات، همراه با بنچمارکگیری واقعگرایانه و عیبیابی مبتنی بر سنجهها، پروفایلینگ و تِرِیسینگ است. همچنین درباره انتخاب و پیکربندی پروتکلهای انتقال، مدیریت خطا، اندازهگیری بافرها و تنظیمات سطح پایین برای پایداری و عملکرد بهتر توضیح میدهد. خروجی نهایی مجموعهای از الگوهای عملی و چکلیستهاست که به تیمها کمک میکند توان عملیاتی را افزایش دهند، تأخیرهای دُم توزیع را کاهش دهند و سرویسهای Go را در مقیاس بهصورت پایدار و شفاف اداره کنند.
#Go #Golang #Networking #Concurrency #Benchmarking #Performance #Scalability #Systems
🟣لینک مقاله:
https://golangweekly.com/link/174636/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Practical Networking Patterns in Go
🟢 خلاصه مقاله:
** این بخش تازه از Go Optimization Guide مجموعهای از ۱۳ راهنما را ارائه میکند که به شکل عملی ساخت اپلیکیشنهای شبکهای مقیاسپذیر با Go را پوشش میدهند. محورهای اصلی شامل دستیابی به «همزمانی بسیار بالا»، الگوهای مدیریت اتصال، کنترل فشار، زمانبندی و لغو عملیات، همراه با بنچمارکگیری واقعگرایانه و عیبیابی مبتنی بر سنجهها، پروفایلینگ و تِرِیسینگ است. همچنین درباره انتخاب و پیکربندی پروتکلهای انتقال، مدیریت خطا، اندازهگیری بافرها و تنظیمات سطح پایین برای پایداری و عملکرد بهتر توضیح میدهد. خروجی نهایی مجموعهای از الگوهای عملی و چکلیستهاست که به تیمها کمک میکند توان عملیاتی را افزایش دهند، تأخیرهای دُم توزیع را کاهش دهند و سرویسهای Go را در مقیاس بهصورت پایدار و شفاف اداره کنند.
#Go #Golang #Networking #Concurrency #Benchmarking #Performance #Scalability #Systems
🟣لینک مقاله:
https://golangweekly.com/link/174636/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
goperf.dev
Practical Networking Patterns in Go - Go Optimization Guide
Patterns and Techniques for Writing High-Performance Applications with Go
❤2
اصطلاح requirement driven vibe coding چیست؟
https://t.me/Software_Labdon/599?single
مزیت استفاده از این روش چیست؟
https://t.me/Software_Labdon/601
مفهوم feature creep یا scope creep چیست؟
https://t.me/Software_Labdon/602
مفهوم bureaucratic در توسعه نرم افزار چیست؟
https://t.me/Software_Labdon/603
https://t.me/Software_Labdon/599?single
مزیت استفاده از این روش چیست؟
https://t.me/Software_Labdon/601
مفهوم feature creep یا scope creep چیست؟
https://t.me/Software_Labdon/602
مفهوم bureaucratic در توسعه نرم افزار چیست؟
https://t.me/Software_Labdon/603
❤1
🔵 عنوان مقاله
Kubernetes CPU Limits and Go
🟢 خلاصه مقاله:
بهروزرسانی این مقاله توضیح میدهد که چرا runtime زبان Go بهطور پیشفرض از محدودیتهای CPU در Kubernetes خبر ندارد و چگونه همین موضوع میتواند به oversubscription و در نتیجه throttling و جهشهای تاخیری منجر شود. راهحل عملی، همراستاکردن GOMAXPROCS با سهم واقعی CPU کانتینر (براساس cgroups) است؛ یا با تنظیم متغیر محیطی GOMAXPROCS یا با استفاده از کتابخانه go.uber.org/automaxprocs تا runtime با ظرفیت واقعی زمانبندی کند. از نظر عملیاتی، برای سرویسهای حساس به تاخیر بهتر است از limit سخت CPU پرهیز کرده و به request بههمراه HPA اتکا کنید؛ در صورت اجبار به limit، سقف را طوری بگذارید که throttling حداقلی باشد و در صورت نیاز از CPU pinning و QoS مناسب بهره بگیرید. ارزیابی این تنظیمات با سنجههایی مانند container_cpu_cfs_throttled_seconds_total و توزیع تاخیر و نیز متریکهای runtime در Go، تصویر دقیقی از تاثیر بهینهسازیها ارائه میکند.
#Kubernetes #Go #GOMAXPROCS #cgroups #CPUThrottling #ContainerPerformance #DevOps #SRE
🟣لینک مقاله:
https://golangweekly.com/link/174644/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Kubernetes CPU Limits and Go
🟢 خلاصه مقاله:
بهروزرسانی این مقاله توضیح میدهد که چرا runtime زبان Go بهطور پیشفرض از محدودیتهای CPU در Kubernetes خبر ندارد و چگونه همین موضوع میتواند به oversubscription و در نتیجه throttling و جهشهای تاخیری منجر شود. راهحل عملی، همراستاکردن GOMAXPROCS با سهم واقعی CPU کانتینر (براساس cgroups) است؛ یا با تنظیم متغیر محیطی GOMAXPROCS یا با استفاده از کتابخانه go.uber.org/automaxprocs تا runtime با ظرفیت واقعی زمانبندی کند. از نظر عملیاتی، برای سرویسهای حساس به تاخیر بهتر است از limit سخت CPU پرهیز کرده و به request بههمراه HPA اتکا کنید؛ در صورت اجبار به limit، سقف را طوری بگذارید که throttling حداقلی باشد و در صورت نیاز از CPU pinning و QoS مناسب بهره بگیرید. ارزیابی این تنظیمات با سنجههایی مانند container_cpu_cfs_throttled_seconds_total و توزیع تاخیر و نیز متریکهای runtime در Go، تصویر دقیقی از تاثیر بهینهسازیها ارائه میکند.
#Kubernetes #Go #GOMAXPROCS #cgroups #CPUThrottling #ContainerPerformance #DevOps #SRE
🟣لینک مقاله:
https://golangweekly.com/link/174644/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
pkg.go.dev
automaxprocs package - go.uber.org/automaxprocs - Go Packages
Package automaxprocs automatically sets GOMAXPROCS to match the Linux container CPU quota, if any.
❤1