Gopher Academy
3.84K subscribers
932 photos
42 videos
280 files
2.19K links
🕸 Gopher Academy

🔷interview golang
https://github.com/mrbardia72/Go-Interview-Questions-And-Answers

حمایت مالی:
https://www.coffeete.ir/mrbardia72

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
JWT Authentication in Go with Gin

🟢 خلاصه مقاله:
این مقاله با رویکردی عملی نشان می‌دهد چگونه احراز هویت مبتنی بر JWT را در یک سرویس Go با فریم‌ورک Gin پیاده‌سازی کنیم؛ هدف نمونه، کار با Vonage است اما الگوها در هر پروژه API‌محور قابل استفاده‌اند. نویسنده، Benjamin Aronov (Vonage)، ابتدا مزایای JWT و مفاهیم ادعاها، الگوریتم‌های امضا و تفکیک توکن‌های دسترسی و نوسازی را توضیح می‌دهد. سپس ساختار پیاده‌سازی را تشریح می‌کند: صدور توکن امن پس از تأیید اعتبار، میان‌افزار Gin برای اعتبارسنجی و تزریق کانتکست کاربر، محافظت از مسیرها، مدیریت خطاها و نگهداری کلیدها در متغیرهای محیطی. بخش امنیت بر انقضای کوتاه توکن دسترسی، چرخش Refresh Token، جلوگیری از سوءاستفاده، استفاده از HTTPS، ملاحظات CORS و محدودسازی نرخ و نیز لاگ‌گذاری و چرخش کلیدها در محیط تولید تأکید دارد. در نهایت نشان می‌دهد چگونه با توکن‌های کوتاه‌عمر و محدود به سطح دسترسی، تعاملات با Vonage (مانند پیام، صوت یا ویدئو) را ایمن کنیم. نتیجه، لایه احراز هویت منعطفی در Go و Gin است که فراتر از Vonage هم قابل استفاده است.

#Go #Gin #JWT #Authentication #Security #Golang #API #Vonage

🟣لینک مقاله:
https://golangweekly.com/link/175981/web


👑 @gopher_academy
🔵 عنوان مقاله
superfile: Go-Powered Terminal-Based File Manager

🟢 خلاصه مقاله:
یک فایل‌منیجر ترمینالی مدرن به نام superfile که با Go ساخته شده و بر پایه Bubble Tea توسعه یافته است. این ابزار با طراحی خوش‌ساخت و امکان تغییر تم، تجربه‌ای روان و سازگار با جریان کاری ترمینال ارائه می‌دهد و به‌دلیل استفاده از Go سریع و کم‌مصرف است. مخزن GitHub آن برای دریافت کد، مستندات و مشارکت در توسعه در دسترس است و گزینه‌ای مناسب برای توسعه‌دهندگان و کاربران حرفه‌ایِ طرفدار محیط خط فرمان محسوب می‌شود.

#superfile #Go #Golang #Terminal #TUI #FileManager #OpenSource #BubbleTea

🟣لینک مقاله:
https://golangweekly.com/link/175999/web


👑 @gopher_academy
1
🔵 عنوان مقاله
The Draft Go 1.26 Release Notes

🟢 خلاصه مقاله:
نسخه‌ی پیش‌نویس Release Notes برای Go 1.26 با وجود ادامه‌ی توسعه منتشر شده و زمان انتشار آن برای February 2026 برنامه‌ریزی شده است. این متن، تغییراتی را که احتمالاً به نسخه نهایی راه پیدا می‌کنند، فهرست می‌کند و در عین حال برای دریافت بازخورد منتشر شده است؛ بنابراین ممکن است در ادامه تغییر کند. یکی از نکات برجسته، به‌روزرسانی در new برای پشتیبانی از expressions است که هدف آن استفاده‌پذیری گسترده‌تر در الگوهای تخصیص است. توسعه‌دهندگان می‌توانند با پیگیری این پیش‌نویس و نسخه‌های آزمایشی، خود را آماده کنند و به روند شکل‌گیری نهایی ویژگی‌ها کمک کنند.
#Go #Golang #Go126 #ReleaseNotes #ProgrammingLanguages #SoftwareDevelopment #OpenSource #DeveloperTools

🟣لینک مقاله:
https://golangweekly.com/link/175969/web


👑 @gopher_academy
👍1
🔵 عنوان مقاله
go-torch: Torch-Like Deep Learning Framework in Go

