Golang Insights – Telegram
Golang Insights
761 subscribers
116 photos
7 videos
47 files
132 links
Stay ahead in Golang development with Golang Insights, your go-to for the latest news, tips, tricks, and code examples tailored for Golang enthusiasts and professionals.

Group: https://news.1rj.ru/str/GolangEngineers
Download Telegram
#tips #go

همیشه سعی کنید به جای اینکه بیاید کانال received-only را مستقیما به بیرون پاس دهید از proxy-channel استفاده کنید اینطوری یک فرآیند کاملا امن خواهید داشت.

// UnsafeGetChannel provides direct read access to the underlying channel.
// WARNING: Bypasses all pipeline safeguards.
//
// Returns:
// - The underlying receive channel
func (p *pipeline[T]) UnsafeGetChannel() <-chan T {
return p.ch
}


در زیر یک نمونه proxy-channel گذاشتم که خیلی بهتر از حالت قبل است.

func (p *pipeline[T]) Receive(ctx context.Context) <-chan T {
out := make(chan T)
go func() {
defer close(out)
for {
select {
case <-ctx.Done():
return
case item, ok := <-p.ch:
if !ok {
return
}
out <- item
}
}
}()
return out
}



⚡️@GoInsights | @GolangEngineers
👍4
ابزار آنلاین Dynamic captcha loader

با کمک این ابزار می توانید تست های integration وریفای چلنچ captcha را سمت سرور انجام دهید.

در حال حاضر google, cloudflare و hcaptcha را پشتیبانی می کند.


https://captcha.javad.dev/


⚡️@GoInsights | @GolangEngineers
🔥1
بالاخره نسخه دوم json برای گو پیاده سازی شد.

در issue شماره 71497 در مخزن Golang مربوط به معرفی نسخه جدیدی از بسته encoding/json با نام encoding/json/v2 و همچنین بسته جدید encoding/json/jsontext است. هدف این پروپوزال بهبود عملکرد، افزایش قابلیت‌های سفارشی‌سازی و رفع محدودیت‌های نسخه فعلی است.

در نسخه جدید، بسته jsontext امکاناتی برای پردازش نحوی JSON بدون استفاده از بازتاب (reflection) فراهم می‌کند، که مناسب برای کاربردهای سطح پایین و بهینه‌سازی‌های خاص است. بسته json/v2 نیز قابلیت‌های معنایی مانند marshal و unmarshal را با انعطاف‌پذیری بیشتر ارائه می‌دهد. این نسخه جدید به صورت آزمایشی و با فعال‌سازی متغیر محیطی GOEXPERIMENT=jsonv2 در دسترس قرار می‌گیرد.

- https://github.com/golang/go/issues/71497

- https://github.com/golang/go/tree/master/src/encoding/json/v2


⚡️@GoInsights | @GolangEngineers
👍241
Please open Telegram to view this post
VIEW IN TELEGRAM
🎆 Go 1.24.4 and 1.23.10 are released!

🔐 Security: Includes security fixes for CVE-2025-4673, CVE-2025-0913, and CVE-2025-22874 in net/http, os, and crypto/x509.
g
📰 Announcement: https://groups.google.com/g/golang-announce/c/ufZ8WpEsA3A/m/XDxq7uidAgAJ

📦 Download: go.dev/dl/#go1.24.4


⚡️@GoInsights | @GolangEngineers
👍2
Go 1.25 Release Candidate 1 is released!

🏖 Run it in dev! Run it in prod! File bugs! go.dev/issue/new

📡 Relaese note:
https://tip.golang.org/doc/go1.25

📦 Download: go.dev/dl/#go1.25rc1


⚡️@GoInsights | @GolangEngineers
🔥2🆒21
تغییرات عملکردی نسخه Go1.25

در نسخه ۱.۲۵ گولنگ تغییرات و بهبود های عملکردی در GC و نسخه دوم json داریم که در پست بلاگم میتوانید دنبال کنید.

https://bitstack.substack.com/p/go-125-upcoming-changes-faster-smarter


⚡️@GoInsights | @GolangEngineers
صفحه‌ی بلاگ و خبرنامه‌ی شخصی من با محوریت مطالب فنی و آموزشی

اگر علاقه‌مند بودید، خوشحال می‌شم به این صفحات بپیوندید تا از آخرین نوشته‌ها و مطالب من باخبر باشید:

بلاگ: https://bitstack.substack.com/

خبرنامه‌ی لینکدین: https://www.linkedin.com/newsletters/bitstack-7343373715612561409/


⚡️@GoInsights | @GolangEngineers
1
🚀 افزایش سرعت بوت توزیع های لینوکس

یکی از مشکلاتی که پس مدت ها در سرعت بوت لینوکس پیش می آید سرویس های غیر ضروری systemd ای که هنگام بوت اجرا می شود هست که در این پست بلاگم سعی کردم یک روش امن را معرفی کنم که سرعت بوت را بهبود دهید.

https://open.substack.com/pub/bitstack/p/speed-up-your-linux-startup-delay



