Golang Insights – Telegram
Golang Insights
760 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
Mastering Idempotency_ Building Reliable APIs.pdf
3 MB
Mastering Idempotency_ Building Reliable APIs

#bytebytego #tips #pro_guide

☄️ @GoInsights | @GolangEngineers
Please open Telegram to view this post
VIEW IN TELEGRAM
دوستان گولنگی عزیز ماه قبل من سعی میکردم با اسپانسری GoBridge دورهمی هفتگی برگزار کنم متأسفانه فرصت نشد ادامه بدم ولی خیلی دوست دارم مجدد شروع کنیم ولی متاسفانه خیلی درگیر کارام شدم.

ولی می تونم با کمک GoBridge فضای وبینار و میتینگ تا ۱۰۰۰ نفر با امکان ضبط فراهم کنم اگر کسی مایل بود.

برای دیدن دورهمی های قدیمی داخل گروه کلمه دورهمی جستجو کنید.

برای برگزاری میتوانید با من در ارتباط باشید.

@ja7adr


☄️ @GoInsights | @GolangEngineers
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Non_Functional_Requirements_The_Backbone_of_Great_Software_Part.pdf
2.9 MB
Non-Functional Requirements_ The Backbone of Great Software - Part 1

#bytebytego #tips #pro_guide

☄️ @GoInsights | @GolangEngineers
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
Faster Go maps with Swiss Tables

Michael Pratt
26 February 2025


The hash table is a central data structure in computer science, and it provides the implementation for the map type in many languages, including Go.

https://go.dev/blog/swisstable


☄️ @GoInsights | @GolangEngineers
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
علاقه مندان بازی Command & Conquer Generals دو روز پیش شرکت electronic arts سورس کد این بازی را بصورت کامل در گیتهاب منتشر کرده.

https://github.com/electronicarts/CnC_Generals_Zero_Hour


☄️ @GoInsights | @GolangEngineers
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
⚡️ اصول کامنت‌نویسی در زبان گو - بخش اول: Deprecated

یکی از اصول مهم در کامنت‌نویسی زبان Go ، استفاده از Deprecated است. این کامنت به شما کمک می‌کند که به‌صورت تدریجی بخشی از کد را منقضی کرده، حذف کنید، یا جایگزین مناسبی برای آن پیشنهاد دهید.

🔹 نحوه استفاده از کامنت Deprecated

در گولنگ، اگر بخواهید یک تابع، متد، یا یک نوع داده را Deprecated کنید، باید آن را در کامنت سند‌نویسی (doc comment) قبل از تعریف عضو موردنظر قرار دهید. گولنگ ابزار خاصی برای مدیریت موارد منقضی‌شده ندارد، اما IDEها و ابزارهایی مانند golangci-lint می‌توانند این موارد را شناسایی کرده و به کاربر هشدار دهند.

// Deprecated: از تابع NewMethod به جای این استفاده کنید.
// این تابع در نسخه‌های آینده حذف خواهد شد.
func OldMethod() {
fmt.Println("This method is deprecated")
}

// تابع جدید جایگزین
func NewMethod() {
fmt.Println("This is the new method")
}

🔹 تاثیر کامنت Deprecated در IDEها و ابزارهای آنالیز کد

اکثر محیط‌های توسعه (IDEها) مانند GoLand یا VS Code هنگام استفاده از یک تابع Deprecated ، هشدار نمایش می‌دهند تا توسعه‌دهندگان از جایگزین مناسب استفاده کنند. همچنین ابزارهای Linter مانند golangci-lint می‌توانند به‌طور خودکار این توابع را شناسایی کرده و پیشنهاد جایگزین ارائه دهند.

🔹 بهترین شیوه‌های استفاده از Deprecated در گولنگ

همیشه جایگزین مشخص کنید: اگر قصد دارید یک بخش از کد را منسوخ کنید، حتماً جایگزین آن را در توضیحات ذکر کنید.
هشدارهای لازم را در اسناد پروژه ارائه دهید: مستندات API باید نشان دهد که کدام بخش از کد Deprecated شده است.
حذف تدریجی توابع قدیمی: ابتدا با Deprecated کردن یک تابع شروع کنید و پس از چند نسخه، آن را از کد حذف کنید.

🔹 نتیجه‌گیری


