Gopher Academy
3.86K subscribers
935 photos
42 videos
280 files
2.25K links
🕸 Gopher Academy

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

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

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
list of the top ten web application security threats in 2025.

🟢 خلاصه مقاله:
امنیت وب در ۲۰۲۵ با ترکیبی از تهدیدهای قدیمی و سطح حمله‌های جدید تعریف می‌شود: شکست در کنترل دسترسی، تزریق در SQL/NoSQL/GraphQL، ضعف‌های احراز هویت و نشست‌ها، SSRF و پیکربندی‌های نادرست همچنان پرتکرارند، در حالی که حملات زنجیره‌تأمین (بسته‌های مخرب، Dependency Confusion، نفوذ به CI/CD) و سوءاستفاده‌های خودکار و مبتنی بر AI رو به افزایش‌اند. در معماری‌های API-first و میکروسرویس، خطاهایی مثل Broken Object-Level Authorization، Mass Assignment، و Shadow APIها ریسک را بالا می‌برند و در فضای ابری، SSRF می‌تواند به افشای گذرواژه‌های ابری و تصاحب حساب منجر شود. برای تیم‌های Go، هرچند زبان از کلاس بزرگی از باگ‌های حافظه‌ای جلوگیری می‌کند، اما خطاهای منطقی، شرایط مسابقه و تنظیمات ناایمن باقی می‌مانند؛ بنابراین استفاده از احراز هویت قوی (مثل WebAuthn و توکن‌های کوتاه‌عمر)، اصل حداقل دسترسی، چرخش اسرار، تست و اسکن مداوم (fuzzing در Go 1.18+، linters، govulncheck)، مدیریت امن وابستگی‌ها و SBOM، و سخت‌سازی CI/CD با امضا و سیاست‌گذاری پیشنهاد می‌شود. این فهرست از سوی Golang Weekly به‌عنوان یک چک‌لیست عملی برای اولویت‌بندی دفاع‌ها و گفت‌وگو درباره ریسک در تیم‌های توسعه معرفی شده است.

#WebSecurity #AppSec #Golang #APIsecurity #SupplyChainSecurity #DevSecOps #SSRF #OWASP

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


👑 @gopher_academy
🔵 عنوان مقاله
Trends in the Go Ecosystem in 2025

🟢 خلاصه مقاله:
گزارش تازه JetBrains از اکوسیستم Go در سال ۲۰۲۵ نشان می‌دهد جامعه Gophers همچنان به کتابخانه‌های ساده، پایدار و کم‌وابستگی تکیه دارد. در وب، گرایش به فریم‌ورک‌های سبک و سریع پررنگ است و Gin بیشترین توجه را جلب کرده؛ در کنار گزینه‌هایی مثل Echo، Fiber و Chi. برای دسترسی به داده نیز ابزارهایی مانند GORM و sqlx رایج‌اند و معیارهایی مثل کیفیت مستندات، ثبات و ردپای وابستگی کوچک نقش تعیین‌کننده دارند. در تست، رویکردهای idiomatic مثل go test و table-driven tests همراه با testify و ابزارهای mocking، به‌علاوه ادغام در CI و توجه به پوشش کد، جریان غالب‌اند؛ علاقه به fuzzing و property-based testing نیز رو به رشد است. دستیارهای هوشمند کدنویسی به ابزار روزمره تبدیل شده‌اند: GitHub Copilot و ChatGPT بیشترین اشاره را دارند، JetBrains AI Assistant در IDEها پذیرفته شده و گزینه‌هایی مثل Codeium و Tabnine هم برای ملاحظات حریم خصوصی و مجوزدهی مطرح‌اند. جمع‌بندی گزارش: انتخاب آگاهانه کتابخانه‌های مینیمال (با برتری Gin در سرویس‌های وب)، سرمایه‌گذاری در ارگونومی تست و CI، و تدوین سیاست روشن برای استفاده از AI جهت افزایش بهره‌وری بدون افت کیفیت کد.

#Go #Golang #JetBrains #Gin #Testing #AIAssistants #DeveloperSurvey #2025Trends

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


👑 @gopher_academy
👍1
🔵 عنوان مقاله
Go's Runtime May Someday Start Explicitly Freeing Some Internal Memory?

