🔵 عنوان مقاله
Flaggy 1.6: Idiomatic Go Command Line Input Parsing
🟢 خلاصه مقاله:
Flaggy 1.6 یک کتابخانه Go برای پارس کردن ورودی خط فرمان بهصورت مطابق با الگوهای رایج Go است. از زیرفرمانها، مقادیر موقعیتی و قرار گرفتن فلگها در هر جای خط فرمان پشتیبانی میکند. هیچ وابستگی خارجی ندارد و شما را به الگوی خاصی از چیدمان پروژه یا پکیج ملزم نمیکند.
🟣لینک مقاله:
https://golangweekly.com/link/174426/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Flaggy 1.6: Idiomatic Go Command Line Input Parsing
🟢 خلاصه مقاله:
Flaggy 1.6 یک کتابخانه Go برای پارس کردن ورودی خط فرمان بهصورت مطابق با الگوهای رایج Go است. از زیرفرمانها، مقادیر موقعیتی و قرار گرفتن فلگها در هر جای خط فرمان پشتیبانی میکند. هیچ وابستگی خارجی ندارد و شما را به الگوی خاصی از چیدمان پروژه یا پکیج ملزم نمیکند.
🟣لینک مقاله:
https://golangweekly.com/link/174426/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - integrii/flaggy: Idiomatic Go input parsing with subcommands, positional values, and flags at any position. No required…
Idiomatic Go input parsing with subcommands, positional values, and flags at any position. No required project or package layout and no external dependencies. - integrii/flaggy
👍2❤1
🔵 عنوان مقاله
force Claude Code to loop over and over
🟢 خلاصه مقاله:
در یک آزمایش تکراری با یک دستیار کدنویسی، زبانی «شبیه Go» با پوستهای از اصطلاحات نسل Z ساخته شد که Cursed نام گرفت. این زبان با وجود ظاهر شوخطبعانهاش، عملاً کار میکند و از طریق LLVM به باینریهای بومی کامپایل میشود. پروژه نشان میدهد میتوان با چرخههای بازخورد متوالیِ هوش مصنوعی، از ایده تا یک زنجیره ابزار کامپایلر قابل استفاده پیش رفت.
🟣لینک مقاله:
https://golangweekly.com/link/174064/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
force Claude Code to loop over and over
🟢 خلاصه مقاله:
در یک آزمایش تکراری با یک دستیار کدنویسی، زبانی «شبیه Go» با پوستهای از اصطلاحات نسل Z ساخته شد که Cursed نام گرفت. این زبان با وجود ظاهر شوخطبعانهاش، عملاً کار میکند و از طریق LLVM به باینریهای بومی کامپایل میشود. پروژه نشان میدهد میتوان با چرخههای بازخورد متوالیِ هوش مصنوعی، از ایده تا یک زنجیره ابزار کامپایلر قابل استفاده پیش رفت.
🟣لینک مقاله:
https://golangweekly.com/link/174064/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Geoffrey Huntley
i ran Claude in a loop for three months, and it created a genz programming language called cursed
It's a strange feeling knowing that you can create anything, and I'm starting to wonder if there's a seventh stage to the "people stages of AI adoption by software developers"
whereby that seventh stage is essentially this scene in the matrix...
It's where…
whereby that seventh stage is essentially this scene in the matrix...
It's where…
🤝1
🔵 عنوان مقاله
Retro AIM Server: A Way to Get AIM and ICQ Working Again?
🟢 خلاصه مقاله:
یک پروژه کوچک و کنجکاویبرانگیز است که با یک سرور خودمیزبان نوشتهشده با Go، امکان اتصال دوباره کلاینتهای قدیمی AIM و ICQ را فراهم میکند تا بتوانند خارج از سرویسهای رسمی از کارافتاده، دوباره وارد شوند و چت کنند. کاربردش بیشتر برای نوستالژی، حفظ تاریخ دیجیتال و آزمایش است: میتوانید یک شبکه خصوصی سبک برای دوستان، کلاس یا نمایشگاه راه بیندازید و حالوهوای پیامرسانی اوایل دهه ۲۰۰۰ را تجربه کنید. این ابزار به اندازه لازم از پروتکلهای قدیمی را پیادهسازی میکند و بهدلیل قابلحمل بودن Go، روی لپتاپ، سرور خانگی یا فضای ابری بهراحتی اجرا میشود. محدودیتها: به شبکههای اصلی AOL/ICQ وصل نمیشود، سازگاری به نسخه کلاینتها وابسته است و از نظر امنیتی بیشتر جنبه آموزشی/تفننی دارد، نه تولیدی.
#GoLang #AIM #ICQ #RetroTech #InstantMessaging #OpenSource #SelfHosted
🟣لینک مقاله:
https://golangweekly.com/link/174440/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Retro AIM Server: A Way to Get AIM and ICQ Working Again?
🟢 خلاصه مقاله:
یک پروژه کوچک و کنجکاویبرانگیز است که با یک سرور خودمیزبان نوشتهشده با Go، امکان اتصال دوباره کلاینتهای قدیمی AIM و ICQ را فراهم میکند تا بتوانند خارج از سرویسهای رسمی از کارافتاده، دوباره وارد شوند و چت کنند. کاربردش بیشتر برای نوستالژی، حفظ تاریخ دیجیتال و آزمایش است: میتوانید یک شبکه خصوصی سبک برای دوستان، کلاس یا نمایشگاه راه بیندازید و حالوهوای پیامرسانی اوایل دهه ۲۰۰۰ را تجربه کنید. این ابزار به اندازه لازم از پروتکلهای قدیمی را پیادهسازی میکند و بهدلیل قابلحمل بودن Go، روی لپتاپ، سرور خانگی یا فضای ابری بهراحتی اجرا میشود. محدودیتها: به شبکههای اصلی AOL/ICQ وصل نمیشود، سازگاری به نسخه کلاینتها وابسته است و از نظر امنیتی بیشتر جنبه آموزشی/تفننی دارد، نه تولیدی.
#GoLang #AIM #ICQ #RetroTech #InstantMessaging #OpenSource #SelfHosted
🟣لینک مقاله:
https://golangweekly.com/link/174440/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - mk6i/retro-aim-server: Self-hostable instant messaging server compatible with classic AIM and ICQ clients. (Independently…
Self-hostable instant messaging server compatible with classic AIM and ICQ clients. (Independently developed, not affiliated with or endorsed by AOL) - mk6i/retro-aim-server
👍1
🔵 عنوان مقاله
GitHub's Dependabot now supports
🟢 خلاصه مقاله:
** GitHub قابلیت جدیدی به Dependabot اضافه کرده تا اکنون بتواند Go modules را از private registries نیز بهصورت خودکار بهروزرسانی کند. این تغییر برای تیمهایی که ترکیبی از پکیجهای عمومی و داخلی دارند مهم است، چون دیگر مدیریت نسخههای داخلی دستی یا با ابزارهای سفارشی انجام نمیشود و کل گراف وابستگیها پوشش داده میشود. با پیکربندی dependabot.yml و افزودن اطلاعات دسترسی به رجیستری خصوصی، Dependabot میتواند برای بهروزرسانیها Pull Request بسازد و انتشار وصلههای امنیتی را به کدهای وابسته تسهیل کند. Blake Gentry جزئیات پیکربندی، نمونهها و نکات رفع اشکال را نیز توضیح میدهد.
#Dependabot #GitHub #Go #Golang #PrivateRegistry #DependencyManagement #SoftwareSupplyChain #Security
🟣لینک مقاله:
https://golangweekly.com/link/174441/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub's Dependabot now supports
🟢 خلاصه مقاله:
** GitHub قابلیت جدیدی به Dependabot اضافه کرده تا اکنون بتواند Go modules را از private registries نیز بهصورت خودکار بهروزرسانی کند. این تغییر برای تیمهایی که ترکیبی از پکیجهای عمومی و داخلی دارند مهم است، چون دیگر مدیریت نسخههای داخلی دستی یا با ابزارهای سفارشی انجام نمیشود و کل گراف وابستگیها پوشش داده میشود. با پیکربندی dependabot.yml و افزودن اطلاعات دسترسی به رجیستری خصوصی، Dependabot میتواند برای بهروزرسانیها Pull Request بسازد و انتشار وصلههای امنیتی را به کدهای وابسته تسهیل کند. Blake Gentry جزئیات پیکربندی، نمونهها و نکات رفع اشکال را نیز توضیح میدهد.
#Dependabot #GitHub #Go #Golang #PrivateRegistry #DependencyManagement #SoftwareSupplyChain #Security
🟣لینک مقاله:
https://golangweekly.com/link/174441/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
The GitHub Blog
Go private registry support for Dependabot now generally available - GitHub Changelog
Dependabot can now update private Go modules hosted on enterprise registries and behind GOPROXY-compatible private proxies, as well as public modules, within the same workflow. This enables automated version and…
🔵 عنوان مقاله
graphics.gd: Use Go with the Godot Game Engine
🟢 خلاصه مقاله:
اGodot یک موتور محبوب برای ساخت بازیهای 2D و 3D است و با وجود شباهت نام، ربطی به Go ندارد. پروژه graphics.gd پلی میان این دو میزند: یک لایه runtime و ابزار فراهم میکند تا بتوانید منطق بازی و اپ را با Go بنویسید و همزمان از امکانات و گردشکار Godot بهره ببرید. این رویکرد، ویژگیهای کراسپلتفرم Godot را حفظ میکند و اکنون حتی امکان ساخت اپهای iOS با Go را نیز فراهم کرده است. نتیجه، مسیری عملی برای توسعهدهندگان Go و کاربران Godot است که میخواهند کدنویسی را با Go انجام دهند بیآنکه از مزیتهای خود Godot چشمپوشی کنند.
#Go #Godot #Golang #GameDev #iOS #Bindings #CrossPlatform #OpenSource
🟣لینک مقاله:
https://golangweekly.com/link/174443/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
graphics.gd: Use Go with the Godot Game Engine
🟢 خلاصه مقاله:
اGodot یک موتور محبوب برای ساخت بازیهای 2D و 3D است و با وجود شباهت نام، ربطی به Go ندارد. پروژه graphics.gd پلی میان این دو میزند: یک لایه runtime و ابزار فراهم میکند تا بتوانید منطق بازی و اپ را با Go بنویسید و همزمان از امکانات و گردشکار Godot بهره ببرید. این رویکرد، ویژگیهای کراسپلتفرم Godot را حفظ میکند و اکنون حتی امکان ساخت اپهای iOS با Go را نیز فراهم کرده است. نتیجه، مسیری عملی برای توسعهدهندگان Go و کاربران Godot است که میخواهند کدنویسی را با Go انجام دهند بیآنکه از مزیتهای خود Godot چشمپوشی کنند.
#Go #Godot #Golang #GameDev #iOS #Bindings #CrossPlatform #OpenSource
🟣لینک مقاله:
https://golangweekly.com/link/174443/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - quaadgras/graphics.gd: Go + Godot 4.5
Go + Godot 4.5. Contribute to quaadgras/graphics.gd development by creating an account on GitHub.
🔵 عنوان مقاله
Using Go Channels to Solve Interface Impedance Mismatch
🟢 خلاصه مقاله:
استفاده از Go Channels برای رفع ناسازگاری بین رابطها
این یادداشت نشان میدهد که چگونه میتوان از Go Channels نه برای همزمانی، بلکه بهعنوان یک لایه تطبیق سبک استفاده کرد. Zach Musgrave توضیح میدهد که در مواجهه با “interface impedance mismatch”—جایی که یک API داده را بهصورت push میدهد و دیگری آن را بهصورت pull مصرف میکند، یا یکی جریانمحور است و دیگری تکرارشونده—یک Channel میتواند بهعنوان بافری خنثی، این دو جهان را بدون تغییرات اساسی در کد به هم متصل کند. در این الگو، تولیدکننده در همان جریان اجرای عادی دادهها را داخل Channel میگذارد و مصرفکننده با الگوی خواندن رایج از روی Channel آنها را برمیدارد؛ نیازی به goroutine یا معماری همزمانی پیچیده نیست. مزیتها شامل جداسازی بهتر، سادهسازی تبدیل بین رابطها، و تستپذیری بالاتر است؛ با این احتیاطها که اندازه بافر معقول انتخاب شود و استفاده غیرهمزمانی از Channel بهوضوح مستند گردد. پیام اصلی: Channels فقط برای همزمانی نیستند؛ آنها یک واسط ترکیبی مفید برای آشتی دادن APIها—بهویژه در تبدیل push/pull و جریان/تکرار—هستند.
#Go #Golang #Channels #APIDesign #InterfaceImpedanceMismatch #SoftwareEngineering #DesignPatterns #GoTips
🟣لینک مقاله:
https://golangweekly.com/link/174421/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Using Go Channels to Solve Interface Impedance Mismatch
🟢 خلاصه مقاله:
استفاده از Go Channels برای رفع ناسازگاری بین رابطها
این یادداشت نشان میدهد که چگونه میتوان از Go Channels نه برای همزمانی، بلکه بهعنوان یک لایه تطبیق سبک استفاده کرد. Zach Musgrave توضیح میدهد که در مواجهه با “interface impedance mismatch”—جایی که یک API داده را بهصورت push میدهد و دیگری آن را بهصورت pull مصرف میکند، یا یکی جریانمحور است و دیگری تکرارشونده—یک Channel میتواند بهعنوان بافری خنثی، این دو جهان را بدون تغییرات اساسی در کد به هم متصل کند. در این الگو، تولیدکننده در همان جریان اجرای عادی دادهها را داخل Channel میگذارد و مصرفکننده با الگوی خواندن رایج از روی Channel آنها را برمیدارد؛ نیازی به goroutine یا معماری همزمانی پیچیده نیست. مزیتها شامل جداسازی بهتر، سادهسازی تبدیل بین رابطها، و تستپذیری بالاتر است؛ با این احتیاطها که اندازه بافر معقول انتخاب شود و استفاده غیرهمزمانی از Channel بهوضوح مستند گردد. پیام اصلی: Channels فقط برای همزمانی نیستند؛ آنها یک واسط ترکیبی مفید برای آشتی دادن APIها—بهویژه در تبدیل push/pull و جریان/تکرار—هستند.
#Go #Golang #Channels #APIDesign #InterfaceImpedanceMismatch #SoftwareEngineering #DesignPatterns #GoTips
🟣لینک مقاله:
https://golangweekly.com/link/174421/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Dolthub
Go channels to solve interface impedance mismatch
Learn how Go channels can solve a particular form of interface mismatch common in application development.
🔵 عنوان مقاله
GopherCon 2025 Go Contributor Summit Notes
🟢 خلاصه مقاله:
در GopherCon 2025 جمع زیادی از مشارکتکنندگان Go گرد هم آمدند و درباره مدیریت وابستگیها، روند بررسی و پذیرش پیشنهادهای زبانی، کارایی و الگوهای بهینه در cgo، امنیت و پیادهسازی WebAuthn، وضعیت فازینگ و پوشش تست، و هدفگیری WebAssembly (و حتی بهصورت گذرا JVM) گفتگو کردند. محورهای اصلی شامل بهبود reproducible builds و امنیت در اکوسیستم ماژولها، شفافتر و کارآمدتر شدن فرآیند پروپوزالها با درسآموختههای generics و حفظ سازگاری عقبرو، کاهش سربار مرز Go/C در cgo، بلوغ فازینگ و پوشش در CI، و چالشهای Wasm/WASI مانند اندازه باینری، زمان راهاندازی و async بود. هرچند یادداشتها خاماند، اما جهتگیریها، اولویتها و سوالات باز را روشن میکنند و انتظار میرود با مسائل پیگیری، اسناد طراحی و دعوت به بازخورد از سوی جامعه ادامه یابد.
#Go #GopherCon #cgo #WebAuthn #WebAssembly #Fuzzing #DependencyManagement #OpenSource
🟣لینک مقاله:
https://golangweekly.com/link/174417/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GopherCon 2025 Go Contributor Summit Notes
🟢 خلاصه مقاله:
در GopherCon 2025 جمع زیادی از مشارکتکنندگان Go گرد هم آمدند و درباره مدیریت وابستگیها، روند بررسی و پذیرش پیشنهادهای زبانی، کارایی و الگوهای بهینه در cgo، امنیت و پیادهسازی WebAuthn، وضعیت فازینگ و پوشش تست، و هدفگیری WebAssembly (و حتی بهصورت گذرا JVM) گفتگو کردند. محورهای اصلی شامل بهبود reproducible builds و امنیت در اکوسیستم ماژولها، شفافتر و کارآمدتر شدن فرآیند پروپوزالها با درسآموختههای generics و حفظ سازگاری عقبرو، کاهش سربار مرز Go/C در cgo، بلوغ فازینگ و پوشش در CI، و چالشهای Wasm/WASI مانند اندازه باینری، زمان راهاندازی و async بود. هرچند یادداشتها خاماند، اما جهتگیریها، اولویتها و سوالات باز را روشن میکنند و انتظار میرود با مسائل پیگیری، اسناد طراحی و دعوت به بازخورد از سوی جامعه ادامه یابد.
#Go #GopherCon #cgo #WebAuthn #WebAssembly #Fuzzing #DependencyManagement #OpenSource
🟣لینک مقاله:
https://golangweekly.com/link/174417/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Google Docs
GopherCon 2025 Go Contributor Summit Notes
GopherCon 2025 Go Contributor Summit Notes 2025-08-26 https://go.dev/s/gc25-summit Attendees: Madhav Jivrajani, madhav.jiv@gmail.com Jake Bailey (@jakebailey) Carlos Amedee (@cagedmantis) Filippo Valsorda (@FiloSottile) filippo@golang.org Roxy Light (@zombiezen)…
🔵 عنوان مقاله
How to Implement the Outbox Pattern in Go and Postgres
🟢 خلاصه مقاله:
** این مقاله توضیح میدهد چگونه با الگوی Outbox در کنار Go و Postgres، مشکل دونوشتن را حل کنیم و ارسال رویدادها را قابلاعتماد کنیم. ایده اصلی این است که در یک تراکنش واحد، هم تغییرات دامنه و هم رکورد مربوط به رویداد در جدول outbox ذخیره شود تا یا هر دو باهم انجام شوند یا هیچکدام. سپس یک پردازشگر پسزمینه رکوردهای معوق را با SELECT … FOR UPDATE SKIP LOCKED برداشته، آنها را به سامانهای مثل Kafka یا RabbitMQ یا یک وبهوک ارسال میکند و وضعیتشان را به processed تغییر میدهد.
نکات کلیدی پیادهسازی شامل: طراحی جدول outbox با فیلدهایی مانند type، payload (معمولاً JSON)، status، retry_count و زمانها؛ پوشش هر دو عملیات (نوشتن دامنه و درج outbox) در یک تراکنش؛ پیادهسازی worker در Go برای برداشت دستهای، ارسال، ثبت موفقیت/خطا و بازآزمایی با backoff؛ تکیه بر تحویل حداقل-یکبار همراه با مصرفکنندههای idempotent برای مدیریت تکرار؛ و پایش شاخصهایی مثل تأخیر برداشت و نرخ شکست. برای بهینگی عملیاتی، پاکسازی دورهای رکوردهای پردازششده، ایندکسگذاری مناسب، رسیدگی به پیامهای مشکلدار (dead-letter) و حفظ ترتیب رویدادها در سطح aggregate ضروری است. ترکیب polling با LISTEN/NOTIFY در Postgres میتواند زمان واکنش را بهتر کند. نتیجه، راهکاری ساده و مقیاسپذیر است که بدون تراکنشهای توزیعشده، قابلیت اتکا را در معماری رویدادمحور فراهم میکند.
#OutboxPattern #Go #Postgres #Microservices #EventDriven #TransactionalOutbox #Messaging #Reliability
🟣لینک مقاله:
https://golangweekly.com/link/174422/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
How to Implement the Outbox Pattern in Go and Postgres
🟢 خلاصه مقاله:
** این مقاله توضیح میدهد چگونه با الگوی Outbox در کنار Go و Postgres، مشکل دونوشتن را حل کنیم و ارسال رویدادها را قابلاعتماد کنیم. ایده اصلی این است که در یک تراکنش واحد، هم تغییرات دامنه و هم رکورد مربوط به رویداد در جدول outbox ذخیره شود تا یا هر دو باهم انجام شوند یا هیچکدام. سپس یک پردازشگر پسزمینه رکوردهای معوق را با SELECT … FOR UPDATE SKIP LOCKED برداشته، آنها را به سامانهای مثل Kafka یا RabbitMQ یا یک وبهوک ارسال میکند و وضعیتشان را به processed تغییر میدهد.
نکات کلیدی پیادهسازی شامل: طراحی جدول outbox با فیلدهایی مانند type، payload (معمولاً JSON)، status، retry_count و زمانها؛ پوشش هر دو عملیات (نوشتن دامنه و درج outbox) در یک تراکنش؛ پیادهسازی worker در Go برای برداشت دستهای، ارسال، ثبت موفقیت/خطا و بازآزمایی با backoff؛ تکیه بر تحویل حداقل-یکبار همراه با مصرفکنندههای idempotent برای مدیریت تکرار؛ و پایش شاخصهایی مثل تأخیر برداشت و نرخ شکست. برای بهینگی عملیاتی، پاکسازی دورهای رکوردهای پردازششده، ایندکسگذاری مناسب، رسیدگی به پیامهای مشکلدار (dead-letter) و حفظ ترتیب رویدادها در سطح aggregate ضروری است. ترکیب polling با LISTEN/NOTIFY در Postgres میتواند زمان واکنش را بهتر کند. نتیجه، راهکاری ساده و مقیاسپذیر است که بدون تراکنشهای توزیعشده، قابلیت اتکا را در معماری رویدادمحور فراهم میکند.
#OutboxPattern #Go #Postgres #Microservices #EventDriven #TransactionalOutbox #Messaging #Reliability
🟣لینک مقاله:
https://golangweekly.com/link/174422/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Medium
How to implement the Outbox pattern in Go and Postgres
I was at a ContainerDays conference recently and attended a great talk from Nikolay Kuznetsov about the Outbox pattern and resilient system…
❤2
🔵 عنوان مقاله
It's Survey Time! The 2025 Go Developer Survey is Live
🟢 خلاصه مقاله:
** نظرسنجی 2025 Go Developer Survey آغاز شده و Go team طبق روال دورهای برای تعیین اولویتهای بعدی از جامعه بازخورد میگیرد. این نظرسنجی به تصمیمها درباره زبان، ابزارها، مستندات و اکوسیستم کمک میکند. مهلت شرکت کوتاه است و تا September 30 ادامه دارد—اگر با Go کار میکنید یا به آن علاقهمندید، همین حالا مشارکت کنید و خبرش را به دیگران هم برسانید.
#Go #Golang #DeveloperSurvey #GoCommunity #2025 #Programming #OpenSource #DevTools
🟣لینک مقاله:
https://golangweekly.com/link/174414/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
It's Survey Time! The 2025 Go Developer Survey is Live
🟢 خلاصه مقاله:
** نظرسنجی 2025 Go Developer Survey آغاز شده و Go team طبق روال دورهای برای تعیین اولویتهای بعدی از جامعه بازخورد میگیرد. این نظرسنجی به تصمیمها درباره زبان، ابزارها، مستندات و اکوسیستم کمک میکند. مهلت شرکت کوتاه است و تا September 30 ادامه دارد—اگر با Go کار میکنید یا به آن علاقهمندید، همین حالا مشارکت کنید و خبرش را به دیگران هم برسانید.
#Go #Golang #DeveloperSurvey #GoCommunity #2025 #Programming #OpenSource #DevTools
🟣لینک مقاله:
https://golangweekly.com/link/174414/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
go.dev
It's survey time! How has Go has been working out for you? - The Go Programming Language
Help shape the future of Go
❤3
📢 اگر تلگرام پرمیوم دارید، کانال ما رو Boost کنید ! 🚀
با Boost کردن کانال، به رشد و دیده شدن ما بیشتر کمک کنید💙
https://t.me/boost/gopher_academy
با Boost کردن کانال، به رشد و دیده شدن ما بیشتر کمک کنید💙
https://t.me/boost/gopher_academy
❤1🍾1
🔵 عنوان مقاله
Memory Allocation in Go
🟢 خلاصه مقاله:
مدیریت و تخصیص کارای حافظه، پایهی عملکرد و پایداری برنامههای Go است. این مقاله با مجموعهای از نمودارهای روشن، پشتپردهی تخصیص حافظه در Go را شرح میدهد: از نحوهی درخواست حافظه از سیستمعامل و سازماندهی آن در runtime تا تعامل آن با garbage collector و تأثیر الگوهای تخصیص بر فشار GC، تأخیر و کارایی. هدف مقاله ایجاد یک مدل ذهنی عملی است تا—even با تکیه بر پیشفرضهای منطقی Go—بتوانید بهتر پروفایلها را بخوانید، دربارهی تأخیر نتیجهگیری کنید و از تلههای رایج عملکردی دور بمانید.
#Go #Golang #MemoryManagement #GarbageCollection #Performance #GoRuntime #SystemsProgramming
🟣لینک مقاله:
https://golangweekly.com/link/174413/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Memory Allocation in Go
🟢 خلاصه مقاله:
مدیریت و تخصیص کارای حافظه، پایهی عملکرد و پایداری برنامههای Go است. این مقاله با مجموعهای از نمودارهای روشن، پشتپردهی تخصیص حافظه در Go را شرح میدهد: از نحوهی درخواست حافظه از سیستمعامل و سازماندهی آن در runtime تا تعامل آن با garbage collector و تأثیر الگوهای تخصیص بر فشار GC، تأخیر و کارایی. هدف مقاله ایجاد یک مدل ذهنی عملی است تا—even با تکیه بر پیشفرضهای منطقی Go—بتوانید بهتر پروفایلها را بخوانید، دربارهی تأخیر نتیجهگیری کنید و از تلههای رایج عملکردی دور بمانید.
#Go #Golang #MemoryManagement #GarbageCollection #Performance #GoRuntime #SystemsProgramming
🟣لینک مقاله:
https://golangweekly.com/link/174413/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Melatoni
Memory Allocation in Go
🔥2
🔵 عنوان مقاله
Google Gen AI Go SDK v1.25.0
🟢 خلاصه مقاله: ا
اSDK جدید Google Gen AI Go SDK v1.25.0 یک کتابخانه آمادهٔ تولید است که ادغام مدلهای مولد Google مثل Gemini را از طریق Gemini API و Vertex AI در برنامههای نوشتهشده با Go آسان میکند. این SDK احراز هویت با API key یا Google Cloud credentials، انتخاب مدل، مدیریت prompt و پاسخ، استریم خروجی، تنظیمات ایمنی و دستورالعملهای سیستمی را ساده میسازد و با الگوهای رایج Go مثل context.Context سازگار است. برای ساخت دستیارهای گفتگو، تولید محتوا و کد، خلاصهسازی و پرسشوپاسخ روی اسناد کاربرد دارد. نسخه v1.25.0 بهبودهای پایداری و کارایی و تجربهٔ توسعهدهنده را ارائه میدهد و با نسخههای جدید Gemini و کاتالوگ Vertex AI همسو شده است؛ برای جزئیات، مراجعه به release notes توصیه میشود.
#Go #Golang #GenerativeAI #Google #Gemini #VertexAI #SDK #AIIntegration
🟣لینک مقاله:
https://golangweekly.com/link/174429/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Google Gen AI Go SDK v1.25.0
🟢 خلاصه مقاله: ا
اSDK جدید Google Gen AI Go SDK v1.25.0 یک کتابخانه آمادهٔ تولید است که ادغام مدلهای مولد Google مثل Gemini را از طریق Gemini API و Vertex AI در برنامههای نوشتهشده با Go آسان میکند. این SDK احراز هویت با API key یا Google Cloud credentials، انتخاب مدل، مدیریت prompt و پاسخ، استریم خروجی، تنظیمات ایمنی و دستورالعملهای سیستمی را ساده میسازد و با الگوهای رایج Go مثل context.Context سازگار است. برای ساخت دستیارهای گفتگو، تولید محتوا و کد، خلاصهسازی و پرسشوپاسخ روی اسناد کاربرد دارد. نسخه v1.25.0 بهبودهای پایداری و کارایی و تجربهٔ توسعهدهنده را ارائه میدهد و با نسخههای جدید Gemini و کاتالوگ Vertex AI همسو شده است؛ برای جزئیات، مراجعه به release notes توصیه میشود.
#Go #Golang #GenerativeAI #Google #Gemini #VertexAI #SDK #AIIntegration
🟣لینک مقاله:
https://golangweekly.com/link/174429/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - googleapis/go-genai: Google Gen AI Go SDK provides an interface for developers to integrate Google's generative models…
Google Gen AI Go SDK provides an interface for developers to integrate Google's generative models into their Go applications. - googleapis/go-genai
اخیراً فرصتی شد که سراغ Goravel برم و کمی باهاش کار کنم.
فریموورک Goravel در واقع یک فریمورک شبیه به Laravel اما برای زبان Go هست. چیزی که برام خیلی جالب بود اینه که دقیقا همون حس و حال لاراول رو منتقل میکنه؛ از ساختار پوشهها گرفته تا ORM به سبک Eloquent، migrationها و حتی سیستم queue و job.
اگر قبلاً با Laravel کار کرده باشید، ورود به Goravel خیلی راحت میشه و میتونید سریع پروژههاتون رو توی Go استارت بزنید. سرعت بالای Go هم در کنار معماری آشنا و تمیز لاراول باعث میشه تجربه جذابی باشه.
به نظرم برای کسایی که دنبال قدرت و سرعت Go هستن ولی در عین حال نمیخوان از دنیای راحتی و productivity لاراول جدا بشن، Goravel میتونه انتخاب خیلی خوبی باشه.
لینک پروژه:
https://goravel.dev
<ehsan moradi/>
فریموورک Goravel در واقع یک فریمورک شبیه به Laravel اما برای زبان Go هست. چیزی که برام خیلی جالب بود اینه که دقیقا همون حس و حال لاراول رو منتقل میکنه؛ از ساختار پوشهها گرفته تا ORM به سبک Eloquent، migrationها و حتی سیستم queue و job.
اگر قبلاً با Laravel کار کرده باشید، ورود به Goravel خیلی راحت میشه و میتونید سریع پروژههاتون رو توی Go استارت بزنید. سرعت بالای Go هم در کنار معماری آشنا و تمیز لاراول باعث میشه تجربه جذابی باشه.
به نظرم برای کسایی که دنبال قدرت و سرعت Go هستن ولی در عین حال نمیخوان از دنیای راحتی و productivity لاراول جدا بشن، Goravel میتونه انتخاب خیلی خوبی باشه.
لینک پروژه:
https://goravel.dev
<ehsan moradi/>
🐳1🍾1👨💻1
🔵 عنوان مقاله
Observe Live SQL Queries in Go with DTrace
🟢 خلاصه مقاله:
این مطلب از Golang Weekly نشان میدهد چطور با استفاده از DTrace بدون تغییر کد و توقف سرویس، کوئریهای SQL را در برنامههای Go بهصورت زنده مشاهده کنیم. نویسنده با معرفی کوتاهی از DTrace بهعنوان یک ابزار ردیابی پویا و کمسربار، قدمبهقدم نحوه راهاندازی روی سیستمعاملهای پشتیبانیشده، اتصال به پردازه در حال اجرا و نوشتن اسکریپتهای ساده برای دیدن متن کوئری، زمان اجرا و الگوهای فراوانی را توضیح میدهد؛ همراه با فیلترگذاری برای محدود کردن خروجی به سرویس/کاربر/درایور موردنظر و نکاتی برای حفظ سربار کم.
کاربرد این روش، عیبیابی سریع مسائلی مثل کوئریهای کند، الگوهای N+1، شاخصهای مفقود و ORM پرحرف در شرایط واقعی تولید است. این رویکرد مکمل لاگها و APM است و امکان تشخیص فوری و تأیید سریع اصلاحات را میدهد. در بخش ملاحظات، به تفاوت پشتیبانی پلتفرمها (مثل FreeBSD و برخی نسخههای macOS؛ و پیشنهاد eBPF روی Linux)، نیاز به دسترسیهای بالا، حساسیت دادههای متنی کوئری و ضرورت سنجش سربار در محیط staging اشاره میشود.
#Go #DTrace #SQL #Observability #Performance #GolangWeekly #eBPF #Database
🟣لینک مقاله:
https://golangweekly.com/link/174425/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Observe Live SQL Queries in Go with DTrace
🟢 خلاصه مقاله:
این مطلب از Golang Weekly نشان میدهد چطور با استفاده از DTrace بدون تغییر کد و توقف سرویس، کوئریهای SQL را در برنامههای Go بهصورت زنده مشاهده کنیم. نویسنده با معرفی کوتاهی از DTrace بهعنوان یک ابزار ردیابی پویا و کمسربار، قدمبهقدم نحوه راهاندازی روی سیستمعاملهای پشتیبانیشده، اتصال به پردازه در حال اجرا و نوشتن اسکریپتهای ساده برای دیدن متن کوئری، زمان اجرا و الگوهای فراوانی را توضیح میدهد؛ همراه با فیلترگذاری برای محدود کردن خروجی به سرویس/کاربر/درایور موردنظر و نکاتی برای حفظ سربار کم.
کاربرد این روش، عیبیابی سریع مسائلی مثل کوئریهای کند، الگوهای N+1، شاخصهای مفقود و ORM پرحرف در شرایط واقعی تولید است. این رویکرد مکمل لاگها و APM است و امکان تشخیص فوری و تأیید سریع اصلاحات را میدهد. در بخش ملاحظات، به تفاوت پشتیبانی پلتفرمها (مثل FreeBSD و برخی نسخههای macOS؛ و پیشنهاد eBPF روی Linux)، نیاز به دسترسیهای بالا، حساسیت دادههای متنی کوئری و ضرورت سنجش سربار در محیط staging اشاره میشود.
#Go #DTrace #SQL #Observability #Performance #GolangWeekly #eBPF #Database
🟣لینک مقاله:
https://golangweekly.com/link/174425/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
🔥1
الگوهای مهم Concurrency توی Golang
گاهی وقتا توی Go، کار کردن با concurrency فقط goroutine و channel نیست، یه سری الگو هست که وقتی یاد گرفتم واقعا دیدم کار رو راحتتر میکنن. مثلا یکی از اینا fan-out/fan-in هست. یعنی فرض کن چند تا goroutine داری که همزمان دارن یه سری داده رو پردازش میکنن (این میشه fan-out) و بعد همهشون خروجیشون رو میریزن توی یه کانال واحد تا جمع بشه (fan-in). من معمولا اینو وقتی استفاده میکنم که یه عالمه فایل یا دیتا دارم که میشه به صورت موازی روشون کار کرد. یه بار برای پردازش لاگها ازش استفاده کردم، هر worker یه بخش لاگ رو میخوند و پردازش میکرد و در نهایت همهی نتایج توی یه جا جمع میشد.
یه الگوی دیگه که خیلی پرکاربرده worker pool ـه. به جای اینکه برای هر کاری یه goroutine جدا درست کنم، میام یه تعداد ثابت worker درست میکنم، مثلا ۵ تا، و همهی کارها رو میریزم توی یه صف. workerها یکییکی برمیدارن و انجام میدن. اینجوری هم منابع مصرف نمیشن هم قابل مدیریتتره. مثلا وقتی میخواستم ایمیل انبوه بفرستم، با worker pool خیلی راحت مدیریت کردم که سیستم منفجر نشه.
یه چیزی که همیشه باید حواسم باشه، محدود کردن همزمانی یا همون bounded concurrency هست. مثلا وقتی میخوام به یه API خارجی درخواست بزنم، اگه بذارم ۱۰۰ تا goroutine همزمان بزنن، خیلی راحت اون سرویس منو بلاک میکنه یا خودم دچار timeout میشم. اینجاست که با یه کانال ساده یا semaphore جلوی تعداد درخواستها رو میگیرم، مثلا نهایتا ۱۰ تا همزمان.
حالا مشکل بعدی backpressure ـه. این زمانی اتفاق میفته که producer سریعتر از consumer کار میکنه. مثلا تصور کن داری رویدادها رو از یه سیستم دیگه میگیری ولی پردازشت کندتره. اگه هیچ محدودیتی نباشه، حافظهت پر میشه. من معمولا با کانالهای bufferدار اینو مدیریت میکنم؛ وقتی بافر پر میشه producer گیر میکنه تا consumer کمی جلو بیفته. یه بار اینو توی سیستم لاگینگ پیاده کردم، به جای اینکه همهی لاگها رو بدون کنترل بخوره، با backpressure سرعت متعادل شد.
یه چیز مهم دیگه cancellation ـه. بارها پیش اومده یه کاری رو استارت زدم ولی دیگه نیاز نبوده ادامه پیدا کنه. مثلا یه درخواست HTTP طولانی بود و کاربر صفحه رو بست. با context خیلی راحت میشه اینو مدیریت کرد، وقتی سیگنال cancel بیاد، همهی goroutineهای مربوطه متوقف میشن. این باعث میشه منابع الکی مصرف نشن.
در نهایت هم timeout. خیلی وقتا نمیخوای یه عملیات تا ابد ادامه پیدا کنه. مثلا وقتی به یه سرویس بیرونی وصل میشی، میگی اگه بیشتر از ۲ ثانیه طول کشید، دیگه مهم نیست جواب چی بود، تمومش کن. این کار نه تنها سیستم رو responsive نگه میداره، بلکه از گیر کردن کل برنامه جلوگیری میکنه.
<Mohammad Salehi/>
گاهی وقتا توی Go، کار کردن با concurrency فقط goroutine و channel نیست، یه سری الگو هست که وقتی یاد گرفتم واقعا دیدم کار رو راحتتر میکنن. مثلا یکی از اینا fan-out/fan-in هست. یعنی فرض کن چند تا goroutine داری که همزمان دارن یه سری داده رو پردازش میکنن (این میشه fan-out) و بعد همهشون خروجیشون رو میریزن توی یه کانال واحد تا جمع بشه (fan-in). من معمولا اینو وقتی استفاده میکنم که یه عالمه فایل یا دیتا دارم که میشه به صورت موازی روشون کار کرد. یه بار برای پردازش لاگها ازش استفاده کردم، هر worker یه بخش لاگ رو میخوند و پردازش میکرد و در نهایت همهی نتایج توی یه جا جمع میشد.
یه الگوی دیگه که خیلی پرکاربرده worker pool ـه. به جای اینکه برای هر کاری یه goroutine جدا درست کنم، میام یه تعداد ثابت worker درست میکنم، مثلا ۵ تا، و همهی کارها رو میریزم توی یه صف. workerها یکییکی برمیدارن و انجام میدن. اینجوری هم منابع مصرف نمیشن هم قابل مدیریتتره. مثلا وقتی میخواستم ایمیل انبوه بفرستم، با worker pool خیلی راحت مدیریت کردم که سیستم منفجر نشه.
یه چیزی که همیشه باید حواسم باشه، محدود کردن همزمانی یا همون bounded concurrency هست. مثلا وقتی میخوام به یه API خارجی درخواست بزنم، اگه بذارم ۱۰۰ تا goroutine همزمان بزنن، خیلی راحت اون سرویس منو بلاک میکنه یا خودم دچار timeout میشم. اینجاست که با یه کانال ساده یا semaphore جلوی تعداد درخواستها رو میگیرم، مثلا نهایتا ۱۰ تا همزمان.
حالا مشکل بعدی backpressure ـه. این زمانی اتفاق میفته که producer سریعتر از consumer کار میکنه. مثلا تصور کن داری رویدادها رو از یه سیستم دیگه میگیری ولی پردازشت کندتره. اگه هیچ محدودیتی نباشه، حافظهت پر میشه. من معمولا با کانالهای bufferدار اینو مدیریت میکنم؛ وقتی بافر پر میشه producer گیر میکنه تا consumer کمی جلو بیفته. یه بار اینو توی سیستم لاگینگ پیاده کردم، به جای اینکه همهی لاگها رو بدون کنترل بخوره، با backpressure سرعت متعادل شد.
یه چیز مهم دیگه cancellation ـه. بارها پیش اومده یه کاری رو استارت زدم ولی دیگه نیاز نبوده ادامه پیدا کنه. مثلا یه درخواست HTTP طولانی بود و کاربر صفحه رو بست. با context خیلی راحت میشه اینو مدیریت کرد، وقتی سیگنال cancel بیاد، همهی goroutineهای مربوطه متوقف میشن. این باعث میشه منابع الکی مصرف نشن.
در نهایت هم timeout. خیلی وقتا نمیخوای یه عملیات تا ابد ادامه پیدا کنه. مثلا وقتی به یه سرویس بیرونی وصل میشی، میگی اگه بیشتر از ۲ ثانیه طول کشید، دیگه مهم نیست جواب چی بود، تمومش کن. این کار نه تنها سیستم رو responsive نگه میداره، بلکه از گیر کردن کل برنامه جلوگیری میکنه.
<Mohammad Salehi/>
🔵 عنوان مقاله
Building a Simple Stack-Based Virtual Machine in Go
🟢 خلاصه مقاله:
** این مقاله از Phakorn Kiong با یک نمونه عملی نشان میدهد چگونه در Go یک VM ساده مبتنی بر Stack بسازیم. هسته سیستم شامل bytecode، یک instruction pointer، یک stack برای دادهها و چند opcode پایه مثل PUSH، POP، ADD، SUB، MUL، DIV، PRINT و HALT است. اجرای برنامه بهصورت حلقه fetch–decode–execute انجام میشود؛ هر opcode خوانده میشود، عمل مربوط روی stack اجرا میگردد و IP جلو میرود. قالب bytecode ساده است و مقادیر یا بهصورت فوری یا از یک constant pool خوانده میشوند. برای پایداری، کنترل خطاهایی مثل stack underflow/overflow و division by zero در نظر گرفته شده است. نمونههایی مثل محاسبه و چاپ 2*(3+4) برای تست آورده میشود و میتوان یک assembler کوچک برای تولید bytecode اضافه کرد. مسیرهای توسعه شامل کنترل جریان (JMP/JZ)، مقایسهها (EQ/LT/GT)، متغیرها با LOAD/STORE، و توابع با CALL/RET است؛ همچنین ابزارهایی مانند tracer، disassembler، REPL و تستها پیشنهاد میشوند. هدف مقاله آموزشی است و “Here’s the code” کد کامل و خوانا را برای شروع و گسترش فراهم میکند.
#Go #Golang #VirtualMachine #StackVM #Bytecode #Interpreter #Compiler #SystemsProgramming
🟣لینک مقاله:
https://golangweekly.com/link/174423/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Building a Simple Stack-Based Virtual Machine in Go
🟢 خلاصه مقاله:
** این مقاله از Phakorn Kiong با یک نمونه عملی نشان میدهد چگونه در Go یک VM ساده مبتنی بر Stack بسازیم. هسته سیستم شامل bytecode، یک instruction pointer، یک stack برای دادهها و چند opcode پایه مثل PUSH، POP، ADD، SUB، MUL، DIV، PRINT و HALT است. اجرای برنامه بهصورت حلقه fetch–decode–execute انجام میشود؛ هر opcode خوانده میشود، عمل مربوط روی stack اجرا میگردد و IP جلو میرود. قالب bytecode ساده است و مقادیر یا بهصورت فوری یا از یک constant pool خوانده میشوند. برای پایداری، کنترل خطاهایی مثل stack underflow/overflow و division by zero در نظر گرفته شده است. نمونههایی مثل محاسبه و چاپ 2*(3+4) برای تست آورده میشود و میتوان یک assembler کوچک برای تولید bytecode اضافه کرد. مسیرهای توسعه شامل کنترل جریان (JMP/JZ)، مقایسهها (EQ/LT/GT)، متغیرها با LOAD/STORE، و توابع با CALL/RET است؛ همچنین ابزارهایی مانند tracer، disassembler، REPL و تستها پیشنهاد میشوند. هدف مقاله آموزشی است و “Here’s the code” کد کامل و خوانا را برای شروع و گسترش فراهم میکند.
#Go #Golang #VirtualMachine #StackVM #Bytecode #Interpreter #Compiler #SystemsProgramming
🟣لینک مقاله:
https://golangweekly.com/link/174423/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Phakorn
Building a Simple Virtual Machine | Breakpoint 🛑
Explore building a simple VM in Go using stack-based architecture. Learn the fundamentals of virtual machines through hands-on implementation.
❤1
واسه برنامه نویسی سیستمی کدوم رو ترجیح میدید؟
البته: با توضیح زیر در نظر بگیرید و انتخاب کنید
اگر میخوای کاملاً به سختافزار نزدیک باشی → برو سراغ C. اگر میخوای ساختار بهتر + سرعت بالا داشته باشی → C++. اگر برات ایمنی و مدرن بودن مهمه → Rust.
البته: با توضیح زیر در نظر بگیرید و انتخاب کنید
اگر میخوای کاملاً به سختافزار نزدیک باشی → برو سراغ C. اگر میخوای ساختار بهتر + سرعت بالا داشته باشی → C++. اگر برات ایمنی و مدرن بودن مهمه → Rust.
Anonymous Poll
35%
C
37%
C++
54%
Rust
🍾2🐳1💋1
🔵 عنوان مقاله
explains more, including why this matters.
🟢 خلاصه مقاله:
آخرین شماره Golang Weekly مقالهای دارد که یک موضوع بهروز در اکوسیستم Go را با زمینهسازی روشن و کاربردی شرح میدهد: چرا اکنون مهم است، چه مزایا و ملاحظاتی دارد و چه بدهبستانهایی پیشِروست. با توضیحهای فشرده و مثالهای قابل اتکا، الگوهای مناسب تولید، خطاهای رایج و مسیرهای مهاجرت برای سرویسها و کتابخانهها را نشان میدهد. همچنین به پیامدهای معمول چنین تغییراتی بر modules، مدیریت وابستگی، CI، راهبرد تست، بنچمارک و پروفایلینگ میپردازد و راهکارهایی برای کاهش ریسک و سازگاری پیشنهاد میکند. در پایان، اثر آن بر جامعه و تیمها را جمعبندی کرده و منابع تکمیلی برای مطالعه بیشتر معرفی میکند؛ نکاتی عملی، چه برای بکاندهای پُرترافیک و چه برای CLIهای کوچک.
#Go #Golang #GolangWeekly #SoftwareEngineering #Backend #DevOps #Performance #Concurrency
🟣لینک مقاله:
https://golangweekly.com/link/174442/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
explains more, including why this matters.
🟢 خلاصه مقاله:
آخرین شماره Golang Weekly مقالهای دارد که یک موضوع بهروز در اکوسیستم Go را با زمینهسازی روشن و کاربردی شرح میدهد: چرا اکنون مهم است، چه مزایا و ملاحظاتی دارد و چه بدهبستانهایی پیشِروست. با توضیحهای فشرده و مثالهای قابل اتکا، الگوهای مناسب تولید، خطاهای رایج و مسیرهای مهاجرت برای سرویسها و کتابخانهها را نشان میدهد. همچنین به پیامدهای معمول چنین تغییراتی بر modules، مدیریت وابستگی، CI، راهبرد تست، بنچمارک و پروفایلینگ میپردازد و راهکارهایی برای کاهش ریسک و سازگاری پیشنهاد میکند. در پایان، اثر آن بر جامعه و تیمها را جمعبندی کرده و منابع تکمیلی برای مطالعه بیشتر معرفی میکند؛ نکاتی عملی، چه برای بکاندهای پُرترافیک و چه برای CLIهای کوچک.
#Go #Golang #GolangWeekly #SoftwareEngineering #Backend #DevOps #Performance #Concurrency
🟣لینک مقاله:
https://golangweekly.com/link/174442/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
River
Dependabot + private Go proxies: how they work and why it matters - River blog
GitHub's Dependabot can now work with private Go proxies/registries. But how do Go proxies even work? Learn how they function, how to configure them for private modules, and why ordering matters.
👍1🔥1
🔵 عنوان مقاله
koanf 2.3: Read Configuration with Multiple Sources and Formats
🟢 خلاصه مقاله:
اkoanf 2.3 ابزاری برای خواندن و ترکیب پیکربندی از چند منبع و چند فرمت است؛ از JSON، TOML و YAML تا متغیرهای محیطی، command line، فایلهای محلی و سرویسهای ابری مانند S3. شما میتوانید این منابع را لایهبندی کنید، قواعد تقدم و ادغام تعیین کنید و بدینترتیب رفتار پیکربندی را در محیطهای مختلف کنترل کنید. این نسخه بهعنوان جایگزینی «سبکتر» برای Viper معرفی میشود و با تکیه بر سادگی، وابستگیهای کمتر و API جمعوجور، ادغام و نگهداری را آسانتر میکند.
#koanf #Configuration #Viper #JSON #YAML #TOML #S3 #DevOps
🟣لینک مقاله:
https://golangweekly.com/link/174428/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
koanf 2.3: Read Configuration with Multiple Sources and Formats
🟢 خلاصه مقاله:
اkoanf 2.3 ابزاری برای خواندن و ترکیب پیکربندی از چند منبع و چند فرمت است؛ از JSON، TOML و YAML تا متغیرهای محیطی، command line، فایلهای محلی و سرویسهای ابری مانند S3. شما میتوانید این منابع را لایهبندی کنید، قواعد تقدم و ادغام تعیین کنید و بدینترتیب رفتار پیکربندی را در محیطهای مختلف کنترل کنید. این نسخه بهعنوان جایگزینی «سبکتر» برای Viper معرفی میشود و با تکیه بر سادگی، وابستگیهای کمتر و API جمعوجور، ادغام و نگهداری را آسانتر میکند.
#koanf #Configuration #Viper #JSON #YAML #TOML #S3 #DevOps
🟣لینک مقاله:
https://golangweekly.com/link/174428/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - knadh/koanf: Simple, extremely lightweight, extensible, configuration management library for Go. Supports JSON, TOML,…
Simple, extremely lightweight, extensible, configuration management library for Go. Supports JSON, TOML, YAML, env, command line, file, S3 etc. Alternative to viper. - knadh/koanf
👍1💯1
🤲 درود به همه دوستان عزیز، امیدوارم حال دلتون همیشه خوب و شاد باشه.
🤍 چند وقت پیش به یه مقاله خیلی جذاب در مورد Memory Allocation برخوردم و تصمیم گرفتم بخش به بخشش رو اینجا براتون توضیح بدم تا همه بتونیم بهتر درکش کنیم.
❤️ خوشحال میشم اگر با اشتراکگذاری این پست به دیده شدن بیشترش کمک کنید.
💙 اگر گروه یا کانالی دارید، ممنون میشم اونجا هم بفرستید تا بقیه هم استفاده کنن.
💚 این مقاله رو پین میکنم و هر بخش جدید که گذاشتم، لینک همون قسمت رو اینجا آپدیت میکنم.
🎃سر فصل های مقاله رو اینجا گذاشتم
👇👇👇👇👇👇👇
@gopher_academy
🤍 چند وقت پیش به یه مقاله خیلی جذاب در مورد Memory Allocation برخوردم و تصمیم گرفتم بخش به بخشش رو اینجا براتون توضیح بدم تا همه بتونیم بهتر درکش کنیم.
❤️ خوشحال میشم اگر با اشتراکگذاری این پست به دیده شدن بیشترش کمک کنید.
💙 اگر گروه یا کانالی دارید، ممنون میشم اونجا هم بفرستید تا بقیه هم استفاده کنن.
💚 این مقاله رو پین میکنم و هر بخش جدید که گذاشتم، لینک همون قسمت رو اینجا آپدیت میکنم.
🎃سر فصل های مقاله رو اینجا گذاشتم
👇👇👇👇👇👇👇
@gopher_academy
📌 Memory Allocation in Go
🔹 در این پست به بررسی جزئیات مدیریت حافظه در زبان Go میپردازیم.
درک درست از ساختار حافظه به شما کمک میکند عملکرد برنامههایتان را بهتر بهینه کنید و رفتار Garbage Collector را بهتر بفهمید.
🔵 Introduction
🔴
🔵 Go’s View of Virtual Memory
🔴
🔵 Arena and Page
🔴
🔵 Span and Size Class
🔴
🔵Span Class
🔴
🔵Span Set
🔴
🔵 Heap Bits and Malloc Header
🔴
🔵 Heap Management
🔴
🔵 Span Allocation: mheap.alloc
🔴
🔵Central Span Manager: mcentral
🔴
🔵Processor’s Memory Allocator: mcache
🔴
🔵 Heap Allocation
🔴
🔵Tiny Objects: mallocgcTiny
🔴
🔵 Small Objects: mallocgcSmall*
🔴
🔵 Large Objects: mallocgcLarge
🔴
🔵Stack Management
🔴
🔵Allocating Stack: stackalloc
🔴
🔵 Stack Growth: morestack
🔴
🔵Reusing Stack: stackfree
🔴
🔵 Stack or Heap?
🔴
🔵 Case Studies
🔴
➖➖➖➖➖➖➖➖
👑 @gopher_academy
🔹 در این پست به بررسی جزئیات مدیریت حافظه در زبان Go میپردازیم.
درک درست از ساختار حافظه به شما کمک میکند عملکرد برنامههایتان را بهتر بهینه کنید و رفتار Garbage Collector را بهتر بفهمید.
🔵 Introduction
🔴
🔵 Go’s View of Virtual Memory
🔴
🔵 Arena and Page
🔴
🔵 Span and Size Class
🔴
🔵Span Class
🔴
🔵Span Set
🔴
🔵 Heap Bits and Malloc Header
🔴
🔵 Heap Management
🔴
🔵 Span Allocation: mheap.alloc
🔴
🔵Central Span Manager: mcentral
🔴
🔵Processor’s Memory Allocator: mcache
🔴
🔵 Heap Allocation
🔴
🔵Tiny Objects: mallocgcTiny
🔴
🔵 Small Objects: mallocgcSmall*
🔴
🔵 Large Objects: mallocgcLarge
🔴
🔵Stack Management
🔴
🔵Allocating Stack: stackalloc
🔴
🔵 Stack Growth: morestack
🔴
🔵Reusing Stack: stackfree
🔴
🔵 Stack or Heap?
🔴
🔵 Case Studies
🔴
➖➖➖➖➖➖➖➖
👑 @gopher_academy
❤1