⚡️@GoInsights | @GolangEngineers
👍2🆒1
Golang Insights pinned « صفحه‌ی بلاگ و خبرنامه‌ی شخصی من با محوریت مطالب فنی و آموزشی اگر علاقه‌مند بودید، خوشحال می‌شم به این صفحات بپیوندید تا از آخرین نوشته‌ها و مطالب من باخبر باشید: بلاگ: https://bitstack.substack.com/ خبرنامه‌ی لینکدین: https://www.linkedin.com/newsletters/bitstack…»
Forwarded from عکس نگار
⁉️ بررسی نحوه ذخیره شدن slice در حافظه stack و شرایط

در مطلبی به تغییرات نسخه 1.25 انتشار کردم یکی از ویژگی هایی که اضافه شده "Improved Stack Allocation for Slices" است. که این امکان را می دهد براساس یک threshold مشخصی slice شما در حافظه stack به عنوان یک آرایه ذخیره شود.

در تصویر بخشی است که اینکار را انجام می دهد:

1. در ابتدا مقدار threshold شما را میگیرد که پیش فرض تا 32 هست و امکان تغییر با استفاده از فلگ -gcflags=all=-d=variablemakehash=n امکان غیرفعال کردن دارد.

2. در بخش دوم که تصویر اشاره کردم maxStackSize را تقسیم بر t.Elem().Size() یا تعداد المنت slice می کنیم و یک اندازه مشخص برا ی ذخیره کردن در stack مشخص می شود و بصورت آرایه نگه میداریم.

3. در مورد سوم تعداد المنتی که داخل stack میرود یا داخل heap مانند مثال زیر است:

maxStackSize / t.Elem().Size() = total element stored in stack

- 32 / >= 32 = 0 (all store to heap)
- 32 / 13 = 2 (2 element first store into stack other store into heap)
- 32 / 5 = 6 (all element store into stack)


طبق مثال فوق هرچی تعداد المنت به threshold نزدیک شود تعداد المنتی کمتری داخل stack نگه داری می شود و الباقی داخل heap می رود.


⚡️@GoInsights | @GolangEngineers
🔥81
🚀 بررسی عمیق Stack-Allocated Slices

در پست قبلی خیلی خلاصه این تغییر را بررسی کردیم اما در صفحه بلاگم سعی کردم خیلی عمیق این تغییر را بررسی کنم و نکاتی باعث این بهبود شده را توضیح دهم.

https://bitstack.substack.com/p/go-125-compiler-update-stronger-alignment

در صورتیکه از این مطلب لذت بردین در صفحه بلاگم با زدن subscribe از آخرین پست هایم بواسطه ایمیل با خبر شوید.

https://bitstack.substack.com/

اگر مایل بودین می توانید در خبرنامه لینکدین هم مشترک شوید در آنجا هم پست هایم را اشتراک میزارم:

https://www.linkedin.com/newsletters/bitstack-7343373715612561409/


⚡️@GoInsights | @GolangEngineers
👍42
🚀 سرویس Leapcell زیر ساخت رایگان

با استفاده از سرویس می توانید پروژه های متن باز خود را بصورت رایگان روی زیرساخت Leapcell اجرا کنید و برروی یک دامنه خاص یا رایگان بالا بیارید.

https://leapcell.io/

به عنوان مثال:

- https://github.com/Ja7ad/otp
- https://otp-api.leapcell.app/docs


⚡️@GoInsights | @GolangEngineers
👍31
Forwarded from اَلِف.حِ.پِ 🍋 (امیرحسین پناهےفر)
برای اینکه راحت‌تر بتونید نسخه آفلاین کتاب آموزش زبان Go به فارسی رو داشته باشید، بسته رو توی AUR گذاشتم.
این بسته یه نسخه وب آفلاین از کتاب «Go فارسی»ئه که می‌تونید بدون نیاز به اینترنت بخونیدش.

برای نصب با yay (یا هر AUR helper دیگه):
yay -S gofarsi-bin

- زبان گو فارسی
@alefhepe
10
🎉 Go 1.25 Release Candidate 2 is released!

🏃‍♂️ Run it in dev! Run it in prod! File bugs! go.dev/issue/new

📡 Changes logs: https://bitstack.substack.com/p/go-125-upcoming-changes-faster-smarter

⬇️ Download: go.dev/dl/#go1.25rc2


⚡️@GoInsights | @GolangEngineers
👍1
🧬 فصل ششم ژنریک (Generics)

پس از سه ماه در کنار کارهایم بخش ششم ژنریک ها را کامل کردم این بخش یکی از جذاب ترین بخش ها بود که سعی کردم خیلی عمیق بپردازم و الان آماده اس برای مطالعه. امیدوارم این مطلب برایتان مفید واقع شود.

https://book.gofarsi.ir/chapter-6/

درصورتیکه کتاب را میخواهید بصورت آفلاین استفاده کنید می توانید آخرین نسخه desktop را دانلود را با اجرای نسخه قبلی به نسخه جدید آپدیت نمایید.

https://github.com/GoFarsi/book/releases

در ضمن مشارکت در کتاب آزاد است و جای تجربیات شما خالی است اگر مایل بودین می توانید تجربیات خود را در کتاب به اشتراک بزارید.