🟢 خلاصه مقاله:
** Chris Siebenmann به ایده‌ای اشاره می‌کند که هنوز توسعه نیافته است: احتمال اینکه Go Runtime در آینده بتواند بخشی از حافظه داخلی خودش را به‌صورت صریح به سیستم‌عامل برگرداند. هدف، کاهش RSS و رفتار بهتر زیر فشار حافظه—به‌ویژه در سرویس‌های طولانی‌مدت و محیط‌های کانتینری—است، اما با ریسک افت کارایی به‌خاطر افزایش syscall‌ها، page faultها و از دست رفتن cacheها. هنوز جزئیات و زمان‌بندی روشن نیست و اگر هم پیش برود، احتمالاً به‌صورت آزمایشی و opt-in ارائه می‌شود. در صورت پیاده‌سازی در نسخه‌های بعدی Go، این تغییر می‌تواند شیوه‌های مرسوم تنظیم حافظه در تولید را تحت تأثیر قرار دهد.

#Go #Golang #Runtime #MemoryManagement #GarbageCollection #Performance #Containers #Cloud

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


👑 @gopher_academy
🔵 عنوان مقاله
Red, Green, Refactor: Writing Perfect Go, with TDD

🟢 خلاصه مقاله:
** این مطلب سه دیدگاه مکمل برای بهبود کدنویسی در Go ارائه می‌کند: به‌کارگیری چرخه Red–Green–Refactor در TDD برای ساخت پکیج‌های کوچک و APIهای شفاف و ریفکتور امن با تکیه بر تست‌های سریع؛ مرور کاربردی John Arundel از sync.Pool برای کاهش فشار تخصیص در مسیرهای داغ، با تأکید بر اینکه این سازوکار «کش» نیست و اقلام آن ممکن است هر لحظه حذف شوند، و استفاده از آن فقط با اندازه‌گیری و پروفایل توجیه‌پذیر است؛ و توضیح Jesús Espino در Devtrovert درباره Scanner در کامپایلر Go و نحوه تبدیل کد منبع به توکن‌ها، که منشأ برخی خطاها و رفتار ابزارها را روشن می‌کند. جمع‌بندی: با TDD کیفیت و قابلیت نگه‌داری را بالا ببرید، sync.Pool را صرفاً وقتی به کار بگیرید که داده‌ها گلوگاه تخصیص را نشان می‌دهند، و با شناخت روند اسکن، ابزار بهتر و کد خواناتر بسازید.

#Go #Golang #TDD #syncPool #Refactoring #GoCompiler #Performance #Profiling

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


👑 @gopher_academy
👍1
🔵 عنوان مقاله
Understanding the Go Compiler: The Scanner

🟢 خلاصه مقاله:
این مقاله، با معرفی نقش Scanner در Go Compiler، توضیح می‌دهد که چگونه متن خام به توکن‌های دقیق و موقعیت‌دار تبدیل می‌شود تا مراحل بعدی مانند parser و type checker بتوانند روی آن کار کنند. تمرکز مقاله بر سادگی قواعد واژگانی Go، نبود preprocessor و سازوکار semicolon insertion است که باعث می‌شود کد خواناتر و ابزارها قابل‌اعتمادتر باشند.

نویسنده انواع توکن‌ها را مرور می‌کند: شناسه‌ها با پشتیبانی Unicode، اعداد صحیح و اعشاری و imaginary با امکان استفاده از underscore، رشته‌های interpreted و raw، و rune literals. همچنین به نحوه‌ی تشخیص و نادیده‌گیری یا نگه‌داری کامنت‌ها بر حسب نیاز ابزار اشاره می‌کند. بخشی هم به گزارش خطا و ادامه‌ی اسکن در مواجهه با ورودی‌های نامعتبر می‌پردازد و اهمیت go/token برای نگه‌داری دقیق موقعیت‌ها را توضیح می‌دهد.

در پایان، با معرفی بسته‌های go/scanner و go/token، مسیر ساخت ابزارهایی مثل linter و formatter نشان داده می‌شود و تفاوت آن‌ها با پیاده‌سازی داخلی کامپایلر بیان می‌گردد. نتیجه اینکه طراحی خطی و ساده‌ی Scanner، سرعت ابزار Go و کیفیت پیام‌های خطا و تحلیل‌های ایستا را ممکن کرده است.

