Mastering Idempotency_ Building Reliable APIs.pdf
3 MB
Mastering Idempotency_ Building Reliable APIs
#bytebytego #tips #pro_guide
➖➖➖➖➖➖➖➖
☄️ @GoInsights | @GolangEngineers
#bytebytego #tips #pro_guide
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
دوستان گولنگی عزیز ماه قبل من سعی میکردم با اسپانسری GoBridge دورهمی هفتگی برگزار کنم متأسفانه فرصت نشد ادامه بدم ولی خیلی دوست دارم مجدد شروع کنیم ولی متاسفانه خیلی درگیر کارام شدم.
ولی می تونم با کمک GoBridge فضای وبینار و میتینگ تا ۱۰۰۰ نفر با امکان ضبط فراهم کنم اگر کسی مایل بود.
برای دیدن دورهمی های قدیمی داخل گروه کلمه
برای برگزاری میتوانید با من در ارتباط باشید.
@ja7adr
➖➖➖➖➖➖➖➖
☄️ @GoInsights | @GolangEngineers
ولی می تونم با کمک GoBridge فضای وبینار و میتینگ تا ۱۰۰۰ نفر با امکان ضبط فراهم کنم اگر کسی مایل بود.
برای دیدن دورهمی های قدیمی داخل گروه کلمه
دورهمی جستجو کنید.برای برگزاری میتوانید با من در ارتباط باشید.
@ja7adr
➖➖➖➖➖➖➖➖
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
#bytebytego #tips #pro_guide
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Top Strategies to Reduce Latency - ByteByteGo Newsletter.pdf
4.6 MB
Top Strategies to Reduce Latency
#bytebytego #tips #pro_guide
➖➖➖➖➖➖➖➖
☄️ @GoInsights | @GolangEngineers
#bytebytego #tips #pro_guide
➖➖➖➖➖➖➖➖
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
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
➖➖➖➖➖➖➖➖
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
https://github.com/electronicarts/CnC_Generals_Zero_Hour
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - electronicarts/CnC_Generals_Zero_Hour: Command and Conquer: Generals - Zero Hour
Command and Conquer: Generals - Zero Hour. Contribute to electronicarts/CnC_Generals_Zero_Hour development by creating an account on GitHub.
👍6
⚡️ اصول کامنتنویسی در زبان گو - بخش اول: Deprecated
یکی از اصول مهم در کامنتنویسی زبان Go ، استفاده از Deprecated است. این کامنت به شما کمک میکند که بهصورت تدریجی بخشی از کد را منقضی کرده، حذف کنید، یا جایگزین مناسبی برای آن پیشنهاد دهید.
🔹 نحوه استفاده از کامنت Deprecated
در گولنگ، اگر بخواهید یک تابع، متد، یا یک نوع داده را Deprecated کنید، باید آن را در کامنت سندنویسی (doc comment) قبل از تعریف عضو موردنظر قرار دهید. گولنگ ابزار خاصی برای مدیریت موارد منقضیشده ندارد، اما IDEها و ابزارهایی مانند
🔹 تاثیر کامنت Deprecated در IDEها و ابزارهای آنالیز کد
اکثر محیطهای توسعه (IDEها) مانند GoLand یا VS Code هنگام استفاده از یک تابع Deprecated ، هشدار نمایش میدهند تا توسعهدهندگان از جایگزین مناسب استفاده کنند. همچنین ابزارهای Linter مانند
🔹 بهترین شیوههای استفاده از Deprecated در گولنگ
✅ همیشه جایگزین مشخص کنید: اگر قصد دارید یک بخش از کد را منسوخ کنید، حتماً جایگزین آن را در توضیحات ذکر کنید.
✅ هشدارهای لازم را در اسناد پروژه ارائه دهید: مستندات API باید نشان دهد که کدام بخش از کد Deprecated شده است.
✅ حذف تدریجی توابع قدیمی: ابتدا با Deprecated کردن یک تابع شروع کنید و پس از چند نسخه، آن را از کد حذف کنید.
🔹 نتیجهگیری
استفاده از کامنت Deprecated در Go به توسعهدهندگان کمک میکند تا تغییرات را مدیریت کرده و بهصورت تدریجی بخشهای قدیمی را حذف کنند. این روش نهتنها باعث خوانایی بهتر کد میشود، بلکه از بروز مشکلات ناگهانی در پروژههای در حال توسعه جلوگیری میکند.
➖➖➖➖➖➖➖➖
☄️ @GoInsights | @GolangEngineers
یکی از اصول مهم در کامنتنویسی زبان 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 به توسعهدهندگان کمک میکند تا تغییرات را مدیریت کرده و بهصورت تدریجی بخشهای قدیمی را حذف کنند. این روش نهتنها باعث خوانایی بهتر کد میشود، بلکه از بروز مشکلات ناگهانی در پروژههای در حال توسعه جلوگیری میکند.
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9 6🔥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
🔐 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
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
میتوانید Redis را بدون ذخیرهسازی دادهها روی دیسک اجرا کنید.
این کار سریعتر است، اما به این معنی است که هیچ پشتیبان (Backup) از دادههای خود نخواهید داشت.
اگر تصمیم بگیرید دادههای خود را ذخیره کنید، Redis دو روش اصلی ارائه میدهد: RDB و AOF.
کدام یک را باید پیشنهاد کنید؟ و دليل؟
➖➖➖➖➖➖➖➖
☄️ @GoInsights | @GolangEngineers
این کار سریعتر است، اما به این معنی است که هیچ پشتیبان (Backup) از دادههای خود نخواهید داشت.
اگر تصمیم بگیرید دادههای خود را ذخیره کنید، Redis دو روش اصلی ارائه میدهد: RDB و AOF.
کدام یک را باید پیشنهاد کنید؟ و دليل؟
➖➖➖➖➖➖➖➖
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.
https://bitstack.substack.com/p/generic-type-aliases-go-124
➖➖➖➖➖➖➖➖
☄️ @GoInsights | @GolangEngineers
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
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
عزیز جان
۱. لطفا over engineering نکنید.
۲. خواهشا over engineering نکنید.
برای امروز بسازید، برای فردا طراحی کنید.
➖➖➖➖➖➖➖➖
☄️ @GoInsights | @GolangEngineers
۱. لطفا over engineering نکنید.
۲. خواهشا over engineering نکنید.
برای امروز بسازید، برای فردا طراحی کنید.
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
دوستان این سلطان را اکثرا میشناسیم، تازگیا امتحانش کردن با شرایط فعلی اینترنت ایران مثل مرد کار میکنه.
➖➖➖➖➖➖➖➖
☄️ @GoInsights | @GolangEngineers
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1
🚀 فلوئورا (Fluora) - جعبهابزار پیشرفته هوش مصنوعی
فلوئورا یک جعبهابزار توسعهیافته با زبان Go است که امکان ساخت و راهاندازی ابزارهای قدرتمند هوش مصنوعی را با استفاده از دستورالعملهای ساختاریافته فراهم میکند. این پلتفرم با پشتیبانی از مدلهای پیشرفتهی هوش مصنوعی و یکپارچگی آسان، به توسعهدهندگان این امکان را میدهد که بدون نیاز به پیچیدگیهای فنی، مدلهای زبانی را در پروژههای خود ادغام کنند.
ویژگی ها:
- ادغام آسان با Gemini و مدلهای دیگر
- امکان اضافه کردن سایر ارائهدهندگان هوش مصنوعی
- قابلیت سفارشیسازی درخواستها و پاسخها
- ابزارهای هوشمند پردازش متن
- امکان پیاده سازی instruction های مختلف جهت توسعه
دانلود: https://fluora.javad.dev/
دمو: https://asciinema.org/a/707466
پروژه: https://github.com/Ja7ad/fluora
➖➖➖➖➖➖➖➖
☄️ @GoInsights | @GolangEngineers
فلوئورا یک جعبهابزار توسعهیافته با زبان Go است که امکان ساخت و راهاندازی ابزارهای قدرتمند هوش مصنوعی را با استفاده از دستورالعملهای ساختاریافته فراهم میکند. این پلتفرم با پشتیبانی از مدلهای پیشرفتهی هوش مصنوعی و یکپارچگی آسان، به توسعهدهندگان این امکان را میدهد که بدون نیاز به پیچیدگیهای فنی، مدلهای زبانی را در پروژههای خود ادغام کنند.
ویژگی ها:
- ادغام آسان با Gemini و مدلهای دیگر
- امکان اضافه کردن سایر ارائهدهندگان هوش مصنوعی
- قابلیت سفارشیسازی درخواستها و پاسخها
- ابزارهای هوشمند پردازش متن
- امکان پیاده سازی instruction های مختلف جهت توسعه
دانلود: https://fluora.javad.dev/
دمو: https://asciinema.org/a/707466
پروژه: https://github.com/Ja7ad/fluora
این ابزار را فعلا با تفکر اولیه و ساده درست کردم ولی جای توسعه برای بهبود و امکانات خاص وجود دارد اگر مایل به مشارکت هستید خوشحال میشم.
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Forwarded from جادی | Jadi
یک ماینر مستقل با ۳.۳ تراهش یکی از بلاکهای بیتکوین رو ماین کرد
ماینرهای بیت کوین معمولا دستگاههای عظیم پر سر و صدا و پر مصرفی دارن ولی کماکان به اینکه بتونن یه بلاک رو ماین کنن امید نمی بینن و به جاش سراغ استخرهایی میرن که قدرت همه رو یکجا جمع می کنه و در صورت پیدا شدن چیزی، اونو بین همه تقسیم میکنه.
اما این وسط هم هستن آدم هایی که با تکیه بر شانس، تنهایی دستگاهشون رو به برق می زنن به امید اینکه اگر یکهو شانس یک در فلان هزار و میلیونشون بزنه و یه بلاک ماین کنن، چقدر باحال میشه. البته این آدمها هم در نهایت به یه استخر وصلن ولی استخر ماینرهای منفرد و ناشناس.
و حالا یکیشون برنده شده. یه سولو ماینر با شش دستگاه اوپن سورس بیتاکس تونسته بلاکی رو ماین کنه و حداقل ۳.۱۵ بیتکوین برابر ۲۵۰ هزار دلار به دست بیاره (: قدرت ماین این شش دستگاه روی هم حدود ۳.۳ تراهش و بسیار کمتر از دستگاههای کاملا معمولی است. قیمت این دستگاه حدود ۲۰۰ دلاره.
احتمالا خوشحالترین آدم در این ماجرا خودشه و بعدش فروشنده دستگاههای خونگی که روی هیجان خبر و فروش دستگاههای بیشتر حساب باز کردن(:
https://jadi.net/2025/03/solo-miner/
#خبر
ماینرهای بیت کوین معمولا دستگاههای عظیم پر سر و صدا و پر مصرفی دارن ولی کماکان به اینکه بتونن یه بلاک رو ماین کنن امید نمی بینن و به جاش سراغ استخرهایی میرن که قدرت همه رو یکجا جمع می کنه و در صورت پیدا شدن چیزی، اونو بین همه تقسیم میکنه.
اما این وسط هم هستن آدم هایی که با تکیه بر شانس، تنهایی دستگاهشون رو به برق می زنن به امید اینکه اگر یکهو شانس یک در فلان هزار و میلیونشون بزنه و یه بلاک ماین کنن، چقدر باحال میشه. البته این آدمها هم در نهایت به یه استخر وصلن ولی استخر ماینرهای منفرد و ناشناس.
و حالا یکیشون برنده شده. یه سولو ماینر با شش دستگاه اوپن سورس بیتاکس تونسته بلاکی رو ماین کنه و حداقل ۳.۱۵ بیتکوین برابر ۲۵۰ هزار دلار به دست بیاره (: قدرت ماین این شش دستگاه روی هم حدود ۳.۳ تراهش و بسیار کمتر از دستگاههای کاملا معمولی است. قیمت این دستگاه حدود ۲۰۰ دلاره.
احتمالا خوشحالترین آدم در این ماجرا خودشه و بعدش فروشنده دستگاههای خونگی که روی هیجان خبر و فروش دستگاههای بیشتر حساب باز کردن(:
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
گاها داخل پروژه هامون سرویس های third party سمت کلاینت استفاده میکنیم که ممکن است برخی سرویس ها برای کلاینت تحریم یا در دسترس نباشد.
در اینجا شما با کمک Proxier می توانید یکسری route ها پروکسی داخل سرور تعریف کنید که کلاینت بدون هیچ مشکلی از سرور origin شما مستقیما درخواست بزند.
https://github.com/ezex-io/proxier
➖➖➖➖➖➖➖➖
⚡️@GoInsights | @GolangEngineers
👍2👏1
🚀 لینوکس کرنل 6.14 منتشر شد
لینوس توروالدز در تاریخ ۲۴ مارس ۲۰۲۵ نسخهٔ ۶.۱۴ کرنل لینوکس را منتشر کرد. او اشاره کرد که این انتشار با تأخیر انجام شد، زیرا بهطور غیرعمدی فراموش کرده بود که در زمان مقرر آن را منتشر کند.
- افزایش عملکرد بازیها: افزودن درایور جدید «NT synchronization» (ntsync) که عملکرد بازیهای ویندوزی اجراشده از طریق Wine را بهبود میبخشد. این تغییر میتواند نرخ فریم را بین ۵۰ تا ۱۵۰ درصد افزایش دهد.
- بهبودهای عملکردی عمومی: افزودن رویداد جدید
- بهبود در درایورهای گرافیکی: بهبود مدیریت مصرف انرژی در کارتهای گرافیکی 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
لینوس توروالدز در تاریخ ۲۴ مارس ۲۰۲۵ نسخهٔ ۶.۱۴ کرنل لینوکس را منتشر کرد. او اشاره کرد که این انتشار با تأخیر انجام شد، زیرا بهطور غیرعمدی فراموش کرده بود که در زمان مقرر آن را منتشر کند.
- افزایش عملکرد بازیها: افزودن درایور جدید «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
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
جدیدا گیتهاب این امکان را فراهم کرده با کمک copilot پول ریکوئست های خود را ارزیابی کنید.
https://github.com/ezex-io/ezex-gateway/pull/3#pullrequestreview-2724701008
➖➖➖➖➖➖➖➖
⚡️@GoInsights | @GolangEngineers
🔥3👍1 1
از ۲۸ اپریل محدودیت تعداد repository به ازای هراکانت یا سازمان در گیتهاب به ۱۰۰ هزارتا تغییر میابد.
https://github.blog/changelog/2025-03-27-repository-ownership-limits/
➖➖➖➖➖➖➖➖
⚡️@GoInsights | @GolangEngineers
https://github.blog/changelog/2025-03-27-repository-ownership-limits/
➖➖➖➖➖➖➖➖
⚡️@GoInsights | @GolangEngineers
👍3👎1