استفاده از کامنت Deprecated در Go به توسعه‌دهندگان کمک می‌کند تا تغییرات را مدیریت کرده و به‌صورت تدریجی بخش‌های قدیمی را حذف کنند. این روش نه‌تنها باعث خوانایی بهتر کد می‌شود، بلکه از بروز مشکلات ناگهانی در پروژه‌های در حال توسعه جلوگیری می‌کند.


☄️ @GoInsights | @GolangEngineers
Please open Telegram to view this post
VIEW IN TELEGRAM
👍96🔥2
Go 1.24.1 and 1.23.7 are released!

🔐 Security: Includes a security fix for net/http (CVE-2025-22870)

🗣 Announcement: https://groups.google.com/g/golang-announce/c/4t3lzH3I0eI/m/b42ImqrBAQAJ

🗃 Download: go.dev/dl/#go1.24.1


☄️ @GoInsights | @GolangEngineers
Please open Telegram to view this post
VIEW IN TELEGRAM
14
می‌توانید Redis را بدون ذخیره‌سازی داده‌ها روی دیسک اجرا کنید.

این کار سریع‌تر است، اما به این معنی است که هیچ پشتیبان (Backup) از داده‌های خود نخواهید داشت.

اگر تصمیم بگیرید داده‌های خود را ذخیره کنید، Redis دو روش اصلی ارائه می‌دهد: RDB و AOF.

کدام یک را باید پیشنهاد کنید؟ و دليل؟


☄️ @GoInsights | @GolangEngineers
Please open Telegram to view this post
VIEW IN TELEGRAM
Go 1.24: Unlocking the Power of Generic Type Aliases

Learn how Go 1.24 introduces generic type aliases to simplify code, improve reusability, and enhance maintainability.

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

https://bitstack.substack.com/


https://bitstack.substack.com/p/generic-type-aliases-go-124


☄️ @GoInsights | @GolangEngineers
Please open Telegram to view this post
VIEW IN TELEGRAM
عزیز جان

۱. لطفا over engineering نکنید.
۲. خواهشا over engineering نکنید.

برای امروز بسازید، برای فردا طراحی کنید.


☄️ @GoInsights | @GolangEngineers
Please open Telegram to view this post
VIEW IN TELEGRAM
14
دوستان این سلطان را اکثرا میشناسیم، تازگیا امتحانش کردن با شرایط فعلی اینترنت ایران مثل مرد کار میکنه.


☄️ @GoInsights | @GolangEngineers
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31
🚀 فلوئورا (Fluora) - جعبه‌ابزار پیشرفته هوش مصنوعی

فلوئورا یک جعبه‌ابزار توسعه‌یافته با زبان Go است که امکان ساخت و راه‌اندازی ابزارهای قدرتمند هوش مصنوعی را با استفاده از دستورالعمل‌های ساختاریافته فراهم می‌کند. این پلتفرم با پشتیبانی از مدل‌های پیشرفته‌ی هوش مصنوعی و یکپارچگی آسان، به توسعه‌دهندگان این امکان را می‌دهد که بدون نیاز به پیچیدگی‌های فنی، مدل‌های زبانی را در پروژه‌های خود ادغام کنند.

ویژگی ها:
- ادغام آسان با Gemini و مدل‌های دیگر
- امکان اضافه کردن سایر ارائه‌دهندگان هوش مصنوعی
- قابلیت سفارشی‌سازی درخواست‌ها و پاسخ‌ها
- ابزارهای هوشمند پردازش متن
- امکان پیاده سازی instruction های مختلف جهت توسعه

دانلود: https://fluora.javad.dev/
دمو: https://asciinema.org/a/707466
پروژه: https://github.com/Ja7ad/fluora

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


☄️ @GoInsights | @GolangEngineers
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Forwarded from جادی | Jadi
یک ماینر مستقل با ۳.۳ تراهش یکی از بلاک‌های بیت‌کوین رو ماین کرد

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

اما این وسط هم هستن آدم هایی که با تکیه بر شانس، تنهایی دستگاهشون رو به برق می زنن به امید اینکه اگر یکهو شانس یک در فلان هزار و میلیونشون بزنه و یه بلاک ماین کنن،‌ چقدر باحال می‌شه. البته این آدم‌ها هم در نهایت به یه استخر وصلن ولی استخر ماینرهای منفرد و ناشناس.