🟢 خلاصه مقاله:
go-torch یک فریم‌ورک متن‌باز برای یادگیری عمیق است که با الهام از Torch ساخته شده و به‌طور کامل در خود زبان Go پیاده‌سازی شده است. این پروژه با فراهم‌کردن اجزای اصلی مانند تنسور، لایه‌ها و ابزارهای آموزش، تجربه‌ای آشنا و در عین حال بومیِ Go ارائه می‌دهد. چون به‌صورت pure Go است، به‌سادگی در سرویس‌ها و کدهای Go ادغام می‌شود، استقرار را آسان می‌کند و از مزیت‌های هم‌روندی و قابل‌حمل بودن Go بهره می‌برد. هدف آن فراهم‌کردن مسیری روان برای ساخت و آموزش شبکه‌های عصبی در اکوسیستم Go و جذب مشارکت جامعه برای گسترش قابلیت‌هاست.

#Go #Golang #DeepLearning #MachineLearning #Torch #OpenSource #AIFramework #MLTools

🟣لینک مقاله:
https://golangweekly.com/link/175989/web


👑 @gopher_academy
👍1
🔵 عنوان مقاله
go-nvtrust: NVIDIA GPU and NVSwitch Confidential Computing Attestation

🟢 خلاصه مقاله:
اgo-nvtrust یک پیاده‌سازی به زبان Go از nvTrust است که برای گردآوری و مدیریت شواهد attestation مربوط به Confidential Computing از NVIDIA GPU و NVSwitch به‌کار می‌رود. این ابزار با جمع‌آوری هویت‌های امضاشده دستگاه، اندازه‌گیری‌های firmware و پیکربندی و بسته‌بندی آن‌ها برای تأیید خارجی، امکان سنجش اعتماد پیش از اجرای بارهای کاری حساس را فراهم می‌کند. پیاده‌سازی به زبان Go ادغام آن را در سرویس‌های cloud-native، کنترلرها و ابزارهای سیاست‌گذاری ساده می‌سازد و به سناریوهای zero-trust در محیط‌های چند GPU و چندمستاجری کمک می‌کند. خروجی go-nvtrust به‌عنوان شواهد استاندارد به همراه تأییدکننده‌ها و مراجع اعتماد استفاده می‌شود تا پیش از زمان‌بندی یا آزادسازی اسرار، وضعیت امن سخت‌افزار بررسی شود.

#ConfidentialComputing #NVIDIA #GPU #NVSwitch #Go #Attestation #ZeroTrust #AIInfrastructure

🟣لینک مقاله:
https://golangweekly.com/link/175990/web


👑 @gopher_academy
2
🔵 عنوان مقاله
gotests: Automatically Generate Test Boilerplate From Code

🟢 خلاصه مقاله:
**خلاصه فارسی: ابزار gotests با تحلیل امضاهای توابع و متدها در کد Go، به‌طور خودکار تست‌های table-driven تولید می‌کند و نیاز به نوشتن کد تکراری برای اسکلت تست را از بین می‌برد. این کار سرعت پوشش‌دهی تست را بالا می‌برد، سبک تست را در تیم‌ها یکپارچه می‌کند و با الگوهای قابل‌سفارشی‌سازی از طریق CLI یا ادیتور به‌راحتی در جریان کار توسعه جا می‌افتد. انتشار نسخه v1 در این هفته نشان‌دهنده پایداری و آمادگی برای استفاده در محیط‌های حرفه‌ای است، چه برای شروع تست در کدهای موجود و چه برای افزودن تست به بسته‌های جدید.

#Go #Testing #UnitTesting #TDD #Automation #DeveloperTools #OpenSource

🟣لینک مقاله:
https://golangweekly.com/link/175984/web


👑 @gopher_academy
👍1
🔵 عنوان مقاله
Fantasy: Build Flexible AI Agents with Go

🟢 خلاصه مقاله:
با تمرکز بر ساخت ایجنت‌های هوش مصنوعی انعطاف‌پذیر در Go، ابزار Fantasy از سوی Charm معرفی شده است. این ابزار یکی از اجزای اصلی پشت Crush است، اما می‌توان آن را به‌صورت مستقل برای ساخت ایجنت‌های مجهز به ابزار در Go به‌کار گرفت. هدف Fantasy ارائه رویکردی ماژولار و قابل ترکیب است تا توسعه‌دهندگان بتوانند رفتار ایجنت را سفارشی کنند، ابزارها و سرویس‌ها را متصل کنند و در عین حال در چارچوب کاری Go باقی بمانند.

#Go #Golang #AI #AIAgents #Charm #Crush #DevTools #AgentFramework

🟣لینک مقاله:
https://golangweekly.com/link/176311/web


👑 @gopher_academy
👍1
🔵 عنوان مقاله
google/jsonschema-go

