Golang Insights – Telegram
Golang Insights
753 subscribers
116 photos
7 videos
47 files
131 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
تغییرات عملکردی نسخه 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
🎉 انتشار نسخه جدید Meilisearch Go SDK (v0.33.0)

میلی سرچ یک موتور جستجوی متن‌باز، بسیار سریع و سبک است که برای ارائه نتایج جستجوی آنی (instant search) با تجربه‌ای شبیه به موتورهای بزرگ مانند گوگل طراحی شده است. این موتور به‌صورت API محور ساخته شده و به‌راحتی با زبان‌های برنامه‌نویسی مختلف مانند JavaScript، Go، Python و دیگر زبان‌ها یکپارچه می‌شود. Meilisearch با پشتیبانی از امکاناتی نظیر جستجوی فازی (fuzzy search)، فیلترگذاری، مرتب‌سازی، faceting و پشتیبانی از چند زبان، انتخابی عالی برای اپلیکیشن‌های مدرن، فروشگاه‌های آنلاین، بلاگ‌ها و پنل‌های مدیریتی است که نیاز به جستجوی سریع و کاربرپسند دارند. همچنین نصب و راه‌اندازی آن بسیار ساده بوده و حتی در پروژه‌های کوچک نیز به‌خوبی قابل استفاده است.

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

🔍 میلی سرچ: https://meilisearch.com/

🚀 جزئیات بیشتر: https://github.com/meilisearch/meilisearch-go/releases/tag/v0.33.0


⚡️@GoInsights | @GolangEngineers
1🔥11👍1
📚فصل هفتم کتاب زبان گو فارسی بزودی

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

7.1 مقدمه‌ای بر تست در Go
7.2 تست واحد (Unit Test)
7.3 تست جدول‌محور (Table-Driven Test)
7.4 تست یکپارچه (Integration Test)
7.5 تست انتها به انتها (End-to-End Test - E2E)
7.6 تست عملکرد (Benchmark)
7.7 تست فازی (Fuzz Testing)
7.8 ماک و شبیه‌سازی وابستگی‌ها (Mock)
7.9 استفاده از testify
7.10 استفاده از ginkgo
7.11 تست‌های همزمانی (Concurrent Testing)
7.12 سنجش پوشش تست (Code Coverage)
7.13 تست Suite و ساختاردهی تست‌ها
7.14 تست‌نویسی حرفه‌ای در پروژه‌

🚀 https://book.gofarsi.ir/


⚡️@GoInsights | @GolangEngineers
17🔥4👍3
🚀 قابلیت اجرا کد داخل کتاب

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

https://book.gofarsi.ir/chapter-1/go-variables-and-consts/

در ضمن اگر مایل بودین از سرویس playground می توانید هرجا استفاده کنید.

https://github.com/GoFarsi/book/blob/main/static/js/playground.js


⚡️@GoInsights | @GolangEngineers
16👍2🆒1
🚀 آموزش صفر تا صد پکیج io در کتاب

پکیج io در زبان Go یکی از ابزارهای پایه و همه‌فن‌حریف برای کار با عملیات Input/Output است. فلسفه‌اش اینه که ما بدون وابستگی به نوع خاص داده (مثل فایل، شبکه یا حافظه) بتونیم از یک Interface ساده استفاده کنیم. این یعنی اگر یک شیء فقط متد مورد نیاز رو پیاده‌سازی کنه، می‌تونه در تمام جاهایی که اون رابط انتظار میره استفاده بشه. مثلا io.Reader فقط یک متد Read داره و io.Writer یک متد Write، ولی همین دو قرارداد ساده پایه تمام سیستم I/O Abstraction در Go رو تشکیل میدن.

https://book.gofarsi.ir/chapter-4/go-io-package/


⚡️@GoInsights | @GolangEngineers
7👍7
#استخدام #مشهد

یک شرکت فعال در حوزه نرم‌افزار به دنبال جذب برنامه‌نویس متعهد و تمام‌وقت (حضوری) در مشهد است.

شرایط و مهارت‌های مورد نیاز:

- تسلط کامل به زبان Golang
- آشنایی با زبان Python
- تجربه عملی و کامل در کار با سرویس‌های AWS شامل کانفیگ، راه‌اندازی سرویس‌ها و مقیاس‌دهی (Scaling)
- تسلط به Docker و مفاهیم کانتینرسازی


مزایا:

- محیط کاری حرفه‌ای و پویا
- پروژه‌های چالش‌برانگیز و فرصت رشد
- همکاری با تیمی متخصص و صمیمی


در صورت دارا بودن شرایط فوق، لطفاً رزومه خود را به آیدی زیر ارسال کنید:

@ja7adr


⚡️@GoInsights | @GolangEngineers
2