#Go #Golang #GoCompiler #Scanner #Lexer #Parsing #StaticAnalysis #ProgrammingLanguages

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


👑 @gopher_academy
2
یه ابزار مشابه شبیه به Make منتهی جدیدتر و با فرمت Yaml که با زبان Go ساخته شده.

#Makefile #Task #Taskfile #Tools #GNU #GoLang #Go #Build #Workflow #Yaml

https://taskfile.dev
👍21🔥1
🔵 عنوان مقاله
How We Avoided Side-Channels in Our New Post-Quantum Go Cryptography Libraries

🟢 خلاصه مقاله:
ما دو کتابخانه امضای دیجیتال پساکوانتومی برای Go معرفی می‌کنیم: ml-dsa مطابق FIPS-204 و go-slh-dsa مطابق FIPS-205. تمرکز اصلی—فراتر از درستی و کارایی—کاهش خطر کانال‌های جانبی بوده است. برای این منظور، جریان کنترل و الگوهای دسترسی به حافظه را مستقل از راز نگه داشتیم، مسیر اجرای یکنواخت ایجاد کردیم و مقادیر میانی حساس را با دقت مدیریت و پاک‌سازی کردیم. در پیاده‌سازی‌ها از شاخه‌زنی و جداول وابسته به داده‌های محرمانه پرهیز شده، مقایسه‌ها و کاهش‌ها به‌صورت ثابت‌زمان انجام می‌شوند و رابط‌های برنامه‌نویسی طوری طراحی شده‌اند که استفاده امن به‌طور پیش‌فرض برقرار باشد. امضا به‌صورت مطابق استاندارد و تعیین‌گر پیاده‌سازی شده تا تکیه بر تصادفی‌سازی محیطی و تنوع زمانی کاهش یابد. آزمون‌های آماری و تفاضلی برای رفتار ثابت‌زمان، تست‌های property-based و فازینگ روی معماری‌های مختلف انجام شده و در بازبینی کد، هم درستی رمزنگاری و هم رفتار ریزمعماری بررسی شده است. حاصل، دو کتابخانه Go برای ML-DSA و SLH-DSA است که گزینه‌های عملی و مقاوم در برابر کانال جانبی برای امضای پساکوانتومی در اختیار توسعه‌دهندگان قرار می‌دهند.

#PostQuantum #Cryptography #GoLang #SideChannel #FIPS204 #FIPS205 #MLDSA #SLHDSA

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


👑 @gopher_academy
🔵 عنوان مقاله
Context-Aware Dialer Methods Coming to Go 1.26

🟢 خلاصه مقاله:
** این تغییر که نخستین‌بار چهار سال پیش مطرح شد، قرار است در Go 1.26 و اوایل 2026 به net.Dialer اضافه شود و «متدهای شبکه‌محورِ مبتنی بر context» را به‌صورت رسمی در اختیار قرار دهد. با این کار، برقراری اتصال برای شبکه‌های خاص (مثل TCP/UDP) با رعایت لغو شدن‌ها و ضرب‌الاجل‌های context به‌صورت یکپارچه انجام می‌شود. تغییرات افزایشی است و سازگاری گذشته حفظ می‌شود؛ کدهای فعلی بدون تغییر کار می‌کنند و پروژه‌هایی که کنترل دقیق‌تری می‌خواهند می‌توانند از متدهای جدید استفاده کنند.

#golang #go126 #netDialer #context #networking #gostdlib #apiDesign

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


👑 @gopher_academy
2
🔵 عنوان مقاله
Boxes and Glue v0.1.10

🟢 خلاصه مقاله:
کتابخانه Boxes and Glue v0.1.10 برای تولید PDF در محیط Go طراحی شده و با تکیه بر الگوریتم‌های TeX و مدل box-and-glue، چیدمان دقیق متن، شکستن خط و فاصله‌گذاری قابل پیش‌بینی را فراهم می‌کند. این ابزار امکان ترکیب صفحه و تولید PDF را به‌صورت برنامه‌نویسی‌شده داخل اکوسیستم Go می‌دهد و برای ساخت گزارش‌ها، فاکتورها و مستندات فنی با خروجی پایدار و قابل بازتولید مناسب است. نسخه v0.1.10 نشان می‌دهد پروژه در حال رشد است، اما همین حالا نیز برای تولید خروجی با کیفیت بالا قابل استفاده بوده و با هدف آوردن اصول محکم حروف‌چینی TeX به جریان کاری سبک و کارای Go توسعه می‌یابد.