🟢 خلاصه مقاله:
این مقاله دو کتابخانه Go برای کار با JSON Schema را مقایسه می‌کند: google/jsonschema-go و مخزن شخصی Ian Lance Taylor با نام ianlancetaylor/jsonschema. تمرکز اصلی بر کاربردهای عملی مانند اعتبارسنجی در زمان اجرا، هم‌ترازی قراردادهای داده میان سرویس‌ها، و در صورت نیاز، تولید کد برای انواع Go است. به‌جای معرفی یک برنده قطعی، مجموعه‌ای از معیارهای انتخاب پیشنهاد می‌شود: پوشش استاندارد (کلیدواژه‌ها، فرمت‌ها، و ارجاعات $ref)، کیفیت گزارش خطا، کارایی در بارهای واقعی، قابلیت سفارشی‌سازی، و نشانه‌های پایداری و نگهداشت پروژه. همچنین سازگاری با فرآیندهای CI، نحوه حل $ref در فایل‌ها و URLها، و میزان تطبیق با ابزارهای رایج Go بررسی می‌شود. جمع‌بندی مقاله عملی است: هر دو گزینه قابل اتکا هستند و انتخاب نهایی باید بر اساس نیازهای خاص تیم—سادگی رابط، گستره امکانات، یا الزامات یکپارچه‌سازی—انجام شود.

#Go #JSONSchema #GoLang #OpenSource #Validation #CodeGeneration #GitHub

🟣لینک مقاله:
https://golangweekly.com/link/176346/web


👑 @gopher_academy
🔵 عنوان مقاله
From 19 Hours to Under a Second: Building a Blazing-Fast TCP Scanner in Go

🟢 خلاصه مقاله:
با یک روایت عملی، مقاله توضیح می‌دهد چگونه یک اسکنر ساده TCP که ۱۹ ساعت طول می‌کشید، با بازطراحی در Go به ابزاری «زیر یک ثانیه» تبدیل شد. ابتدا نشان می‌دهد چرا اسکن مبتنی‌بر net.Dial حتی با همزمانی محدود گرفتار زمان‌های انتظار، محدودیت FD و سربار syscall می‌شود. سپس با گذار از اتصال‌های کامل به اسکن SYN، ساخت بسته‌ها، فیلترکردن پاسخ‌ها با BPF، و نگه‌داری وضعیت سبک‌وزن، سربار کرنل و زمان‌بندی به شدت کاهش می‌یابد. بهینه‌سازی‌هایی مانند batch کردن ارسال/دریافت، پیش‌اختصاص بافرها، کاهش تخصیص‌ها با sync.Pool، و حلقه‌های رویدادی کارا (epoll/kqueue) همراه با تنظیمات سیستم (ulimit، بافرهای سوکتی و sysctl) throughput را به حداکثر می‌رساند. با پروفایل‌کردن مداوم (pprof) و راستی‌آزمایی با ابزاری مانند Nmap، هم دقت و هم کارایی تضمین می‌شود. خروجی نهایی: الگوی عملی برای ساخت ابزارهای پرسرعت شبکه در Go—ترکیبی از انتخاب مدل درست (SYN به‌جای connect)، کاهش سربارها، batch کردن، اندازه‌گیری پیوسته، و پایبندی به اصول ایمنی و اخلاق اسکن. این مطلب در Golang Weekly برجسته شده است.

#Go #Golang #TCP #PortScanning #Networking #Performance #Concurrency #SystemsProgramming

🟣لینک مقاله:
https://golangweekly.com/link/176335/web


👑 @gopher_academy
🔵 عنوان مقاله
Go's Release Cycle and Process as Go 1.26 Progresses

🟢 خلاصه مقاله:
با نزدیک‌شدن به انتشار Go 1.26، فرآیند انتشار این زبان وارد مرحله حساس می‌شود. طبق برنامه، تاریخ “development freeze” برای ۲۶ نوامبر تعیین شده است؛ یعنی از این زمان هیچ قابلیت جدیدی برای Go 1.26 پذیرفته نمی‌شود و تمرکز پروژه بر رفع باگ‌ها، بهبود کارایی، مستندسازی و آزمون است. نسخه‌های beta و RC برای آزمایش جامعه منتشر می‌شوند تا مشکلات واقعی سریع‌تر شناسایی و رفع شوند.

برای توسعه‌دهندگان، این یعنی تغییراتی که تا موعد یادشده آماده نشوند، به چرخه بعدی (مثلاً Go 1.27) منتقل خواهند شد. پیشنهاد می‌شود پروژه‌ها و کتابخانه‌ها، ساخت‌ها و تست‌های خود را با پیش‌انتشارهای Go 1.26 اجرا کنند و هر گونه مشکل را سریع گزارش دهند تا در نسخه نهایی رفع شود. این انضباط در “فریز” ویژگی‌ها و محدودکردن تغییرات پرریسک، مسیر انتشار پایدار و قابل‌پیش‌بینی Go را تضمین می‌کند.

#Go #Golang #Go126 #ReleaseCycle #DevelopmentFreeze #SoftwareRelease #ProgrammingLanguages #OpenSource

🟣لینک مقاله:
https://golangweekly.com/link/176301/web


👑 @gopher_academy
👍1