https://github.com/GoFarsi/book/blob/main/COUNTRIBUTING.md

⚡️@GoInsights | @GolangEngineers
🔥83
🚀 مشارکت در توسعه sdk پروژه meilisearch

میلی سرچ یک موتور جستجوی متن‌باز و سریع است که با پشتیبانی از جستجوی بلادرنگ، زبان‌های مختلف و API ساده، تجربه‌ای روان برای کاربران فراهم می‌کند. این موتور با افزودن قابلیت‌های هوش مصنوعی مانند جستجوی برداری و تعامل با مدل‌های زبانی بزرگ (LLMs)، امکان جستجوی معنایی و مکالمه‌ای را نیز فراهم کرده و گزینه‌ای مناسب برای پروژه‌های مدرن محسوب می‌شود.

من به عنوان Maintainer بخش sdk زبان گولنگ پروژه از دوستانی که مایل هستند مشارکت در پروژه آزاد را تجربه کنند دعوت میکنم از این فرصت برای بهبود sdk و تجربه پیاده سازی sdk استفاده کنید.

🏘 https://www.meilisearch.com/
https://github.com/meilisearch/meilisearch-go


⚡️@GoInsights | @GolangEngineers
7
🎉 امروز خوشحال شدم که دیدم یکی از مطالبی که نوشته بودم در پول ریکوئست Homebrew رفرنس شده!

https://github.com/Homebrew/homebrew-core/pull/226636

در این PR، نسخه‌ی جدید Go 1.25 اضافه شده، و در توضیحاتش به مقاله‌ای از من درباره‌ی ویژگی‌های جدید و بهبودهای نسخه‌ی 1.25 اشاره شده بود.

📝 مقاله‌ی من در بلاگم: https://open.substack.com/pub/bitstack/p/go-125-upcoming-changes-faster-smarter

این برای من یک نشونه‌ی کوچیک ولی دلگرم‌کننده‌ بود که نشون میده تولید محتوای تخصصی می‌تونه واقعاً اثرگذار باشه—even در پروژه‌های بزرگی مثل Homebrew.

از همه‌ی کسانی که منو دنبال می‌کنن و به اشتراک‌گذاری دانش اهمیت می‌دن، ممنونم. ❤️


⚡️@GoInsights | @GolangEngineers
👍17🆒52🔥2
📚 بخش الگوهای همزمانی کتاب مجدد بازنویسی شد!!

در این بخش یکسری ایرادات و کم کاستی وجود داشت که کاملا حل شدش و به همراه توضیحات کامل و مثال های اصولی 🎉 منتشر شد.


- سایت: https://book.gofarsi.ir/chapter-9/concurrency-patterns/

- دانلود نسخه دسکتاپ: https://github.com/GoFarsi/book/releases/latest

- نسخه ایمیج داکر: https://github.com/orgs/GoFarsi/packages/container/package/book


⚡️@GoInsights | @GolangEngineers
🔥9
Forwarded from Go Casts 🚀
یادگیری هیجان انگیز + بهبود کیفیت کد با CodeRabbit
واقعاً شگفت‌زده شدم! 🤯

انگار که یه مهندس ارشد نرم افزار در کنارته و کدت رو review میکنه!

این ابزار نه‌تنها کیفیت code reviewها رو در Pull Requestها بالا می‌بره، بلکه به شکل فوق‌العاده‌ای توی یادگیری عملی برنامه‌نویسی میتونه به شما کمک کنه.

خوبی ش اینه برای پروژه های open-source رایگانه و میتونید از همین الان حالش رو ببرید. 🎁


شما می‌تونید برای خودتون پروژه‌هایی با هدف یادگیری تعریف کنید، و CodeRabbit مثل یه منتور حرفه‌ای PRهاتون رو از جنبه‌های مختلف مثل:
رعایت best practice
بهبود performance
ساختار معماری کد
بهینه‌سازی queryهای دیتابیس
ریویو می‌کنه و نکات دقیقی بهتون می‌ده. 🎯


مثلا من یه پروژه Elixir رو بهش دادم و ازش خواستم که review کنه و خروجی یه جاهایی واقعا میخکوبم کرد.
یکی قسمت Critical Issueها و ارزیابی پروژه از نظر best practices و performance بود که خیلی آموزنده ست. (کد شما رو با کد بهتر مقایسه میکنه).
https://github.com/landofbeam/dns_rabbit/pull/1#issuecomment-3130715195

یکی هم قسمت Sequence Diagram(s) بود که خودش flow درخواست هارو طراحی کرد.
https://github.com/landofbeam/dns_rabbit/pull/1#issuecomment-3124812290


کلا با CodeRabbit میشه به یه سطح دیگه ای از linting هم رسید. تا حالا ابزارهای linting زیادی دیدیم که syntax و style رو بررسی می‌کنن. اما واقعاً چند تا ابزار سراغ داریم که منطق کد، ساختار معماری، performance یا best practiceها رو بررسی کنن؟
این چیزیه که با CodeRabbit میشه تجربه ش کرد.


@gocasts
👍42