و حالا یکیشون برنده شده. یه سولو ماینر با شش دستگاه اوپن سورس بیتاکس تونسته بلاکی رو ماین کنه و حداقل ۳.۱۵ بیتکوین برابر ۲۵۰ هزار دلار به دست بیاره (: قدرت ماین این شش دستگاه روی هم حدود ۳.۳ تراهش و بسیار کمتر از دستگاه‌های کاملا معمولی است. قیمت این دستگاه حدود ۲۰۰ دلاره.

احتمالا خوشحالترین آدم در این ماجرا خودشه و بعدش فروشنده دستگاه‌های خونگی که روی هیجان خبر و فروش دستگاه‌های بیشتر حساب باز کردن(:
https://jadi.net/2025/03/solo-miner/
#خبر
👍4😁2
🚀 پروژه Proxier ابزاری برای پروکسی کردن درخواست های سرویس third party سمت کلاینت

گاها داخل پروژه هامون سرویس های third party سمت کلاینت استفاده میکنیم که ممکن است برخی سرویس ها برای کلاینت تحریم یا در دسترس نباشد.

در اینجا شما با کمک Proxier می توانید یکسری route ها پروکسی داخل سرور تعریف کنید که کلاینت بدون هیچ مشکلی از سرور origin شما مستقیما درخواست بزند.

https://github.com/ezex-io/proxier


⚡️@GoInsights | @GolangEngineers
👍2👏1
🚀 لینوکس کرنل 6.14 منتشر شد

لینوس توروالدز در تاریخ ۲۴ مارس ۲۰۲۵ نسخهٔ ۶.۱۴ کرنل لینوکس را منتشر کرد. او اشاره کرد که این انتشار با تأخیر انجام شد، زیرا به‌طور غیرعمدی فراموش کرده بود که در زمان مقرر آن را منتشر کند.

- افزایش عملکرد بازی‌ها: افزودن درایور جدید «NT synchronization» (ntsync) که عملکرد بازی‌های ویندوزی اجراشده از طریق Wine را بهبود می‌بخشد. این تغییر می‌تواند نرخ فریم را بین ۵۰ تا ۱۵۰ درصد افزایش دهد.

- بهبودهای عملکردی عمومی: افزودن رویداد جدید FS_PRE_ACCESS در fsnotify برای بارگذاری محتواهای فایل به‌صورت درخواستی از ذخیره‌سازهای کندتر، محافظت از بارهای کاری GPU از طریق cgroups، و پشتیبانی از I/O بافر نشده برای جلوگیری از پر شدن حافظهٔ رم با داده‌های کش غیرضروری.

- بهبود در درایورهای گرافیکی: بهبود مدیریت مصرف انرژی در کارت‌های گرافیکی Intel و AMD، و پشتیبانی از حالت‌های Ultra-High Bit Rate (UHBR) برای DisplayPort در پلتفرم‌های جدید.

- پشتیبانی از سخت‌افزارهای جدید: افزودن درایور AMD XDNA برای واحدهای پردازش عصبی (NPU) در تراشه‌های جدید AMD، و پشتیبانی از کنترلرهای بازی جدید مانند Nacon Evol-X Xbox One و Nacon Pro Compact.

https://lkml.org/lkml/2025/3/24/797


⚡️@GoInsights | @GolangEngineers
🔥4👍1
Good-bye core types; Hello Go as we know and love it!

Robert Griesemer
26 March 2025


The Go 1.18 release introduced generics and with that a number of new features, including type parameters, type constraints, and new concepts such as type sets. It also introduced the notion of a core type. While the former provide concrete new functionality, a core type is an abstract construct that was introduced for expediency and to simplify dealing with generic operands (operands whose types are type parameters). In the Go compiler, code that in the past relied on the underlying type of an operand, now instead had to call a function computing the operand’s core type. In the language spec, in many places we just needed to replace “underlying type” with “core type”. What’s not to like?

https://go.dev/blog/coretypes


⚡️@GoInsights | @GolangEngineers
🔥2
🤖 اضافه شدن Github copilot به عنوان reviewer پول ریکوئست ها

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

https://github.com/ezex-io/ezex-gateway/pull/3#pullrequestreview-2724701008


⚡️@GoInsights | @GolangEngineers
🔥3👍11
از ۲۸ اپریل محدودیت تعداد repository به ازای هراکانت یا سازمان در گیتهاب به ۱۰۰ هزارتا تغییر میابد.

https://github.blog/changelog/2025-03-27-repository-ownership-limits/


⚡️@GoInsights | @GolangEngineers
👍3👎1