#Go #PDF #TeX #Typesetting #GoLang #DocumentRendering #LayoutEngine #DevTools

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


👑 @gopher_academy
4
🔵 عنوان مقاله
Go Turns Sixteen Years Old

🟢 خلاصه مقاله:
Go شانزده‌سالگی خود را جشن می‌گیرد؛ شانزده سال از متن‌باز شدن آن می‌گذرد و این نقطه عطف فرصتی است برای مرور پیشرفت‌ها و نگاه به آینده. در یک «گزارش کوتاه از وضعیت Go»، Austin به بهبودهای مستمر در هسته زبان و کتابخانه استاندارد اشاره می‌کند؛ تغییراتی که با حفظ سادگی و پایداری، قابلیت‌ها را دقیقاً در جاهای مهم ارتقا می‌دهند.

هم‌زمان، تمرکز پررنگی روی بهبود DX دیده می‌شود: ابزارها و جریان‌های کاری روان‌تر شده‌اند و تجربه توسعه روزمره سریع‌تر و ثمربخش‌تر پیش می‌رود. علاوه بر این، تغییرات مرتبط با MCP نیز در راه‌اند که امکان یکپارچه‌سازی بهتر ابزارها و فرآیندها را مطابق نیازهای تیم‌های مدرن فراهم می‌کنند.

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

#Go #Golang #OpenSource #DeveloperExperience #DX #MCP #Gophers

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


👑 @gopher_academy
4
🔵 عنوان مقاله
Rust vs Go: Memory Management

🟢 خلاصه مقاله:
اGo و Rust دو رویکرد متفاوت به مدیریت حافظه دارند: Go با تکیه بر GC توسعه را ساده و سریع می‌کند اما هزینه‌هایی مثل سربار زمان اجرا، نوسان تأخیر و مصرف حافظه بالاتر دارد؛ Rust با مدل ownership/borrowing و بدون GC به بهای یادگیری سخت‌تر و کدنویسی دقیق‌تر، کارایی پایدار، تأخیر قابل پیش‌بینی و ردپای حافظه کمتر ارائه می‌دهد. نتیجه عملی که vpoltora جمع‌بندی می‌کند این است: Go زمان توسعه شما را همین حالا ذخیره می‌کند و Rust زمان CPU را در ادامه. انتخاب بین آن‌ها به اهداف کارایی و تأخیر، هزینه‌های عملیاتی و مهارت تیم بستگی دارد.

#Rust #Golang #MemoryManagement #Performance #GarbageCollection #Ownership #Concurrency

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


👑 @gopher_academy
👍3
🔵 عنوان مقاله
Profiling Go Programs with pprof and k6

🟢 خلاصه مقاله:
**این مقاله از Golang Weekly یک روند عملی برای بهینه‌سازی عملکرد سرویس‌های Go ارائه می‌کند: با k6 بار واقعی و سناریوهای قابل‌اسکریپت ایجاد می‌شود و هم‌زمان با pprof پروفایل‌های CPU، heap، goroutine، mutex و block گرفته می‌شود تا گلوگاه‌ها دقیق شناسایی شوند. مراحل پیشنهادی شامل فعال‌سازی امن pprof، اجرای سناریوی k6 تا رسیدن به بار هدف، برداشت پروفایل‌ها در حالت پایدار، تحلیل با go tool pprof (top، گراف، UI)، و سپس اعمال بهینه‌سازی‌ها مثل کاهش تخصیص‌ها، کاهش کپی و reflection، کاهش رقابت روی قفل‌ها و رفع نشتی goroutine است. با اجرای دوباره همان سناریو و مقایسه پروفایل‌ها، اثربخشی تغییرات سنجیده می‌شود. نتیجه: k6 علائم را نشان می‌دهد و pprof علت را؛ این ترکیب فرآیند بهبود عملکرد را تکرارپذیر و مبتنی بر داده می‌کند.

#Go #Golang #pprof #k6 #Performance #LoadTesting #Profiling #Observability

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


👑 @gopher_academy
2