🔵 عنوان مقاله
Constraining LLMs with Structured Output in Python and Go
🟢 خلاصه مقاله:
**این مجموعه به روشهای عملی برای واداشتن LLMها به تولید خروجی ساختیافته میپردازد تا ادغام در سیستمهای تولیدی قابل اعتماد، قابل اعتبارسنجی و قابل آزمون باشد. در Python با تعریف شِماهای سازگار با JSON و اتصال خروجی مدل به انواع مشخص، و در Go با استفاده از structهای نوعدار، struct tagها، و خطاهای صریح، خطر خروجی متنی آزاد و شکننده کاهش مییابد.
همچنین یک ویدئو از Rost Glukhov ساخت یک عامل کدنویس در Go را از ابتدا نشان میدهد؛ از طراحی پرامپت و برنامهریزی تا اجرای ابزار و حلقه بازخورد. در بخش کارهای زمانبندی انبوه، مقاله Bill Kennedy توضیح میدهد چگونه Timing Wheels بدون پیمایش O(n) میتوانند میلیونها کلید را منقضی کنند—الگویی مفید برای زمانبندیکنندهها، کشها و محدودکنندههای نرخ در Go. برای درک عمیقتر همروندی، نوشتار Ankur Anand رفتار و انتخابهای درست پیرامون primitives بسته sync مانند Mutex، RWMutex، WaitGroup و Cond را تشریح میکند. در پایان، مطلبی از Matheus Mina این مجموعه را کامل میکند. حاصل کار، جعبهابزاری عملی برای ساخت عاملها و سرویسهای پربازده در Python و Go است.
#Go #Python #LLM #StructuredOutput #TimingWheels #Concurrency #Golang #Agents
🟣لینک مقاله:
https://golangweekly.com/link/175364/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Constraining LLMs with Structured Output in Python and Go
🟢 خلاصه مقاله:
**این مجموعه به روشهای عملی برای واداشتن LLMها به تولید خروجی ساختیافته میپردازد تا ادغام در سیستمهای تولیدی قابل اعتماد، قابل اعتبارسنجی و قابل آزمون باشد. در Python با تعریف شِماهای سازگار با JSON و اتصال خروجی مدل به انواع مشخص، و در Go با استفاده از structهای نوعدار، struct tagها، و خطاهای صریح، خطر خروجی متنی آزاد و شکننده کاهش مییابد.
همچنین یک ویدئو از Rost Glukhov ساخت یک عامل کدنویس در Go را از ابتدا نشان میدهد؛ از طراحی پرامپت و برنامهریزی تا اجرای ابزار و حلقه بازخورد. در بخش کارهای زمانبندی انبوه، مقاله Bill Kennedy توضیح میدهد چگونه Timing Wheels بدون پیمایش O(n) میتوانند میلیونها کلید را منقضی کنند—الگویی مفید برای زمانبندیکنندهها، کشها و محدودکنندههای نرخ در Go. برای درک عمیقتر همروندی، نوشتار Ankur Anand رفتار و انتخابهای درست پیرامون primitives بسته sync مانند Mutex، RWMutex، WaitGroup و Cond را تشریح میکند. در پایان، مطلبی از Matheus Mina این مجموعه را کامل میکند. حاصل کار، جعبهابزاری عملی برای ساخت عاملها و سرویسهای پربازده در Python و Go است.
#Go #Python #LLM #StructuredOutput #TimingWheels #Concurrency #Golang #Agents
🟣لینک مقاله:
https://golangweekly.com/link/175364/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Rost Glukhov | Personal site and technical blog
Constraining LLMs with Structured Output: Ollama, Qwen3 & Python or Go
Constraining LLMs with Structured Output — Using Ollama and Qwen3 with examples in Python and Go
❤2
🔵 عنوان مقاله
Lo v1.52.0: A Lodash-Style Library for Go 1.18+
🟢 خلاصه مقاله:
** Lo v1.52.0 یک کتابخانه سبک Lodash برای Go 1.18+ است که مجموعهای از توابع کمکیِ آماده برای کار با slice و map و سایر کالکشنها را فراهم میکند. با تکیه بر generics در Go، این ابزار توابعی مانند Map، Filter، Reduce، GroupBy، Chunk، و عملیات مجموعهای مثل Union و Intersect را بهصورت type-safe و بدون نیاز به reflection ارائه میدهد. هدف آن کاهش کد زائد، سادهسازی پردازش دادهها، و افزایش خوانایی است؛ بهطوریکه بتوان بهجای حلقههای تودرتو، زنجیرهای از توابع قابلخواندن و کارا نوشت. نسخه v1.52.0 این رویکرد را برای کاربران Go 1.18+ تثبیت کرده و تجربهای روان و کارآمد برای تبدیل و مدیریت کالکشنها فراهم میکند.
#Go #Golang #Lo #Lodash #Generics #Go18 #Libraries #FunctionalProgramming
🟣لینک مقاله:
https://golangweekly.com/link/175369/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Lo v1.52.0: A Lodash-Style Library for Go 1.18+
🟢 خلاصه مقاله:
** Lo v1.52.0 یک کتابخانه سبک Lodash برای Go 1.18+ است که مجموعهای از توابع کمکیِ آماده برای کار با slice و map و سایر کالکشنها را فراهم میکند. با تکیه بر generics در Go، این ابزار توابعی مانند Map، Filter، Reduce، GroupBy، Chunk، و عملیات مجموعهای مثل Union و Intersect را بهصورت type-safe و بدون نیاز به reflection ارائه میدهد. هدف آن کاهش کد زائد، سادهسازی پردازش دادهها، و افزایش خوانایی است؛ بهطوریکه بتوان بهجای حلقههای تودرتو، زنجیرهای از توابع قابلخواندن و کارا نوشت. نسخه v1.52.0 این رویکرد را برای کاربران Go 1.18+ تثبیت کرده و تجربهای روان و کارآمد برای تبدیل و مدیریت کالکشنها فراهم میکند.
#Go #Golang #Lo #Lodash #Generics #Go18 #Libraries #FunctionalProgramming
🟣لینک مقاله:
https://golangweekly.com/link/175369/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - samber/lo: 💥 A Lodash-style Go library based on Go 1.18+ Generics (map, filter, contains, find...)
💥 A Lodash-style Go library based on Go 1.18+ Generics (map, filter, contains, find...) - samber/lo
❤2
🔵 عنوان مقاله
why, as a gopher, he's excited about Gleam
🟢 خلاصه مقاله:
برای یک توسعهدهنده Go، جذابیت Gleam در این است که سادگی و شفافیت Go را با یک سیستم نوعدهی قوی و ویژگیهایی مثل نبود null، الگوتطبیق و دادههای جبری ترکیب میکند، و در عین حال روی Erlang VM (BEAM) اجرا میشود تا مزیت فرآیندهای سبک، ارسال پیام و درختهای نظارت را بهصورت ذاتی فراهم کند. این ترکیب برای سرویسهای همزمان، توزیعشده و IO-bound که به تحملپذیری خطا و پایداری نیاز دارند بسیار مناسب است. Gleam با اکوسیستم Erlang/Elixir بهخوبی سازگار است، به Erlang کامپایل میشود و حتی خروجی JavaScript هم دارد، بنابراین میتوان از کتابخانههای جاافتاده استفاده کرد بدون چشمپوشی از ایمنی نوعی. ابزارهای توسعه بالغ و کاربرپسند هستند، اما اکوسیستم هنوز جوان است و برای کارهای CPU-bound یا باینریهای تکفایلی سریع، Go همچنان برتری دارد. جمعبندی: Go را برای محاسبات سنگین و ابزارها نگه دارید و Gleam را برای سرویسهای مقاوم و همزمان روی BEAM در نظر بگیرید.
#Gleam #Go #ErlangVM #BEAM #Concurrency #FaultTolerance #FunctionalProgramming #Elixir
🟣لینک مقاله:
https://golangweekly.com/link/175355/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
why, as a gopher, he's excited about Gleam
🟢 خلاصه مقاله:
برای یک توسعهدهنده Go، جذابیت Gleam در این است که سادگی و شفافیت Go را با یک سیستم نوعدهی قوی و ویژگیهایی مثل نبود null، الگوتطبیق و دادههای جبری ترکیب میکند، و در عین حال روی Erlang VM (BEAM) اجرا میشود تا مزیت فرآیندهای سبک، ارسال پیام و درختهای نظارت را بهصورت ذاتی فراهم کند. این ترکیب برای سرویسهای همزمان، توزیعشده و IO-bound که به تحملپذیری خطا و پایداری نیاز دارند بسیار مناسب است. Gleam با اکوسیستم Erlang/Elixir بهخوبی سازگار است، به Erlang کامپایل میشود و حتی خروجی JavaScript هم دارد، بنابراین میتوان از کتابخانههای جاافتاده استفاده کرد بدون چشمپوشی از ایمنی نوعی. ابزارهای توسعه بالغ و کاربرپسند هستند، اما اکوسیستم هنوز جوان است و برای کارهای CPU-bound یا باینریهای تکفایلی سریع، Go همچنان برتری دارد. جمعبندی: Go را برای محاسبات سنگین و ابزارها نگه دارید و Gleam را برای سرویسهای مقاوم و همزمان روی BEAM در نظر بگیرید.
#Gleam #Go #ErlangVM #BEAM #Concurrency #FaultTolerance #FunctionalProgramming #Elixir
🟣لینک مقاله:
https://golangweekly.com/link/175355/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
go podcast()
go podcast() | 061: As a Gopher I'm excited about Gleam, maybe you'll too
I finally gave Gleam a serious look and ho boy I'm excited. I've looked at Gleam a long time ago back when it started with the ML-like syntax. I've always been an Elm fan, I discovered functional p...
❤1
🔵 عنوان مقاله
that runs on the Erlang VM.
🟢 خلاصه مقاله:
این مقاله در Golang Weekly به معرفی فناوریای میپردازد که روی Erlang VM اجرا میشود و برای برنامهنویسان Go اهمیت دارد. مقاله مزیتهای کلیدی Erlang VM مانند فرایندهای سبک، پیامرسانی و تحمل خطا را توضیح میدهد و آنها را با مدل goroutine و channel در Go مقایسه میکند. سپس پیامدهای عملی این تفاوتها را بر مقیاسپذیری، تابآوری و تأخیر در سیستمهای توزیعشده، همراه با ملاحظات استقرار، همپیوندی و مشاهدهپذیری، مرور میکند. جمعبندی مقاله این است که استفاده از فناوریهای مبتنی بر Erlang VM میتواند برای تیمهای Go که به دسترسپذیری بالا نیاز دارند، مکملی ارزشمند باشد؛ انتخاب نهایی به نیازهای مسئله و تجربه تیم وابسته است.
#ErlangVM #Go #GolangWeekly #Concurrency #DistributedSystems #FaultTolerance #Scalability
🟣لینک مقاله:
https://golangweekly.com/link/175356/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
that runs on the Erlang VM.
🟢 خلاصه مقاله:
این مقاله در Golang Weekly به معرفی فناوریای میپردازد که روی Erlang VM اجرا میشود و برای برنامهنویسان Go اهمیت دارد. مقاله مزیتهای کلیدی Erlang VM مانند فرایندهای سبک، پیامرسانی و تحمل خطا را توضیح میدهد و آنها را با مدل goroutine و channel در Go مقایسه میکند. سپس پیامدهای عملی این تفاوتها را بر مقیاسپذیری، تابآوری و تأخیر در سیستمهای توزیعشده، همراه با ملاحظات استقرار، همپیوندی و مشاهدهپذیری، مرور میکند. جمعبندی مقاله این است که استفاده از فناوریهای مبتنی بر Erlang VM میتواند برای تیمهای Go که به دسترسپذیری بالا نیاز دارند، مکملی ارزشمند باشد؛ انتخاب نهایی به نیازهای مسئله و تجربه تیم وابسته است.
#ErlangVM #Go #GolangWeekly #Concurrency #DistributedSystems #FaultTolerance #Scalability
🟣لینک مقاله:
https://golangweekly.com/link/175356/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
gleam.run
Gleam programming language
Discover a friendly language for scalable, type-safe systems. Gleam comes with compiler, build tool, formatter, editor integrations, and package manager all built in.
❤1👍1
🔵 عنوان مقاله
How to Get Started with GitHub Copilot CLI
🟢 خلاصه مقاله:
** این مطلب با راهنماییای عملی از Andrea Griffiths (GitHub) نشان میدهد چگونه با GitHub Copilot CLI شروع کنید تا در ترمینال، درخواستهای زبانی خود را به دستورات شِل تبدیل کنید، خطاها و فلگهای ناشناخته را توضیح بگیرید و سریعتر اشکالزدایی کنید. روند آغاز کار ساده است: نصب و ورود به GitHub CLI، افزودن افزونه Copilot و بررسی فعال بودن دسترسی Copilot روی حساب GitHub؛ سپس با gh copilot help و دستورات تولید/توضیح فرمانها، میتوانید قبل از اجرا خروجیها را بررسی کنید تا از ایمنی کار مطمئن شوید. این ابزار روی Bash، Zsh و PowerShell کار میکند و برای وظایف روزمره مثل جستوجو، مدیریت پردازهها و کار با Git چرخه بازخورد را کوتاه میکند.
همزمان، نوشتهای از Redowan Delowar درباره Organizing Go Tests پیشنهاد میشود که ساختاردهی حرفهای تستهای Go را مرور میکند: کنار هم نگهداشتن فایلهای *_test.go با کد، بهکارگیری تستهای جدولمحور و زیربخشها با t.Run، استفاده از پوشه testdata برای دادههای تست، همراه با بنچمارکها، مثالها، نامگذاری شفاف، گزارش پوشش و اتصال go test به CI. مجموع این توصیهها هم بهرهوری توسعه را بالا میبرد و هم کیفیت و قابلیت اعتماد تستها را.
#GitHub #Copilot #CLI #Go #Testing #DeveloperTools #Productivity #DevOps
🟣لینک مقاله:
https://golangweekly.com/link/175637/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
How to Get Started with GitHub Copilot CLI
🟢 خلاصه مقاله:
** این مطلب با راهنماییای عملی از Andrea Griffiths (GitHub) نشان میدهد چگونه با GitHub Copilot CLI شروع کنید تا در ترمینال، درخواستهای زبانی خود را به دستورات شِل تبدیل کنید، خطاها و فلگهای ناشناخته را توضیح بگیرید و سریعتر اشکالزدایی کنید. روند آغاز کار ساده است: نصب و ورود به GitHub CLI، افزودن افزونه Copilot و بررسی فعال بودن دسترسی Copilot روی حساب GitHub؛ سپس با gh copilot help و دستورات تولید/توضیح فرمانها، میتوانید قبل از اجرا خروجیها را بررسی کنید تا از ایمنی کار مطمئن شوید. این ابزار روی Bash، Zsh و PowerShell کار میکند و برای وظایف روزمره مثل جستوجو، مدیریت پردازهها و کار با Git چرخه بازخورد را کوتاه میکند.
همزمان، نوشتهای از Redowan Delowar درباره Organizing Go Tests پیشنهاد میشود که ساختاردهی حرفهای تستهای Go را مرور میکند: کنار هم نگهداشتن فایلهای *_test.go با کد، بهکارگیری تستهای جدولمحور و زیربخشها با t.Run، استفاده از پوشه testdata برای دادههای تست، همراه با بنچمارکها، مثالها، نامگذاری شفاف، گزارش پوشش و اتصال go test به CI. مجموع این توصیهها هم بهرهوری توسعه را بالا میبرد و هم کیفیت و قابلیت اعتماد تستها را.
#GitHub #Copilot #CLI #Go #Testing #DeveloperTools #Productivity #DevOps
🟣لینک مقاله:
https://golangweekly.com/link/175637/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
The GitHub Blog
GitHub Copilot CLI: How to get started
From cloning a repository to opening a pull request, here’s how to streamline your workflow with Copilot CLI.
❤1
🔵 عنوان مقاله
Sift: A Lightweight Terminal UI for Displaying Go Test Results
🟢 خلاصه مقاله:
Sift یک رابط کاربری ترمینالی سبک برای نمایش نتایج آزمونهای Go است. با لولهکردن خروجی JSON در حالت verbose به این ابزار، نتایج به نمای قابلپیمایش با بخشهای تاشو تبدیل میشوند تا ابتدا روی موارد مهم تمرکز کنید و فقط هنگام نیاز جزئیات را باز کنید. این رویکرد شلوغی خروجی را کم میکند، خوانایی را بالا میبرد و فرایند عیبیابی را در همان محیط ترمینال سریعتر و سادهتر میسازد.
#Go #Testing #TUI #CLI #JSON #DeveloperTools #Sift
🟣لینک مقاله:
https://golangweekly.com/link/175641/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Sift: A Lightweight Terminal UI for Displaying Go Test Results
🟢 خلاصه مقاله:
Sift یک رابط کاربری ترمینالی سبک برای نمایش نتایج آزمونهای Go است. با لولهکردن خروجی JSON در حالت verbose به این ابزار، نتایج به نمای قابلپیمایش با بخشهای تاشو تبدیل میشوند تا ابتدا روی موارد مهم تمرکز کنید و فقط هنگام نیاز جزئیات را باز کنید. این رویکرد شلوغی خروجی را کم میکند، خوانایی را بالا میبرد و فرایند عیبیابی را در همان محیط ترمینال سریعتر و سادهتر میسازد.
#Go #Testing #TUI #CLI #JSON #DeveloperTools #Sift
🟣لینک مقاله:
https://golangweekly.com/link/175641/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - timtatt/sift: A lightweight terminal UI for displaying Go tests
A lightweight terminal UI for displaying Go tests. Contribute to timtatt/sift development by creating an account on GitHub.
❤1
🔵 عنوان مقاله
Excelize 2.10: A Pure Go Way to Work with Excel Spreadsheets
🟢 خلاصه مقاله:
نسخه 2.10 از Excelize یک کتابخانه پخته و فعال در اکوسیستم Go است که امکان خواندن و نوشتن فایلهای XLAM، XLSM، XLSX، XLTM و XLTX را بهصورت مستقیم و بدون وابستگیهای بومی فراهم میکند. بهدلیل Pure Go بودن، استقرار ساده است، باینریها قابل حملاند و روی Linux، macOS و Windows پایدار اجرا میشوند؛ از محیطهای ابری و container تا serverless و ابزارهای CLI. این کتابخانه ایجاد و ویرایش فایلها، کار با شیتها، سلولها، استایلها و فرمولها را پوشش میدهد و با پشتیبانی از مواردی مانند Data Validation، Conditional Formatting، نمودارها و Pivot Table برای ساخت گزارشهای حرفهای مناسب است. در این نسخه تمرکز بر پایداری، کارایی و سازگاری بهتر با ویژگیهای مدرن Excel ادامه یافته و Excelize همچنان گزینهای قابل اتکا برای اتوماسیون Excel در پروژههای Go بهشمار میآید.
#Excelize #Go #Golang #Excel #Spreadsheets #OpenSource #DataEngineering #Automation
🟣لینک مقاله:
https://golangweekly.com/link/175639/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Excelize 2.10: A Pure Go Way to Work with Excel Spreadsheets
🟢 خلاصه مقاله:
نسخه 2.10 از Excelize یک کتابخانه پخته و فعال در اکوسیستم Go است که امکان خواندن و نوشتن فایلهای XLAM، XLSM، XLSX، XLTM و XLTX را بهصورت مستقیم و بدون وابستگیهای بومی فراهم میکند. بهدلیل Pure Go بودن، استقرار ساده است، باینریها قابل حملاند و روی Linux، macOS و Windows پایدار اجرا میشوند؛ از محیطهای ابری و container تا serverless و ابزارهای CLI. این کتابخانه ایجاد و ویرایش فایلها، کار با شیتها، سلولها، استایلها و فرمولها را پوشش میدهد و با پشتیبانی از مواردی مانند Data Validation، Conditional Formatting، نمودارها و Pivot Table برای ساخت گزارشهای حرفهای مناسب است. در این نسخه تمرکز بر پایداری، کارایی و سازگاری بهتر با ویژگیهای مدرن Excel ادامه یافته و Excelize همچنان گزینهای قابل اتکا برای اتوماسیون Excel در پروژههای Go بهشمار میآید.
#Excelize #Go #Golang #Excel #Spreadsheets #OpenSource #DataEngineering #Automation
🟣لینک مقاله:
https://golangweekly.com/link/175639/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Ri Xu Online
Excelize Official Documentation
Go language API for Spreadsheet (Excel) Document
🔵 عنوان مقاله
A Modern Approach to Preventing CSRF/CORF in Go
🟢 خلاصه مقاله:
این مقاله یک رویکرد مدرن برای مقابله با حملات CSRF/CORF در Go معرفی میکند. بهجای تکیه بر tokens، در Go 1.25 یک middleware به نام http.CrossOriginProtection ارائه شده که با استفاده از سیگنالهای امنیتی مرورگر (مانند Fetch Metadata و سیاستهای SameSite) میان درخواستهای امن هممبداء و درخواستهای مشکوک بینمبداء تفکیک ایجاد میکند. این میانافزار بهطور پیشفرض درخواستهای امن را میپذیرد و درخواستهای تغییردهنده حالت از مبداءهای نامطمئن را مسدود میکند، درحالیکه برای مسیرهای ضروری (مثل OAuth callback یا webhook) قابلیت allowlist دارد و با CORS نیز سازگار است. نتیجه، کاهش پیچیدگی پیادهسازی CSRF، تکیه بر قابلیتهای جدید مرورگرها، و استقرار مرحلهای (از حالت گزارش تا اعمال) است؛ ضمن اینکه جایگزین احراز هویت و کنترل دسترسی نیست، بلکه مکمل آنهاست.
#Go #CSRF #WebSecurity #FetchMetadata #SameSite #Middleware #GoLang #Security
🟣لینک مقاله:
https://golangweekly.com/link/175634/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
A Modern Approach to Preventing CSRF/CORF in Go
🟢 خلاصه مقاله:
این مقاله یک رویکرد مدرن برای مقابله با حملات CSRF/CORF در Go معرفی میکند. بهجای تکیه بر tokens، در Go 1.25 یک middleware به نام http.CrossOriginProtection ارائه شده که با استفاده از سیگنالهای امنیتی مرورگر (مانند Fetch Metadata و سیاستهای SameSite) میان درخواستهای امن هممبداء و درخواستهای مشکوک بینمبداء تفکیک ایجاد میکند. این میانافزار بهطور پیشفرض درخواستهای امن را میپذیرد و درخواستهای تغییردهنده حالت از مبداءهای نامطمئن را مسدود میکند، درحالیکه برای مسیرهای ضروری (مثل OAuth callback یا webhook) قابلیت allowlist دارد و با CORS نیز سازگار است. نتیجه، کاهش پیچیدگی پیادهسازی CSRF، تکیه بر قابلیتهای جدید مرورگرها، و استقرار مرحلهای (از حالت گزارش تا اعمال) است؛ ضمن اینکه جایگزین احراز هویت و کنترل دسترسی نیست، بلکه مکمل آنهاست.
#Go #CSRF #WebSecurity #FetchMetadata #SameSite #Middleware #GoLang #Security
🟣لینک مقاله:
https://golangweekly.com/link/175634/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
www.alexedwards.net
A modern approach to preventing CSRF in Go - Alex Edwards
❤4
🔵 عنوان مقاله
CPU Cache-Friendly Data Structures in Go: 10x Speed with Same Algorithm
🟢 خلاصه مقاله:
** این مقاله نشان میدهد که در Go میتوان بدون تغییر الگوریتم و فقط با بهینهسازی نحوهٔ دسترسی به حافظه، به بهبودهایی تا ۱۰ برابر رسید. ایدهٔ اصلی این است که با بهرهگیری از محلیّت در CPU و نگه داشتن دادههای «داغ» در حافظهٔ پیوسته، تعداد cache miss به شدت کم میشود. راهکارهای کلیدی شامل استفاده از sliceهای پیوسته بهجای ساختارهای پر از pointer، فشردهسازی و چیدمان درست فیلدهای struct، انتخاب آگاهانه بین AoS و SoA، کاهش تخصیصها و استفاده از sync.Pool برای بازاستفادهٔ حافظه، و اجتناب از false sharing در برنامههای همزمان است. اندازهگیری با ابزارهای benchmark و pprof کمک میکند ببینیم گلوگاه واقعاً از کجاست. نتیجهٔ عملی طبق تجربهٔ Serge Skoredin: با حفظ همان منطق، تنها با طراحی cache‑friendly در Go میتوان جهشهای بزرگ کارایی بهدست آورد.
#Go #Golang #CPUCache #Performance #DataStructures #SystemsProgramming #Optimization #LowLatency
🟣لینک مقاله:
https://golangweekly.com/link/175636/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
CPU Cache-Friendly Data Structures in Go: 10x Speed with Same Algorithm
🟢 خلاصه مقاله:
** این مقاله نشان میدهد که در Go میتوان بدون تغییر الگوریتم و فقط با بهینهسازی نحوهٔ دسترسی به حافظه، به بهبودهایی تا ۱۰ برابر رسید. ایدهٔ اصلی این است که با بهرهگیری از محلیّت در CPU و نگه داشتن دادههای «داغ» در حافظهٔ پیوسته، تعداد cache miss به شدت کم میشود. راهکارهای کلیدی شامل استفاده از sliceهای پیوسته بهجای ساختارهای پر از pointer، فشردهسازی و چیدمان درست فیلدهای struct، انتخاب آگاهانه بین AoS و SoA، کاهش تخصیصها و استفاده از sync.Pool برای بازاستفادهٔ حافظه، و اجتناب از false sharing در برنامههای همزمان است. اندازهگیری با ابزارهای benchmark و pprof کمک میکند ببینیم گلوگاه واقعاً از کجاست. نتیجهٔ عملی طبق تجربهٔ Serge Skoredin: با حفظ همان منطق، تنها با طراحی cache‑friendly در Go میتوان جهشهای بزرگ کارایی بهدست آورد.
#Go #Golang #CPUCache #Performance #DataStructures #SystemsProgramming #Optimization #LowLatency
🟣لینک مقاله:
https://golangweekly.com/link/175636/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
skoredin.pro
CPU Cache-Friendly Data Structures in Go: 10x Speed
False sharing killed our performance. Data-oriented design saved it.
❤1🔥1
🔵 عنوان مقاله
15 Go Subtleties You May Not Already Know
🟢 خلاصه مقاله:
این مقاله یک مرور جمعوجور و کاربردی از ۱۵ ظرافت کمترشناختهشده در Go است؛ نکاتی که معمولاً در بازبینی کد و اشکالزدایی مهم میشوند. از تفاوت nil در اینترفیسها تا تفاوت گیرندههای اشارهای و مقداری، رفتار slice و map، ترتیب پیمایش map و زمانبندی و هزینه defer، همگی با مثالهای کوتاه بیان شدهاند. بخشهایی درباره همزمانی و الگوهای هماهنگی (جلوگیری از نشت goroutine و استفاده درست از context) و نیز ظرایف کار با زمان—از تفاوت زمان یکنواخت و دیواری تا کار با تایمرها، tickerها و بسته time—هم پوشش داده میشود. نتیجه: مطلبی سریع و قابل مرور که حتی اگر فقط چند نکتهاش برایتان تازه باشد، ارزش خواندن دارد؛ و اگر همه را میدانید، حس خوبی از تأیید دانستههایتان میگیرید.
#Go #Golang #time #Concurrency #ProgrammingTips #SoftwareEngineering #GoTips
🟣لینک مقاله:
https://golangweekly.com/link/175625/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
15 Go Subtleties You May Not Already Know
🟢 خلاصه مقاله:
این مقاله یک مرور جمعوجور و کاربردی از ۱۵ ظرافت کمترشناختهشده در Go است؛ نکاتی که معمولاً در بازبینی کد و اشکالزدایی مهم میشوند. از تفاوت nil در اینترفیسها تا تفاوت گیرندههای اشارهای و مقداری، رفتار slice و map، ترتیب پیمایش map و زمانبندی و هزینه defer، همگی با مثالهای کوتاه بیان شدهاند. بخشهایی درباره همزمانی و الگوهای هماهنگی (جلوگیری از نشت goroutine و استفاده درست از context) و نیز ظرایف کار با زمان—از تفاوت زمان یکنواخت و دیواری تا کار با تایمرها، tickerها و بسته time—هم پوشش داده میشود. نتیجه: مطلبی سریع و قابل مرور که حتی اگر فقط چند نکتهاش برایتان تازه باشد، ارزش خواندن دارد؛ و اگر همه را میدانید، حس خوبی از تأیید دانستههایتان میگیرید.
#Go #Golang #time #Concurrency #ProgrammingTips #SoftwareEngineering #GoTips
🟣لینک مقاله:
https://golangweekly.com/link/175625/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
harrisoncramer.me
15 Go Subtleties You May Not Already Know
Some of my favorite tidbits from the past year of working with Go.
🔵 عنوان مقاله
Go 1.25.3 and 1.24.9 have been released
🟢 خلاصه مقاله:
نسخههای Go 1.25.3 و 1.24.9 منتشر شدند. این بهروزرسانیهای جزئی، مشکل ایجادشده توسط یک وصله امنیتی قبلی را که هنگام parse کردن X بیش از حد سختگیرانه عمل میکرد، برطرف میکنند. ویژگی جدیدی اضافه نشده و تغییرات محدود به منطق parse مرتبط با X است. به کاربران شاخههای 1.25 و 1.24 توصیه میشود برای حفظ سازگاری و امنیت، به این نسخهها ارتقا دهند و پس از ارتقا، تستها را اجرا کنند.
#Go #Golang #Security #Release #Patch #Bugfix #Parsing #Update
🟣لینک مقاله:
https://golangweekly.com/link/175627/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Go 1.25.3 and 1.24.9 have been released
🟢 خلاصه مقاله:
نسخههای Go 1.25.3 و 1.24.9 منتشر شدند. این بهروزرسانیهای جزئی، مشکل ایجادشده توسط یک وصله امنیتی قبلی را که هنگام parse کردن X بیش از حد سختگیرانه عمل میکرد، برطرف میکنند. ویژگی جدیدی اضافه نشده و تغییرات محدود به منطق parse مرتبط با X است. به کاربران شاخههای 1.25 و 1.24 توصیه میشود برای حفظ سازگاری و امنیت، به این نسخهها ارتقا دهند و پس از ارتقا، تستها را اجرا کنند.
#Go #Golang #Security #Release #Patch #Bugfix #Parsing #Update
🟣لینک مقاله:
https://golangweekly.com/link/175627/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
🔵 عنوان مقاله
Goiaba: An Experimental Go Parser and Compiler in Rust
🟢 خلاصه مقاله:
** Goiaba یک پروژه آزمایشی و در حال توسعه است که با Rust نوشته میشود تا کد Go را پردازش کرده و خروجی WebAssembly تولید کند؛ هدف اصلی آن یادگیری مباحث ساخت parser و compiler است، نه عرضه یک ابزار آماده تولید. تمرکز پروژه بر شفافیت و درکپذیری است، بنابراین پوشش کامل ویژگیهای Go و کارایی بالا در اولویت نیست و ممکن است بسیاری از بخشها ناقص یا آزمایشی باشند. معماری ماژولار آن برای آزمایش و گسترش آسان طراحی شده و هدفگیری WebAssembly امکان اجرا در مرورگرها و زماناجرای سبک را فراهم میکند. این پروژه میتواند مرجعی آموزشی برای علاقهمندان به compiler، parser و ابزارهای WebAssembly باشد و در آینده احتمالاً پوشش زبانی بهتر، تست و مستندسازی بیشتر و بهینهسازیهای پایه را دنبال میکند.
#Goiaba #Go #Rust #WebAssembly #Compiler #Parser #ProgrammingLanguages #LearningProject
🟣لینک مقاله:
https://golangweekly.com/link/175645/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Goiaba: An Experimental Go Parser and Compiler in Rust
🟢 خلاصه مقاله:
** Goiaba یک پروژه آزمایشی و در حال توسعه است که با Rust نوشته میشود تا کد Go را پردازش کرده و خروجی WebAssembly تولید کند؛ هدف اصلی آن یادگیری مباحث ساخت parser و compiler است، نه عرضه یک ابزار آماده تولید. تمرکز پروژه بر شفافیت و درکپذیری است، بنابراین پوشش کامل ویژگیهای Go و کارایی بالا در اولویت نیست و ممکن است بسیاری از بخشها ناقص یا آزمایشی باشند. معماری ماژولار آن برای آزمایش و گسترش آسان طراحی شده و هدفگیری WebAssembly امکان اجرا در مرورگرها و زماناجرای سبک را فراهم میکند. این پروژه میتواند مرجعی آموزشی برای علاقهمندان به compiler، parser و ابزارهای WebAssembly باشد و در آینده احتمالاً پوشش زبانی بهتر، تست و مستندسازی بیشتر و بهینهسازیهای پایه را دنبال میکند.
#Goiaba #Go #Rust #WebAssembly #Compiler #Parser #ProgrammingLanguages #LearningProject
🟣لینک مقاله:
https://golangweekly.com/link/175645/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - raphamorim/goiaba: Experimental Go parser and compiler.
Experimental Go parser and compiler. Contribute to raphamorim/goiaba development by creating an account on GitHub.
❤2
🔵 عنوان مقاله
AWS Lambda for Go 1.50
🟢 خلاصه مقاله:
این مقاله اعلام میکند که AWS Lambda از Go 1.50 پشتیبانی میکند و مجموعهای از نمونهها و ابزارها برای ساخت سرویسهای Serverless ارائه میدهد. محورها شامل استفاده از کتابخانه aws-lambda-go، ادغام با رویدادهای Amazon API Gateway، Amazon S3، Amazon DynamoDB و AWS Step Functions، و مشاهدهپذیری از طریق Amazon CloudWatch و AWS Lambda Powertools for Go است. برای استقرار و اتوماسیون، از AWS SAM، AWS CDK و Serverless Framework استفاده میشود؛ تست محلی با AWS SAM CLI و شبیهساز رابط زماناجرا ممکن است، و استقرار هم بهصورت zip و هم Container Image پشتیبانی میشود. نکات عملی شامل ساخت باینریهای کوچک برای linux/amd64 یا linux/arm64، بهرهگیری از Lambda Layers، بهینهسازی سرداستارت با مقداردهی اولیه سراسری و Provisioned Concurrency، تنظیم بهینه حافظه/CPU، انتخاب arm64 برای کارایی-بهازای-هزینه، و مدیریت امن رازها با AWS Secrets Manager یا AWS Systems Manager Parameter Store است؛ همچنین برای مهاجرت از نسخههای قبلی Go بر بررسی وابستگیها و تنظیم پرچمهای ساخت تأکید میشود.
#AWS #AWSLambda #Go #Serverless #Cloud #DevOps #InfrastructureAsCode #Observability
🟣لینک مقاله:
https://golangweekly.com/link/175649/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
AWS Lambda for Go 1.50
🟢 خلاصه مقاله:
این مقاله اعلام میکند که AWS Lambda از Go 1.50 پشتیبانی میکند و مجموعهای از نمونهها و ابزارها برای ساخت سرویسهای Serverless ارائه میدهد. محورها شامل استفاده از کتابخانه aws-lambda-go، ادغام با رویدادهای Amazon API Gateway، Amazon S3، Amazon DynamoDB و AWS Step Functions، و مشاهدهپذیری از طریق Amazon CloudWatch و AWS Lambda Powertools for Go است. برای استقرار و اتوماسیون، از AWS SAM، AWS CDK و Serverless Framework استفاده میشود؛ تست محلی با AWS SAM CLI و شبیهساز رابط زماناجرا ممکن است، و استقرار هم بهصورت zip و هم Container Image پشتیبانی میشود. نکات عملی شامل ساخت باینریهای کوچک برای linux/amd64 یا linux/arm64، بهرهگیری از Lambda Layers، بهینهسازی سرداستارت با مقداردهی اولیه سراسری و Provisioned Concurrency، تنظیم بهینه حافظه/CPU، انتخاب arm64 برای کارایی-بهازای-هزینه، و مدیریت امن رازها با AWS Secrets Manager یا AWS Systems Manager Parameter Store است؛ همچنین برای مهاجرت از نسخههای قبلی Go بر بررسی وابستگیها و تنظیم پرچمهای ساخت تأکید میشود.
#AWS #AWSLambda #Go #Serverless #Cloud #DevOps #InfrastructureAsCode #Observability
🟣لینک مقاله:
https://golangweekly.com/link/175649/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - aws/aws-lambda-go: Libraries, samples and tools to help Go developers develop AWS Lambda functions.
Libraries, samples and tools to help Go developers develop AWS Lambda functions. - aws/aws-lambda-go
❤1🔥1
🔵 عنوان مقاله
How Slow is Channel-Based Iteration?
🟢 خلاصه مقاله:
این مقاله پرسش «تکرار مبتنی بر channel در Go چقدر کند است؟» را با یک مثال عملی بررسی میکند. تیم Dolt سه الگو را مقایسه کرده است: دو رویکرد مبتنی بر channel و یک روش iterator کشیدنی با iter.Pull. نتیجه کلی این است که هرچند channelها برای همزمانی، مدیریت فشار برگشتی و جداسازی تولیدکننده/مصرفکننده عالیاند، اما در حلقههای محاسباتیِ حساس به کارایی، سربار همگامسازی، زمانبندی goroutine و تخصیصها محسوس میشود. در مقابل، iter.Pull (و حلقههای ساده روی دادههای خطی) معمولاً سبکتر و بهینهترند. توصیه نهایی: وقتی به همزمانی واقعی نیاز دارید از channel استفاده کنید؛ برای مسیرهای داغ که فقط پیمایش میخواهند، سراغ iterator کشیدنی یا حلقههای ساده بروید.
#Go #Golang #Channels #Iteration #Performance #Benchmarking #Concurrency #Dolt
🟣لینک مقاله:
https://golangweekly.com/link/175626/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
How Slow is Channel-Based Iteration?
🟢 خلاصه مقاله:
این مقاله پرسش «تکرار مبتنی بر channel در Go چقدر کند است؟» را با یک مثال عملی بررسی میکند. تیم Dolt سه الگو را مقایسه کرده است: دو رویکرد مبتنی بر channel و یک روش iterator کشیدنی با iter.Pull. نتیجه کلی این است که هرچند channelها برای همزمانی، مدیریت فشار برگشتی و جداسازی تولیدکننده/مصرفکننده عالیاند، اما در حلقههای محاسباتیِ حساس به کارایی، سربار همگامسازی، زمانبندی goroutine و تخصیصها محسوس میشود. در مقابل، iter.Pull (و حلقههای ساده روی دادههای خطی) معمولاً سبکتر و بهینهترند. توصیه نهایی: وقتی به همزمانی واقعی نیاز دارید از channel استفاده کنید؛ برای مسیرهای داغ که فقط پیمایش میخواهند، سراغ iterator کشیدنی یا حلقههای ساده بروید.
#Go #Golang #Channels #Iteration #Performance #Benchmarking #Concurrency #Dolt
🟣لینک مقاله:
https://golangweekly.com/link/175626/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Dolthub
How slow is channel-based iteration?
We benchmarked channel-based iterators v. those provided by the iter package and share the results.
👍1🔥1
🔵 عنوان مقاله
Writing Better Go: Lessons from 10 Code Reviews
🟢 خلاصه مقاله:
** این اسلایدها با عنوان Writing Better Go: Lessons from 10 Code Reviews حاصل ارائهای از Konrad Reiche در GoLab 2025 است و مجموعهای از الگوهای تکرارشونده در بازبینیهای واقعی کد را به راهنماییهای عملی تبدیل میکند. محور اصلی، نوشتن کد ساده و خوانا با Go است: طراحی APIهای کوچک و منسجم، نامگذاری دقیق، تعریف interface در محل مصرف، استفاده سنجیده از composition، صفر-مقدارهای مفید، عبور منظم context و پرهیز از وضعیتهای سراسری.
بخش مهمی از درسها به خطاها و ثبت رویداد میپردازد: خطاها را بهعنوان مقدار مدیریت کنید، با %w زمینه اضافه کنید، از panic فقط برای شکستهای غیرقابلبازیابی در آغاز اجرا بهره ببرید، منابع را با defer جمع کنید، و در کتابخانهها بهجای لاگکردن، خطا برگردانید تا برنامه اصلی مسئول لاگ باشد.
در همروندی، تأکید بر سادگی و ایمنی است: چرخه عمر goroutineها را صریح کنید، آنها را به context گره بزنید، با select روی context.Done() از نشت جلوگیری کنید، و بسته به مسئله از channel یا ابزارهای sync بهدرستی استفاده کنید. بافرگذاری آگاهانه، مستندسازی قراردادها، و اعمال timeout و backpressure در پایپلاینها ضروری است.
برای کیفیت و کارایی، تستهای جدولمحور، پوشش مرزی، fuzzing، اجرای race detector، بنچمارک با testing.B و پروفایل با pprof توصیه میشود؛ از بهینهسازی زودهنگام بپرهیزید و تغییرات را بر اساس اندازهگیری انجام دهید.
در نهایت، فرهنگ بازبینی و ابزارهای خودکار نقش کلیدی دارند: یکدستی با gofmt/goimports، بررسیهای خودکار با go vet و staticcheck در CI، درخواستهای کوچک با پیامهای شفاف و تمرکز بازبینی بر درستی، طراحی و نگهداشتپذیری. این چکلیست عملی میتواند فوراً در تیمها و کدبیسهای Go به کار گرفته شود.
#Go #Golang #CodeReview #GoLab2025 #SoftwareEngineering #BestPractices #Concurrency #ErrorHandling
🟣لینک مقاله:
https://golangweekly.com/link/175975/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Writing Better Go: Lessons from 10 Code Reviews
🟢 خلاصه مقاله:
** این اسلایدها با عنوان Writing Better Go: Lessons from 10 Code Reviews حاصل ارائهای از Konrad Reiche در GoLab 2025 است و مجموعهای از الگوهای تکرارشونده در بازبینیهای واقعی کد را به راهنماییهای عملی تبدیل میکند. محور اصلی، نوشتن کد ساده و خوانا با Go است: طراحی APIهای کوچک و منسجم، نامگذاری دقیق، تعریف interface در محل مصرف، استفاده سنجیده از composition، صفر-مقدارهای مفید، عبور منظم context و پرهیز از وضعیتهای سراسری.
بخش مهمی از درسها به خطاها و ثبت رویداد میپردازد: خطاها را بهعنوان مقدار مدیریت کنید، با %w زمینه اضافه کنید، از panic فقط برای شکستهای غیرقابلبازیابی در آغاز اجرا بهره ببرید، منابع را با defer جمع کنید، و در کتابخانهها بهجای لاگکردن، خطا برگردانید تا برنامه اصلی مسئول لاگ باشد.
در همروندی، تأکید بر سادگی و ایمنی است: چرخه عمر goroutineها را صریح کنید، آنها را به context گره بزنید، با select روی context.Done() از نشت جلوگیری کنید، و بسته به مسئله از channel یا ابزارهای sync بهدرستی استفاده کنید. بافرگذاری آگاهانه، مستندسازی قراردادها، و اعمال timeout و backpressure در پایپلاینها ضروری است.
برای کیفیت و کارایی، تستهای جدولمحور، پوشش مرزی، fuzzing، اجرای race detector، بنچمارک با testing.B و پروفایل با pprof توصیه میشود؛ از بهینهسازی زودهنگام بپرهیزید و تغییرات را بر اساس اندازهگیری انجام دهید.
در نهایت، فرهنگ بازبینی و ابزارهای خودکار نقش کلیدی دارند: یکدستی با gofmt/goimports، بررسیهای خودکار با go vet و staticcheck در CI، درخواستهای کوچک با پیامهای شفاف و تمرکز بازبینی بر درستی، طراحی و نگهداشتپذیری. این چکلیست عملی میتواند فوراً در تیمها و کدبیسهای Go به کار گرفته شود.
#Go #Golang #CodeReview #GoLab2025 #SoftwareEngineering #BestPractices #Concurrency #ErrorHandling
🟣لینک مقاله:
https://golangweekly.com/link/175975/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Speaker Deck
Writing Better Go: Lessons from 10 Code Reviews
Why do Go developers obsess over variable names, error handling, and interfaces, even when your approach does the job, too? Whether gently or not so gen…
👍1
🔵 عنوان مقاله
The Speed of Random Number Generators
🟢 خلاصه مقاله:
در این مقاله، Daniel سرعت گزینههای رایج تولید اعداد تصادفی در Go را مقایسه میکند. او نشان میدهد که math/rand/v2 با الگوریتم PCG در سناریوهای غیرامنیتی سریعترین گزینه است و از نسخه قدیمیتر math/rand عملکرد بهتری دارد، در حالی که crypto/rand بهدلیل تمرکز بر امنیت بهطور قابلتوجهی کندتر است. جمعبندی عملی: برای کارهای غیررمزنگاری که سرعت و قابلیت بازتولید مهماند، از math/rand/v2 (PCG) استفاده کنید؛ اما برای مقاصد امنیتی، با وجود هزینهی عملکرد، crypto/rand انتخاب درست است.
#Go #Golang #RandomNumberGeneration #Performance #Benchmark #PCG #mathrand #cryptorand
🟣لینک مقاله:
https://golangweekly.com/link/175977/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
The Speed of Random Number Generators
🟢 خلاصه مقاله:
در این مقاله، Daniel سرعت گزینههای رایج تولید اعداد تصادفی در Go را مقایسه میکند. او نشان میدهد که math/rand/v2 با الگوریتم PCG در سناریوهای غیرامنیتی سریعترین گزینه است و از نسخه قدیمیتر math/rand عملکرد بهتری دارد، در حالی که crypto/rand بهدلیل تمرکز بر امنیت بهطور قابلتوجهی کندتر است. جمعبندی عملی: برای کارهای غیررمزنگاری که سرعت و قابلیت بازتولید مهماند، از math/rand/v2 (PCG) استفاده کنید؛ اما برای مقاصد امنیتی، با وجود هزینهی عملکرد، crypto/rand انتخاب درست است.
#Go #Golang #RandomNumberGeneration #Performance #Benchmark #PCG #mathrand #cryptorand
🟣لینک مقاله:
https://golangweekly.com/link/175977/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Daniel Lemire's blog
Speed of random number generators in Go
We often need to generate random numbers in software. We need them for games, simulations, testing, and so forth. In many of these cases, we would like to use the fastest generator we can find, as long as it is reasonably random-looking. In some instances…
👍1
🔵 عنوان مقاله
The 'Compare IP Subnets' Proposal
🟢 خلاصه مقاله:
در مجموعه Accepted!، «Anton» یکی از تغییرات «Go 1.26» را معرفی میکند که مشکل قدیمی مقایسه زیرشبکههای IP را هدف گرفته است. این تغییر روشی استاندارد و یکدست برای مقایسه و مرتبسازی زیرشبکهها (IPv4 و IPv6) ارائه میکند تا کارهایی مثل مرتبسازی جدولهای مسیریابی، حذف موارد تکراری و بررسی شمول (Containment) ساده و قابل اتکا شود. نتیجه این است که کدهای شبکه خواناتر میشوند، از خطاهای ظریف جلوگیری میشود و عملکرد بهبود مییابد؛ بدون آنکه ناسازگاری با کدهای موجود ایجاد شود. این قابلیت بهصورت افزایشی اضافه میشود و میتوان آن را تدریجی به کار گرفت.
#Go #Golang #Networking #IP #CIDR #Subnetting #Go126 #SoftwareEngineering
🟣لینک مقاله:
https://golangweekly.com/link/175978/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
The 'Compare IP Subnets' Proposal
🟢 خلاصه مقاله:
در مجموعه Accepted!، «Anton» یکی از تغییرات «Go 1.26» را معرفی میکند که مشکل قدیمی مقایسه زیرشبکههای IP را هدف گرفته است. این تغییر روشی استاندارد و یکدست برای مقایسه و مرتبسازی زیرشبکهها (IPv4 و IPv6) ارائه میکند تا کارهایی مثل مرتبسازی جدولهای مسیریابی، حذف موارد تکراری و بررسی شمول (Containment) ساده و قابل اتکا شود. نتیجه این است که کدهای شبکه خواناتر میشوند، از خطاهای ظریف جلوگیری میشود و عملکرد بهبود مییابد؛ بدون آنکه ناسازگاری با کدهای موجود ایجاد شود. این قابلیت بهصورت افزایشی اضافه میشود و میتوان آن را تدریجی به کار گرفت.
#Go #Golang #Networking #IP #CIDR #Subnetting #Go126 #SoftwareEngineering
🟣لینک مقاله:
https://golangweekly.com/link/175978/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
antonz.org
Go proposal: Compare IP subnets
The same way IANA and Python do.
👍2
🔵 عنوان مقاله
The “10x” Commandments of Highly Effective Go
🟢 خلاصه مقاله:
** مقاله با تمثیلی شوخطبعانه، «ده فرمان» برای توسعهدهندگان Go ارائه میکند؛ نه چیزِ تازه، بلکه ده راهنمای کلی و کاربردی برای نوشتن کد ساده، خوانا و قابل نگهداری. محورهای اصلی شامل سادگی و خوانایی، اینترفیسهای کوچک، مدیریت صریح خطا، همزمانی قابل پیشبینی با goroutine و channel، سازماندهی درست پکیجها، تست و بنچمارک، مستندسازی و بهینهسازی مبتنی بر اندازهگیری است. هر اصل با نمونههای عملی در GoLand همراه شده: استفاده از inspections برای شناسایی کد غیر idiomatic، refactor به سمت اینترفیسهای کوچک، الگوهای آماده برای error handling، اجرای تست و بنچمارک، دیباگ همزمانی، یکپارچهسازی linters و پروفایلینگ برای سنجش کارایی. برچسب «10x» فقط کمکی برای بهخاطر سپردن است؛ پیام اصلی این است که با تکیه بر عادتهای درست و بهرهگیری از GoLand، انجام کار درست آسانتر میشود.
#Go #Golang #GoLand #SoftwareEngineering #BestPractices #Testing #Refactoring #Productivity
🟣لینک مقاله:
https://golangweekly.com/link/175970/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
The “10x” Commandments of Highly Effective Go
🟢 خلاصه مقاله:
** مقاله با تمثیلی شوخطبعانه، «ده فرمان» برای توسعهدهندگان Go ارائه میکند؛ نه چیزِ تازه، بلکه ده راهنمای کلی و کاربردی برای نوشتن کد ساده، خوانا و قابل نگهداری. محورهای اصلی شامل سادگی و خوانایی، اینترفیسهای کوچک، مدیریت صریح خطا، همزمانی قابل پیشبینی با goroutine و channel، سازماندهی درست پکیجها، تست و بنچمارک، مستندسازی و بهینهسازی مبتنی بر اندازهگیری است. هر اصل با نمونههای عملی در GoLand همراه شده: استفاده از inspections برای شناسایی کد غیر idiomatic، refactor به سمت اینترفیسهای کوچک، الگوهای آماده برای error handling، اجرای تست و بنچمارک، دیباگ همزمانی، یکپارچهسازی linters و پروفایلینگ برای سنجش کارایی. برچسب «10x» فقط کمکی برای بهخاطر سپردن است؛ پیام اصلی این است که با تکیه بر عادتهای درست و بهرهگیری از GoLand، انجام کار درست آسانتر میشود.
#Go #Golang #GoLand #SoftwareEngineering #BestPractices #Testing #Refactoring #Productivity
🟣لینک مقاله:
https://golangweekly.com/link/175970/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
The JetBrains Blog
The “10x” Commandments of Highly Effective Go | The GoLand Blog
What makes Go developers truly effective? In this guest post, John Arundel shares ten practical “commandments” of Go excellence – timeless lessons for writing cleaner, safer, and more maintainable Go code.
👍1
🔵 عنوان مقاله
Subtest Grouping in Go
🟢 خلاصه مقاله:
این مقاله از Golang Weekly توضیح میدهد چگونه با استفاده از T.Run در بسته testing میتوان زیرآزمونها را گروهبندی کرد تا تستهای بزرگ و Table-Driven خواناتر، قابل نگهداریتر و قابل فیلترشدن شوند. با نامگذاری سلسلهمراتبی مثل "Parser/Valid" یا "Auth/Admin/Permissions" میتوان با go test -run فقط یک گروه یا یک مورد خاص را اجرا کرد و همان الگو برای Benchmarks با B.Run نیز کاربرد دارد. مزیت دیگر این الگو، مدیریت سادهتر Setup/Teardown با تکیه بر Closure و t.Cleanup و همچنین امکان موازیسازی امن با t.Parallel است. مقاله بر نامهای شفاف، پرهیز از وضعیت مشترک قابل تغییر، گروههای منسجم، و استفاده از t.Helper برای سادهسازی تأکید میکند؛ ضمن اینکه خروجی ساختیافته تستها با -json و ابزارها/IDEها بهخوبی یکپارچه میشود و عیبیابی و سرعت توسعه را بهبود میدهد.
#Go #Golang #Testing #Subtests #GoTesting #GolangWeekly #SoftwareTesting
🟣لینک مقاله:
https://golangweekly.com/link/175983/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Subtest Grouping in Go
🟢 خلاصه مقاله:
این مقاله از Golang Weekly توضیح میدهد چگونه با استفاده از T.Run در بسته testing میتوان زیرآزمونها را گروهبندی کرد تا تستهای بزرگ و Table-Driven خواناتر، قابل نگهداریتر و قابل فیلترشدن شوند. با نامگذاری سلسلهمراتبی مثل "Parser/Valid" یا "Auth/Admin/Permissions" میتوان با go test -run فقط یک گروه یا یک مورد خاص را اجرا کرد و همان الگو برای Benchmarks با B.Run نیز کاربرد دارد. مزیت دیگر این الگو، مدیریت سادهتر Setup/Teardown با تکیه بر Closure و t.Cleanup و همچنین امکان موازیسازی امن با t.Parallel است. مقاله بر نامهای شفاف، پرهیز از وضعیت مشترک قابل تغییر، گروههای منسجم، و استفاده از t.Helper برای سادهسازی تأکید میکند؛ ضمن اینکه خروجی ساختیافته تستها با -json و ابزارها/IDEها بهخوبی یکپارچه میشود و عیبیابی و سرعت توسعه را بهبود میدهد.
#Go #Golang #Testing #Subtests #GoTesting #GolangWeekly #SoftwareTesting
🟣لینک مقاله:
https://golangweekly.com/link/175983/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Redowan's Reflections
Subtest grouping in Go
Go has support for subtests starting from version 1.7. With t.Run, you can nest tests,
assign names to cases, and let the runner execute work in parallel by calling t.Parallel
from subtests if needed.
For small suites, a flat set of t.Run calls is usually…
assign names to cases, and let the runner execute work in parallel by calling t.Parallel
from subtests if needed.
For small suites, a flat set of t.Run calls is usually…
👍1
🔵 عنوان مقاله
the results of its latest 'State of Developer Ecosystem Report'
🟢 خلاصه مقاله:
خلاصه تازهترین State of Developer Ecosystem Report نشان میدهد Go در شاخص Language Promise Index رتبه چهارم و در فهرست "languages developers want to adopt next" رتبه نخست را کسب کرده است. این نتایج از رشد چشمگیر و علاقه بالای توسعهدهندگان به Go حکایت دارد؛ زبانی ساده، سریع و مناسب برای کارهای cloud-native، microservices و زیرساخت که انتظار میرود حضورش در پروژههای واقعی و مسیرهای یادگیری و استخدام بیشتر شود.
#Go #golang #DeveloperEcosystem #DeveloperSurvey #ProgrammingLanguages #LanguageTrends #SoftwareEngineering
🟣لینک مقاله:
https://golangweekly.com/link/175972/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
the results of its latest 'State of Developer Ecosystem Report'
🟢 خلاصه مقاله:
خلاصه تازهترین State of Developer Ecosystem Report نشان میدهد Go در شاخص Language Promise Index رتبه چهارم و در فهرست "languages developers want to adopt next" رتبه نخست را کسب کرده است. این نتایج از رشد چشمگیر و علاقه بالای توسعهدهندگان به Go حکایت دارد؛ زبانی ساده، سریع و مناسب برای کارهای cloud-native، microservices و زیرساخت که انتظار میرود حضورش در پروژههای واقعی و مسیرهای یادگیری و استخدام بیشتر شود.
#Go #golang #DeveloperEcosystem #DeveloperSurvey #ProgrammingLanguages #LanguageTrends #SoftwareEngineering
🟣لینک مقاله:
https://golangweekly.com/link/175972/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Jetbrains
Tools and Trends - The State of Developer Ecosystem in 2025
Explore key software developer statistics for 2025 in the State of Developer Ecosystem Report. Trends, insights, and tools shaping the developer world.
❤1