🔵 عنوان مقاله
some odd discrepancies when profiling their Go code on macOS.
🟢 خلاصه مقاله:
این مطلب در Golang Weekly به این میپردازد که چرا هنگام پروفایل کردن برنامههای Go روی macOS گاهی نتایج ناسازگار و غافلگیرکننده دیده میشود؛ پروفایلها بین اجراها تغییر میکنند و معمولاً با اعداد بهدستآمده روی Linux یا در CI همخوان نیستند. ریشه مسئله بیشتر به تفاوت ابزارها، رفتار سیستمعامل و ویژگیهای بار کاری برمیگردد: نمونهبرداری pprof ممکن است نقاط داغ کوتاهعمر را نبیند، مدیریت توان و زمانبندی macOS بر نرخ نمونهگیری و زمان اجرای رشتهها اثر میگذارد، و حضور cgo یا کتابخانههای بومی میتواند ردگیری پشته و نمادگذاری را دشوار کند. توصیهها شامل ترکیب pprof با Instruments، اجرای طولانیتر برای پایداری نمونهگیری، کنترل نویز محیطی (مثل ثابت نگهداشتن GOMAXPROCS و اجرای سیستم در شرایط کمبار)، تکرار چندباره اندازهگیری و نهایتاً مقایسه با مقادیری است که روی Linux (در صورت استقرار نهایی) بهدست میآیند. جمعبندی این است که پروفایلهای macOS را راهنمایی جهتدار بدانید و تصمیمهای نهایی کارایی را بر اساس پلتفرم مقصد اتخاذ کنید.
#Go #Golang #macOS #Profiling #Performance #pprof #Instruments #AppleSilicon
🟣لینک مقاله:
https://golangweekly.com/link/176897/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
some odd discrepancies when profiling their Go code on macOS.
🟢 خلاصه مقاله:
این مطلب در Golang Weekly به این میپردازد که چرا هنگام پروفایل کردن برنامههای Go روی macOS گاهی نتایج ناسازگار و غافلگیرکننده دیده میشود؛ پروفایلها بین اجراها تغییر میکنند و معمولاً با اعداد بهدستآمده روی Linux یا در CI همخوان نیستند. ریشه مسئله بیشتر به تفاوت ابزارها، رفتار سیستمعامل و ویژگیهای بار کاری برمیگردد: نمونهبرداری pprof ممکن است نقاط داغ کوتاهعمر را نبیند، مدیریت توان و زمانبندی macOS بر نرخ نمونهگیری و زمان اجرای رشتهها اثر میگذارد، و حضور cgo یا کتابخانههای بومی میتواند ردگیری پشته و نمادگذاری را دشوار کند. توصیهها شامل ترکیب pprof با Instruments، اجرای طولانیتر برای پایداری نمونهگیری، کنترل نویز محیطی (مثل ثابت نگهداشتن GOMAXPROCS و اجرای سیستم در شرایط کمبار)، تکرار چندباره اندازهگیری و نهایتاً مقایسه با مقادیری است که روی Linux (در صورت استقرار نهایی) بهدست میآیند. جمعبندی این است که پروفایلهای macOS را راهنمایی جهتدار بدانید و تصمیمهای نهایی کارایی را بر اساس پلتفرم مقصد اتخاذ کنید.
#Go #Golang #macOS #Profiling #Performance #pprof #Instruments #AppleSilicon
🟣لینک مقاله:
https://golangweekly.com/link/176897/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Dolthub
Go CPU Profiling on MacOS is Broken
Profiling on MacOS gives unexpected and misleading results.
🔵 عنوان مقاله
Go v1.25.4 and 1.24.10
🟢 خلاصه مقاله:
نسخههای Go v1.25.4 و 1.24.10 منتشر شد؛ اینها بهروزرسانیهای نقطهای با تمرکز بر رفع باگها و بهبود پایداری هستند و قابلیت جدید یا تغییر ناسازگار اضافه نمیکنند. ارتقا در همان شاخه نسخه باید کمخطر و ساده باشد. پیشنهاد میشود پس از مرور release notes و آزمایش در CI، در شاخه فعلی خود به آخرین Patch ارتقا دهید. بستههای آماده برای Linux، macOS و Windows از صفحه رسمی دانلود یا مدیر بستهها در دسترس است.
#Go #Golang #Release #PatchRelease #BugFixes #Stability #SoftwareUpdate
🟣لینک مقاله:
https://golangweekly.com/link/176896/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Go v1.25.4 and 1.24.10
🟢 خلاصه مقاله:
نسخههای Go v1.25.4 و 1.24.10 منتشر شد؛ اینها بهروزرسانیهای نقطهای با تمرکز بر رفع باگها و بهبود پایداری هستند و قابلیت جدید یا تغییر ناسازگار اضافه نمیکنند. ارتقا در همان شاخه نسخه باید کمخطر و ساده باشد. پیشنهاد میشود پس از مرور release notes و آزمایش در CI، در شاخه فعلی خود به آخرین Patch ارتقا دهید. بستههای آماده برای Linux، macOS و Windows از صفحه رسمی دانلود یا مدیر بستهها در دسترس است.
#Go #Golang #Release #PatchRelease #BugFixes #Stability #SoftwareUpdate
🟣لینک مقاله:
https://golangweekly.com/link/176896/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
❤1
🔵 عنوان مقاله
What is sync.Pool and How to Use It Properly
🟢 خلاصه مقاله:
این مطلب دو بخش کلیدی از دنیای Go را پوشش میدهد: نخست، sync.Pool بهعنوان سازوکاری برای استفاده مجدد از اشیای موقت با هدف کاهش allocation و فشار بر GC. استفاده درست از آن یعنی: فقط برای اشیای کوتاهعمر و بدون مالکیت منابع خارجی، تعریف New برای ساخت در صورت خالی بودن، مقداردهی/Reset قبل از Put، و عدم اتکا به ماندگاری یا اندازه Pool. نتیجهگیری مهم: sync.Pool جایگزین cache پایدار نیست و باید با بنچمارکگیری مزیتش را سنجید. دوم، مقاله Jesús Espino در Devtrovert درباره Scanner در کامپایلر Go توضیح میدهد که چگونه متن کد را به token تبدیل میکند، شناسهها، لیترالها و عملگرها را میشناسد، با فاصلهها و کامنتها و خطاها برخورد میکند و خروجی را به parser میسپارد. ترکیب این دو دیدگاه، هم به بهینهسازی عملکرد برنامهها کمک میکند و هم درک عمیقتری از فرایند پردازش کد در Go میدهد.
#Go #Golang #syncPool #Compiler #Scanner #Performance #Concurrency #MemoryManagement
🟣لینک مقاله:
https://golangweekly.com/link/176904/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
What is sync.Pool and How to Use It Properly
🟢 خلاصه مقاله:
این مطلب دو بخش کلیدی از دنیای Go را پوشش میدهد: نخست، sync.Pool بهعنوان سازوکاری برای استفاده مجدد از اشیای موقت با هدف کاهش allocation و فشار بر GC. استفاده درست از آن یعنی: فقط برای اشیای کوتاهعمر و بدون مالکیت منابع خارجی، تعریف New برای ساخت در صورت خالی بودن، مقداردهی/Reset قبل از Put، و عدم اتکا به ماندگاری یا اندازه Pool. نتیجهگیری مهم: sync.Pool جایگزین cache پایدار نیست و باید با بنچمارکگیری مزیتش را سنجید. دوم، مقاله Jesús Espino در Devtrovert درباره Scanner در کامپایلر Go توضیح میدهد که چگونه متن کد را به token تبدیل میکند، شناسهها، لیترالها و عملگرها را میشناسد، با فاصلهها و کامنتها و خطاها برخورد میکند و خروجی را به parser میسپارد. ترکیب این دو دیدگاه، هم به بهینهسازی عملکرد برنامهها کمک میکند و هم درک عمیقتری از فرایند پردازش کد در Go میدهد.
#Go #Golang #syncPool #Compiler #Scanner #Performance #Concurrency #MemoryManagement
🟣لینک مقاله:
https://golangweekly.com/link/176904/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
YouTube
What Is sync.Pool in Go & How to Use It Properly
We'll not only talk about what sync.Pool is, but also look into how empty interfaces and slices behave under the hood, so we can understand how to use sync.Pool correctly in real situations.
Keep in mind this video is for learning purposes, so NOT every…
Keep in mind this video is for learning purposes, so NOT every…
🔵 عنوان مقاله
go-rest-api-example: Template for an Enterprise-Ready REST API Microservice
🟢 خلاصه مقاله:
پروژه go-rest-api-example یک قالب آماده برای ساخت Microserviceهای REST API در سطح Enterprise است. این Boilerplate با هدف راهاندازی سریع و استاندارد یک سرویس تولیدی ارائه شده و با نگهداری منظم بهروز میشود. نسخه این هفته با Go 1 یکپارچه شده تا با ابزارها و جریانهای کاری فعلی سازگار باشد و پایهای پایدار برای توسعه فراهم کند.
#Go #Golang #RESTAPI #Microservices #Boilerplate #Backend #API #SoftwareEngineering
🟣لینک مقاله:
https://golangweekly.com/link/176914/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
go-rest-api-example: Template for an Enterprise-Ready REST API Microservice
🟢 خلاصه مقاله:
پروژه go-rest-api-example یک قالب آماده برای ساخت Microserviceهای REST API در سطح Enterprise است. این Boilerplate با هدف راهاندازی سریع و استاندارد یک سرویس تولیدی ارائه شده و با نگهداری منظم بهروز میشود. نسخه این هفته با Go 1 یکپارچه شده تا با ابزارها و جریانهای کاری فعلی سازگار باشد و پایهای پایدار برای توسعه فراهم کند.
#Go #Golang #RESTAPI #Microservices #Boilerplate #Backend #API #SoftwareEngineering
🟣لینک مقاله:
https://golangweekly.com/link/176914/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - rameshsunkara/go-rest-api-example: Enterprise ready REST API microservice in golang
Enterprise ready REST API microservice in golang. Contribute to rameshsunkara/go-rest-api-example development by creating an account on GitHub.
👍2
🔵 عنوان مقاله
Trends in the Go Ecosystem in 2025
🟢 خلاصه مقاله:
گزارش تازه JetBrains از اکوسیستم Go در سال ۲۰۲۵ نشان میدهد جامعه Gophers همچنان به کتابخانههای ساده، پایدار و کموابستگی تکیه دارد. در وب، گرایش به فریمورکهای سبک و سریع پررنگ است و Gin بیشترین توجه را جلب کرده؛ در کنار گزینههایی مثل Echo، Fiber و Chi. برای دسترسی به داده نیز ابزارهایی مانند GORM و sqlx رایجاند و معیارهایی مثل کیفیت مستندات، ثبات و ردپای وابستگی کوچک نقش تعیینکننده دارند. در تست، رویکردهای idiomatic مثل go test و table-driven tests همراه با testify و ابزارهای mocking، بهعلاوه ادغام در CI و توجه به پوشش کد، جریان غالباند؛ علاقه به fuzzing و property-based testing نیز رو به رشد است. دستیارهای هوشمند کدنویسی به ابزار روزمره تبدیل شدهاند: GitHub Copilot و ChatGPT بیشترین اشاره را دارند، JetBrains AI Assistant در IDEها پذیرفته شده و گزینههایی مثل Codeium و Tabnine هم برای ملاحظات حریم خصوصی و مجوزدهی مطرحاند. جمعبندی گزارش: انتخاب آگاهانه کتابخانههای مینیمال (با برتری Gin در سرویسهای وب)، سرمایهگذاری در ارگونومی تست و CI، و تدوین سیاست روشن برای استفاده از AI جهت افزایش بهرهوری بدون افت کیفیت کد.
#Go #Golang #JetBrains #Gin #Testing #AIAssistants #DeveloperSurvey #2025Trends
🟣لینک مقاله:
https://golangweekly.com/link/176892/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Trends in the Go Ecosystem in 2025
🟢 خلاصه مقاله:
گزارش تازه JetBrains از اکوسیستم Go در سال ۲۰۲۵ نشان میدهد جامعه Gophers همچنان به کتابخانههای ساده، پایدار و کموابستگی تکیه دارد. در وب، گرایش به فریمورکهای سبک و سریع پررنگ است و Gin بیشترین توجه را جلب کرده؛ در کنار گزینههایی مثل Echo، Fiber و Chi. برای دسترسی به داده نیز ابزارهایی مانند GORM و sqlx رایجاند و معیارهایی مثل کیفیت مستندات، ثبات و ردپای وابستگی کوچک نقش تعیینکننده دارند. در تست، رویکردهای idiomatic مثل go test و table-driven tests همراه با testify و ابزارهای mocking، بهعلاوه ادغام در CI و توجه به پوشش کد، جریان غالباند؛ علاقه به fuzzing و property-based testing نیز رو به رشد است. دستیارهای هوشمند کدنویسی به ابزار روزمره تبدیل شدهاند: GitHub Copilot و ChatGPT بیشترین اشاره را دارند، JetBrains AI Assistant در IDEها پذیرفته شده و گزینههایی مثل Codeium و Tabnine هم برای ملاحظات حریم خصوصی و مجوزدهی مطرحاند. جمعبندی گزارش: انتخاب آگاهانه کتابخانههای مینیمال (با برتری Gin در سرویسهای وب)، سرمایهگذاری در ارگونومی تست و CI، و تدوین سیاست روشن برای استفاده از AI جهت افزایش بهرهوری بدون افت کیفیت کد.
#Go #Golang #JetBrains #Gin #Testing #AIAssistants #DeveloperSurvey #2025Trends
🟣لینک مقاله:
https://golangweekly.com/link/176892/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
The JetBrains Blog
The Go Ecosystem in 2025: Key Trends in Frameworks, Tools, and Developer Practices | The GoLand Blog
Explore Go language trends in 2025, from popular frameworks and libraries to IDEs, testing tools, and the growing role of AI in Go development.
👍1
🔵 عنوان مقاله
Go's Runtime May Someday Start Explicitly Freeing Some Internal Memory?
🟢 خلاصه مقاله:
** Chris Siebenmann به ایدهای اشاره میکند که هنوز توسعه نیافته است: احتمال اینکه Go Runtime در آینده بتواند بخشی از حافظه داخلی خودش را بهصورت صریح به سیستمعامل برگرداند. هدف، کاهش RSS و رفتار بهتر زیر فشار حافظه—بهویژه در سرویسهای طولانیمدت و محیطهای کانتینری—است، اما با ریسک افت کارایی بهخاطر افزایش syscallها، page faultها و از دست رفتن cacheها. هنوز جزئیات و زمانبندی روشن نیست و اگر هم پیش برود، احتمالاً بهصورت آزمایشی و opt-in ارائه میشود. در صورت پیادهسازی در نسخههای بعدی Go، این تغییر میتواند شیوههای مرسوم تنظیم حافظه در تولید را تحت تأثیر قرار دهد.
#Go #Golang #Runtime #MemoryManagement #GarbageCollection #Performance #Containers #Cloud
🟣لینک مقاله:
https://golangweekly.com/link/176902/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Go's Runtime May Someday Start Explicitly Freeing Some Internal Memory?
🟢 خلاصه مقاله:
** Chris Siebenmann به ایدهای اشاره میکند که هنوز توسعه نیافته است: احتمال اینکه Go Runtime در آینده بتواند بخشی از حافظه داخلی خودش را بهصورت صریح به سیستمعامل برگرداند. هدف، کاهش RSS و رفتار بهتر زیر فشار حافظه—بهویژه در سرویسهای طولانیمدت و محیطهای کانتینری—است، اما با ریسک افت کارایی بهخاطر افزایش syscallها، page faultها و از دست رفتن cacheها. هنوز جزئیات و زمانبندی روشن نیست و اگر هم پیش برود، احتمالاً بهصورت آزمایشی و opt-in ارائه میشود. در صورت پیادهسازی در نسخههای بعدی Go، این تغییر میتواند شیوههای مرسوم تنظیم حافظه در تولید را تحت تأثیر قرار دهد.
#Go #Golang #Runtime #MemoryManagement #GarbageCollection #Performance #Containers #Cloud
🟣لینک مقاله:
https://golangweekly.com/link/176902/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
🔵 عنوان مقاله
Google's Agent Development Kit (ADK) for Go
🟢 خلاصه مقاله:
** گوگل نسخه Go از Agent Development Kit (ADK) را عرضه کرده است؛ کیتی که پیشتر برای Python و Java در دسترس بود و برای ساخت و استقرار عاملهای هوش مصنوعی بهکار میرود. ADK با حذف بخش بزرگی از کدنویسی تکراری در ارکستراسیون و ترکیب گردشکار عاملها، توسعه را ساده میکند. این چارچوب هم از نظر مدل (model-agnostic) و هم از نظر استقرار (deployment-agnostic) مستقل است، بنابراین میتوان آن را با LLMهای مختلف و در محیطهای ابری، داخلی یا لبه اجرا کرد. همچنین با فریمورکهای دیگر سازگار است و امکان پذیرش تدریجی در کنار پشتههای موجود را میدهد. برای تیمهای Go، این پشتیبانی یک مسیر سازگار و منعطف برای ساخت عاملها فراهم میکند، بدون قفلشدن به مدل یا زیرساخت خاص.
#Google #ADK #Go #AI #Agents #Python #Java #DeveloperTools
🟣لینک مقاله:
https://golangweekly.com/link/176899/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Google's Agent Development Kit (ADK) for Go
🟢 خلاصه مقاله:
** گوگل نسخه Go از Agent Development Kit (ADK) را عرضه کرده است؛ کیتی که پیشتر برای Python و Java در دسترس بود و برای ساخت و استقرار عاملهای هوش مصنوعی بهکار میرود. ADK با حذف بخش بزرگی از کدنویسی تکراری در ارکستراسیون و ترکیب گردشکار عاملها، توسعه را ساده میکند. این چارچوب هم از نظر مدل (model-agnostic) و هم از نظر استقرار (deployment-agnostic) مستقل است، بنابراین میتوان آن را با LLMهای مختلف و در محیطهای ابری، داخلی یا لبه اجرا کرد. همچنین با فریمورکهای دیگر سازگار است و امکان پذیرش تدریجی در کنار پشتههای موجود را میدهد. برای تیمهای Go، این پشتیبانی یک مسیر سازگار و منعطف برای ساخت عاملها فراهم میکند، بدون قفلشدن به مدل یا زیرساخت خاص.
#Google #ADK #Go #AI #Agents #Python #Java #DeveloperTools
🟣لینک مقاله:
https://golangweekly.com/link/176899/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Googleblog
Google for Developers Blog - News about Web, Mobile, AI and Cloud
Agent Development Kit (ADK) now supports Go. Build powerful, code-first AI agents leveraging Go's speed, concurrency, and A2A protocol.
🔵 عنوان مقاله
Red, Green, Refactor: Writing Perfect Go, with TDD
🟢 خلاصه مقاله:
** این مطلب سه دیدگاه مکمل برای بهبود کدنویسی در Go ارائه میکند: بهکارگیری چرخه Red–Green–Refactor در TDD برای ساخت پکیجهای کوچک و APIهای شفاف و ریفکتور امن با تکیه بر تستهای سریع؛ مرور کاربردی John Arundel از sync.Pool برای کاهش فشار تخصیص در مسیرهای داغ، با تأکید بر اینکه این سازوکار «کش» نیست و اقلام آن ممکن است هر لحظه حذف شوند، و استفاده از آن فقط با اندازهگیری و پروفایل توجیهپذیر است؛ و توضیح Jesús Espino در Devtrovert درباره Scanner در کامپایلر Go و نحوه تبدیل کد منبع به توکنها، که منشأ برخی خطاها و رفتار ابزارها را روشن میکند. جمعبندی: با TDD کیفیت و قابلیت نگهداری را بالا ببرید، sync.Pool را صرفاً وقتی به کار بگیرید که دادهها گلوگاه تخصیص را نشان میدهند، و با شناخت روند اسکن، ابزار بهتر و کد خواناتر بسازید.
#Go #Golang #TDD #syncPool #Refactoring #GoCompiler #Performance #Profiling
🟣لینک مقاله:
https://golangweekly.com/link/176903/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Red, Green, Refactor: Writing Perfect Go, with TDD
🟢 خلاصه مقاله:
** این مطلب سه دیدگاه مکمل برای بهبود کدنویسی در Go ارائه میکند: بهکارگیری چرخه Red–Green–Refactor در TDD برای ساخت پکیجهای کوچک و APIهای شفاف و ریفکتور امن با تکیه بر تستهای سریع؛ مرور کاربردی John Arundel از sync.Pool برای کاهش فشار تخصیص در مسیرهای داغ، با تأکید بر اینکه این سازوکار «کش» نیست و اقلام آن ممکن است هر لحظه حذف شوند، و استفاده از آن فقط با اندازهگیری و پروفایل توجیهپذیر است؛ و توضیح Jesús Espino در Devtrovert درباره Scanner در کامپایلر Go و نحوه تبدیل کد منبع به توکنها، که منشأ برخی خطاها و رفتار ابزارها را روشن میکند. جمعبندی: با TDD کیفیت و قابلیت نگهداری را بالا ببرید، sync.Pool را صرفاً وقتی به کار بگیرید که دادهها گلوگاه تخصیص را نشان میدهند، و با شناخت روند اسکن، ابزار بهتر و کد خواناتر بسازید.
#Go #Golang #TDD #syncPool #Refactoring #GoCompiler #Performance #Profiling
🟣لینک مقاله:
https://golangweekly.com/link/176903/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Bitfield Consulting
Red, green, refactor: writing perfect Go, with TDD — Bitfield Consulting
Make it work, then make it right: the “red, green, refactor” technique helps us craft Go code that’s correct and beautiful. It’s easy! Shall we play a game?
👍1
🔵 عنوان مقاله
Understanding the Go Compiler: The Scanner
🟢 خلاصه مقاله:
این مقاله، با معرفی نقش Scanner در Go Compiler، توضیح میدهد که چگونه متن خام به توکنهای دقیق و موقعیتدار تبدیل میشود تا مراحل بعدی مانند parser و type checker بتوانند روی آن کار کنند. تمرکز مقاله بر سادگی قواعد واژگانی Go، نبود preprocessor و سازوکار semicolon insertion است که باعث میشود کد خواناتر و ابزارها قابلاعتمادتر باشند.
نویسنده انواع توکنها را مرور میکند: شناسهها با پشتیبانی Unicode، اعداد صحیح و اعشاری و imaginary با امکان استفاده از underscore، رشتههای interpreted و raw، و rune literals. همچنین به نحوهی تشخیص و نادیدهگیری یا نگهداری کامنتها بر حسب نیاز ابزار اشاره میکند. بخشی هم به گزارش خطا و ادامهی اسکن در مواجهه با ورودیهای نامعتبر میپردازد و اهمیت go/token برای نگهداری دقیق موقعیتها را توضیح میدهد.
در پایان، با معرفی بستههای go/scanner و go/token، مسیر ساخت ابزارهایی مثل linter و formatter نشان داده میشود و تفاوت آنها با پیادهسازی داخلی کامپایلر بیان میگردد. نتیجه اینکه طراحی خطی و سادهی Scanner، سرعت ابزار Go و کیفیت پیامهای خطا و تحلیلهای ایستا را ممکن کرده است.
#Go #Golang #GoCompiler #Scanner #Lexer #Parsing #StaticAnalysis #ProgrammingLanguages
🟣لینک مقاله:
https://golangweekly.com/link/176905/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Understanding the Go Compiler: The Scanner
🟢 خلاصه مقاله:
این مقاله، با معرفی نقش Scanner در Go Compiler، توضیح میدهد که چگونه متن خام به توکنهای دقیق و موقعیتدار تبدیل میشود تا مراحل بعدی مانند parser و type checker بتوانند روی آن کار کنند. تمرکز مقاله بر سادگی قواعد واژگانی Go، نبود preprocessor و سازوکار semicolon insertion است که باعث میشود کد خواناتر و ابزارها قابلاعتمادتر باشند.
نویسنده انواع توکنها را مرور میکند: شناسهها با پشتیبانی Unicode، اعداد صحیح و اعشاری و imaginary با امکان استفاده از underscore، رشتههای interpreted و raw، و rune literals. همچنین به نحوهی تشخیص و نادیدهگیری یا نگهداری کامنتها بر حسب نیاز ابزار اشاره میکند. بخشی هم به گزارش خطا و ادامهی اسکن در مواجهه با ورودیهای نامعتبر میپردازد و اهمیت go/token برای نگهداری دقیق موقعیتها را توضیح میدهد.
در پایان، با معرفی بستههای go/scanner و go/token، مسیر ساخت ابزارهایی مثل linter و formatter نشان داده میشود و تفاوت آنها با پیادهسازی داخلی کامپایلر بیان میگردد. نتیجه اینکه طراحی خطی و سادهی Scanner، سرعت ابزار Go و کیفیت پیامهای خطا و تحلیلهای ایستا را ممکن کرده است.
#Go #Golang #GoCompiler #Scanner #Lexer #Parsing #StaticAnalysis #ProgrammingLanguages
🟣لینک مقاله:
https://golangweekly.com/link/176905/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Internals for interns
Understanding the Go compiler: The Scanner | Internals for interns
This is part of a series where I’ll walk you through the entire Go compiler, covering each phase from source code to executable. If you’ve ever wondered what happens when you run go build, you’re in the right place.
Note: This article is based on Go 1.25.3.…
Note: This article is based on Go 1.25.3.…
🔵 عنوان مقاله
goquery v1.11: jQuery-Like HTML/DOM Manipulation Methods
🟢 خلاصه مقاله:
goquery v1.11 کتابخانهای برای زبان Go است که شیوهای آشنا و شبیه به jQuery برای کار با HTML و CSS در سمت سرور ارائه میدهد. با استفاده از انتخابگرهای CSS، پیمایش DOM و زنجیرهکردن متدها، میتوانید بهسادگی عناصر را انتخاب کنید، متن و ویژگیها را بخوانید یا ویرایش کنید و بین والد، فرزند و همسایهها حرکت کنید. این رویکرد برای وباسکرپینگ، استخراج محتوا، بررسی خودکار کیفیت نشانهگذاری و تبدیلهای سمت سرور بسیار کاربردی است. طراحی API تا حد ممکن با الگوی ذهنی jQuery هماهنگ است و یادگیری آن برای توسعهدهندگانی که تجربه front-end دارند سریع خواهد بود. فهرست کامل توابع پشتیبانیشده و مثالها در مستندات رسمی ارائه شده است.
#goquery #Go #jQuery #HTML #CSS #WebScraping #DOM
🟣لینک مقاله:
https://golangweekly.com/link/177196/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
goquery v1.11: jQuery-Like HTML/DOM Manipulation Methods
🟢 خلاصه مقاله:
goquery v1.11 کتابخانهای برای زبان Go است که شیوهای آشنا و شبیه به jQuery برای کار با HTML و CSS در سمت سرور ارائه میدهد. با استفاده از انتخابگرهای CSS، پیمایش DOM و زنجیرهکردن متدها، میتوانید بهسادگی عناصر را انتخاب کنید، متن و ویژگیها را بخوانید یا ویرایش کنید و بین والد، فرزند و همسایهها حرکت کنید. این رویکرد برای وباسکرپینگ، استخراج محتوا، بررسی خودکار کیفیت نشانهگذاری و تبدیلهای سمت سرور بسیار کاربردی است. طراحی API تا حد ممکن با الگوی ذهنی jQuery هماهنگ است و یادگیری آن برای توسعهدهندگانی که تجربه front-end دارند سریع خواهد بود. فهرست کامل توابع پشتیبانیشده و مثالها در مستندات رسمی ارائه شده است.
#goquery #Go #jQuery #HTML #CSS #WebScraping #DOM
🟣لینک مقاله:
https://golangweekly.com/link/177196/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
🔵 عنوان مقاله
Scriggo: Template Engine and Go Embeddable Interpreter
🟢 خلاصه مقاله:
Scriggo یک موتور قالب و مفسر قابلجاسازی برای Go است که تجربهای مشابه ERB در Ruby/Rails را به اکوسیستم Go میآورد. با آن میتوانید منطق و عبارتهای Go را مستقیماً داخل قالبها قرار دهید و محتوای پویا بسازید.
ویژگی مهم Scriggo این است که قالبها بدون نیاز به کامپایل مجدد برنامه قابل تغییر و اعمال هستند؛ بنابراین چرخه آزمون و تغییر بسیار سریع میشود و میتوانید منطق ارائه و قوانین رندر را بهسرعت اصلاح کنید.
این ابزار بهصورت کتابخانه در برنامههای Go ادغام میشود و برای ساخت خروجیهای پویا مانند صفحات CMS، ایمیلها یا تولید محتوای مبتنی بر قالب مناسب است؛ ترکیبی از امکانات Go با تفسیر زماناجرا برای رسیدن سریعتر از ایده به خروجی.
#Go #Scriggo #TemplateEngine #Interpreter #ERB #RubyOnRails #Templating
🟣لینک مقاله:
https://golangweekly.com/link/177198/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Scriggo: Template Engine and Go Embeddable Interpreter
🟢 خلاصه مقاله:
Scriggo یک موتور قالب و مفسر قابلجاسازی برای Go است که تجربهای مشابه ERB در Ruby/Rails را به اکوسیستم Go میآورد. با آن میتوانید منطق و عبارتهای Go را مستقیماً داخل قالبها قرار دهید و محتوای پویا بسازید.
ویژگی مهم Scriggo این است که قالبها بدون نیاز به کامپایل مجدد برنامه قابل تغییر و اعمال هستند؛ بنابراین چرخه آزمون و تغییر بسیار سریع میشود و میتوانید منطق ارائه و قوانین رندر را بهسرعت اصلاح کنید.
این ابزار بهصورت کتابخانه در برنامههای Go ادغام میشود و برای ساخت خروجیهای پویا مانند صفحات CMS، ایمیلها یا تولید محتوای مبتنی بر قالب مناسب است؛ ترکیبی از امکانات Go با تفسیر زماناجرا برای رسیدن سریعتر از ایده به خروجی.
#Go #Scriggo #TemplateEngine #Interpreter #ERB #RubyOnRails #Templating
🟣لینک مقاله:
https://golangweekly.com/link/177198/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Scriggo
The Go language template engine and embeddable interpreter
Scriggo is the world’s most powerful template engine and Go embeddable interpreter
❤2
🔵 عنوان مقاله
Building Dolt on Windows: The 'Pacman' Game
🟢 خلاصه مقاله:
این مجموعه به سه موضوع کلیدی برای توسعهدهندگان میپردازد: ساخت Dolt روی Windows با تمثیل بازی «Pacman» برای شکار وابستگیها و رفع ناسازگاریهای سیستمعاملی؛ بررسی عملی Crush، عامل کدنویسی مبتنی بر TUI از Charm توسط Elian Deogracia-Brito که تجربهی کار یکپارچه در ترمینال را ارزیابی میکند؛ و راهنمای Graham Helton برای پروفایلینگ برنامههای Go با pprof و k6 روی نمونهای به نام Pears. پیام اصلی: ایجاد ساختهای پایدار روی Windows نیازمند مهار تفاوتهای پلتفرمی است، ابزارهای TUI مانند Crush میتوانند تمرکز و سرعت جریان کاری ترمینالمحور را بالا ببرند، و ترکیب pprof با k6 باید به عادت روزمرهی تیم برای اندازهگیری، تحلیل و بهینهسازی عملکرد تبدیل شود.
#Dolt #Windows #Pacman #Crush #Charm #TUI #Go #pprof #k6 #Profiling
🟣لینک مقاله:
https://golangweekly.com/link/177187/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Building Dolt on Windows: The 'Pacman' Game
🟢 خلاصه مقاله:
این مجموعه به سه موضوع کلیدی برای توسعهدهندگان میپردازد: ساخت Dolt روی Windows با تمثیل بازی «Pacman» برای شکار وابستگیها و رفع ناسازگاریهای سیستمعاملی؛ بررسی عملی Crush، عامل کدنویسی مبتنی بر TUI از Charm توسط Elian Deogracia-Brito که تجربهی کار یکپارچه در ترمینال را ارزیابی میکند؛ و راهنمای Graham Helton برای پروفایلینگ برنامههای Go با pprof و k6 روی نمونهای به نام Pears. پیام اصلی: ایجاد ساختهای پایدار روی Windows نیازمند مهار تفاوتهای پلتفرمی است، ابزارهای TUI مانند Crush میتوانند تمرکز و سرعت جریان کاری ترمینالمحور را بالا ببرند، و ترکیب pprof با k6 باید به عادت روزمرهی تیم برای اندازهگیری، تحلیل و بهینهسازی عملکرد تبدیل شود.
#Dolt #Windows #Pacman #Crush #Charm #TUI #Go #pprof #k6 #Profiling
🟣لینک مقاله:
https://golangweekly.com/link/177187/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Dolthub
Building Dolt on Windows: The Pacman Game
How we build Dolt from source on Windows using Git Bash, MSYS2, and pacman.
🔵 عنوان مقاله
Boxes and Glue v0.1.10
🟢 خلاصه مقاله:
کتابخانه Boxes and Glue v0.1.10 برای تولید PDF در محیط Go طراحی شده و با تکیه بر الگوریتمهای TeX و مدل box-and-glue، چیدمان دقیق متن، شکستن خط و فاصلهگذاری قابل پیشبینی را فراهم میکند. این ابزار امکان ترکیب صفحه و تولید PDF را بهصورت برنامهنویسیشده داخل اکوسیستم Go میدهد و برای ساخت گزارشها، فاکتورها و مستندات فنی با خروجی پایدار و قابل بازتولید مناسب است. نسخه v0.1.10 نشان میدهد پروژه در حال رشد است، اما همین حالا نیز برای تولید خروجی با کیفیت بالا قابل استفاده بوده و با هدف آوردن اصول محکم حروفچینی TeX به جریان کاری سبک و کارای Go توسعه مییابد.
#Go #PDF #TeX #Typesetting #GoLang #DocumentRendering #LayoutEngine #DevTools
🟣لینک مقاله:
https://golangweekly.com/link/177203/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Boxes and Glue v0.1.10
🟢 خلاصه مقاله:
کتابخانه Boxes and Glue v0.1.10 برای تولید PDF در محیط Go طراحی شده و با تکیه بر الگوریتمهای TeX و مدل box-and-glue، چیدمان دقیق متن، شکستن خط و فاصلهگذاری قابل پیشبینی را فراهم میکند. این ابزار امکان ترکیب صفحه و تولید PDF را بهصورت برنامهنویسیشده داخل اکوسیستم Go میدهد و برای ساخت گزارشها، فاکتورها و مستندات فنی با خروجی پایدار و قابل بازتولید مناسب است. نسخه v0.1.10 نشان میدهد پروژه در حال رشد است، اما همین حالا نیز برای تولید خروجی با کیفیت بالا قابل استفاده بوده و با هدف آوردن اصول محکم حروفچینی TeX به جریان کاری سبک و کارای Go توسعه مییابد.
#Go #PDF #TeX #Typesetting #GoLang #DocumentRendering #LayoutEngine #DevTools
🟣لینک مقاله:
https://golangweekly.com/link/177203/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - boxesandglue/boxesandglue: PDF rendering library for Go using TeX algorithms.
PDF rendering library for Go using TeX algorithms. - boxesandglue/boxesandglue
❤3
🔵 عنوان مقاله
Wave Terminal: 'AI-Native' Open Source Go-Powered Terminal App
🟢 خلاصه مقاله:
ا**Wave Terminal یک ترمینال Open Source با رویکرد AI-Native است که روی MacOS، Linux و Windows اجرا میشود. این ابزار با ارائه قابلیتهایی مانند پیشنمایش فایل، ویرایش درجا، مرور پوشهها و کار با فایلها و ماشینهای راهدور، تجربهی خط فرمان را یکپارچهتر میکند. هستهی هوشمند آن برای پیشنهاد دستورها، توضیح خطاها و سادهسازی گردشکار طراحی شده است. نوشتهشدن با Go نیز مزیتی برای کارایی، قابلحملبودن و توسعهپذیری بهشمار میآید.
#AI #OpenSource #Go #Terminal #CLI #DeveloperTools #CrossPlatform #DevOps
🟣لینک مقاله:
https://golangweekly.com/link/177190/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Wave Terminal: 'AI-Native' Open Source Go-Powered Terminal App
🟢 خلاصه مقاله:
ا**Wave Terminal یک ترمینال Open Source با رویکرد AI-Native است که روی MacOS، Linux و Windows اجرا میشود. این ابزار با ارائه قابلیتهایی مانند پیشنمایش فایل، ویرایش درجا، مرور پوشهها و کار با فایلها و ماشینهای راهدور، تجربهی خط فرمان را یکپارچهتر میکند. هستهی هوشمند آن برای پیشنهاد دستورها، توضیح خطاها و سادهسازی گردشکار طراحی شده است. نوشتهشدن با Go نیز مزیتی برای کارایی، قابلحملبودن و توسعهپذیری بهشمار میآید.
#AI #OpenSource #Go #Terminal #CLI #DeveloperTools #CrossPlatform #DevOps
🟣لینک مقاله:
https://golangweekly.com/link/177190/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
www.waveterm.dev
Wave Terminal — Upgrade Your Command Line
Stop Context Switching by Bringing Context Into Your Terminal. Wave is an open-source terminal with superpowers, integrating file previews, file editing, AI, web browsing, and workspace organization. Available for MacOS, Linux, and Windows.
❤1👍1
🔵 عنوان مقاله
Go Turns Sixteen Years Old
🟢 خلاصه مقاله:
Go شانزدهسالگی خود را جشن میگیرد؛ شانزده سال از متنباز شدن آن میگذرد و این نقطه عطف فرصتی است برای مرور پیشرفتها و نگاه به آینده. در یک «گزارش کوتاه از وضعیت Go»، Austin به بهبودهای مستمر در هسته زبان و کتابخانه استاندارد اشاره میکند؛ تغییراتی که با حفظ سادگی و پایداری، قابلیتها را دقیقاً در جاهای مهم ارتقا میدهند.
همزمان، تمرکز پررنگی روی بهبود DX دیده میشود: ابزارها و جریانهای کاری روانتر شدهاند و تجربه توسعه روزمره سریعتر و ثمربخشتر پیش میرود. علاوه بر این، تغییرات مرتبط با MCP نیز در راهاند که امکان یکپارچهسازی بهتر ابزارها و فرآیندها را مطابق نیازهای تیمهای مدرن فراهم میکنند.
برآیند این روندها آیندهای امیدوارکننده برای Gophers رقم میزند: تجربهای صیقلخوردهتر و یکپارچهتر که سرعت عمل را بالا میبرد، بدون آنکه دقت، کارایی یا سادگی قربانی شود.
#Go #Golang #OpenSource #DeveloperExperience #DX #MCP #Gophers
🟣لینک مقاله:
https://golangweekly.com/link/177179/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Go Turns Sixteen Years Old
🟢 خلاصه مقاله:
Go شانزدهسالگی خود را جشن میگیرد؛ شانزده سال از متنباز شدن آن میگذرد و این نقطه عطف فرصتی است برای مرور پیشرفتها و نگاه به آینده. در یک «گزارش کوتاه از وضعیت Go»، Austin به بهبودهای مستمر در هسته زبان و کتابخانه استاندارد اشاره میکند؛ تغییراتی که با حفظ سادگی و پایداری، قابلیتها را دقیقاً در جاهای مهم ارتقا میدهند.
همزمان، تمرکز پررنگی روی بهبود DX دیده میشود: ابزارها و جریانهای کاری روانتر شدهاند و تجربه توسعه روزمره سریعتر و ثمربخشتر پیش میرود. علاوه بر این، تغییرات مرتبط با MCP نیز در راهاند که امکان یکپارچهسازی بهتر ابزارها و فرآیندها را مطابق نیازهای تیمهای مدرن فراهم میکنند.
برآیند این روندها آیندهای امیدوارکننده برای Gophers رقم میزند: تجربهای صیقلخوردهتر و یکپارچهتر که سرعت عمل را بالا میبرد، بدون آنکه دقت، کارایی یا سادگی قربانی شود.
#Go #Golang #OpenSource #DeveloperExperience #DX #MCP #Gophers
🟣لینک مقاله:
https://golangweekly.com/link/177179/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
go.dev
Go’s Sweet 16 - The Go Programming Language
Happy Birthday, Go!
❤4