Gopher Academy
3.84K subscribers
933 photos
42 videos
280 files
2.22K links
🕸 Gopher Academy

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

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

ادمین:
@mrbardia72
Download Telegram
🎙️ عنوان پادکست:
🚫 Go team says no, what is HTTP error 407, and do you need DI frameworks
خلاصه پادکست:
این جمع‌بندی به چند خبر مهم از دنیای Go می‌پردازد: انتشار نسخه‌های نگه‌داری Go 1.24.4 و 1.23.10، تغییر مهمی در net/http (commit 4d1c255) برای حذف هدرهای حساس پروکسی هنگام Redirect، و توضیح کاربردی درباره HTTP 407 (Proxy Authentication Required) که معمولاً در شبکه‌های دارای پروکسی رخ می‌دهد. در بحث خطا، با اشاره به گفت‌وگوی Robert Griesemer، تیم Go بار دیگر با افزودن نحو جدید برای Error Handling مخالفت می‌کند و بر بازگشت‌های صریح خطا تأکید دارد....
1👍1
🎙️ عنوان پادکست:
Metal! 🤘 Bare metal go, config libs, building response writers
خلاصه پادکست:
** این قسمت با حال‌وهوای «Metal! 🤘» به Go روی سخت‌افزار بدون سیستم‌عامل می‌پردازد: هدف و کاربردهای GOOS=none برای هدف‌های freestanding، محدودیت‌های runtime و کار در نبود syscalls. در خبرها، به انتشار GCC 15.1 با پشتیبانی از COBOL اشاره می‌شود و موضوع «os: Root permits access to parent directory» به‌عنوان هشداری درباره لبه‌های امنیتی در مدیریت مسیرها بررسی می‌شود. سپس معیارهای یک کتابخانه پیکربندی «ارگونومیک» (API قابل‌کشف، ایمنی نوع، لایه‌بندی env/فایل/فلگ، hot reload و پیش‌فرض‌های معقول) و خطاهای رایج مرور می‌شود....
22
🔵 عنوان مقاله
go-rest-api-example: Template for an Enterprise-Ready REST API Microservice

🟢 خلاصه مقاله:
پروژه go-rest-api-example یک قالب آماده برای ساخت Microserviceهای REST API در سطح Enterprise است. این Boilerplate با هدف راه‌اندازی سریع و استاندارد یک سرویس تولیدی ارائه شده و با نگه‌داری منظم به‌روز می‌شود. نسخه این هفته با Go 1 یکپارچه شده تا با ابزارها و جریان‌های کاری فعلی سازگار باشد و پایه‌ای پایدار برای توسعه فراهم کند.

#Go #Golang #RESTAPI #Microservices #Boilerplate #Backend #API #SoftwareEngineering

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


👑 @gopher_academy
👍2
🔵 عنوان مقاله
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
🔵 عنوان مقاله
Canvas: Vector Graphics Drawing Library

🟢 خلاصه مقاله:
Canvas یک کتابخانه عمومی مبتنی بر canvas برای ترسیم گرافیک برداری است که با یک API یکدست می‌تواند خروجی‌هایی مانند SVG، PDF و تصاویر raster تولید کند و از طریق WebAssembly روی وب نیز اجرا شود. این پروژه مجموعه‌ای بزرگ از نمونه‌برنامه‌ها دارد که استفاده عملی از API و قابلیت‌های کلیدی آن را نشان می‌دهند و شروع کار و اقتباس الگوهای رایج را ساده می‌کنند. مزیت اصلی Canvas ثبات مدل ترسیم در همه اهداف خروجی است؛ بنابراین می‌توانید یک بار منطق رسم را بنویسید و همان کد را برای تولید SVG، PDF یا raster به کار ببرید و حتی همان تجربه را در مرورگر با WebAssembly داشته باشید.

#VectorGraphics #Canvas #SVG #PDF #WebAssembly #GraphicsLibrary #CrossPlatform #APIExamples

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


👑 @gopher_academy
1
Forwarded from AI Labdon
♨️ مصرف برق OpenAI در حد یک کشور!
نگرانی جهانی از ابر دیتاسنتر جدید سام آلتمن

▪️سم آلتمن اعلام کرده OpenAI تا سال 2033 قصد دارد ظرفیت محاسباتی خودش را به ۲۵۰ گیگاوات برساند؛ عددی که برای تأمینش تقریباً به اندازه مصرف برق کل کشور هند با جمعیت ۱.۵ میلیارد نفر انرژی لازم است!

▪️این سطح مصرف یعنی حجم عظیمی از انتشار دی‌اکسیدکربن؛ حتی دو برابر میزان کربنی که غول نفتی ExxonMobil در یک سال منتشر می‌کند.

▪️طبق برآوردها، این ظرفیت قرار است میزبان ۶۰ میلیون پردازنده‌ی گرافیکی GB300 انویدیا باشد. یعنی OpenAI باید سالانه حدود ۳۰ میلیون GPU سفارش بدهد تا این زیرساخت غول‌پیکر همیشه روشن بماند!
3
🔵 عنوان مقاله
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
Forwarded from Database Labdon
🔵 عنوان مقاله
Did You Know Postgres Tables are Limited to 1,600 Columns?

🟢 خلاصه مقاله:
اگر نمی‌دانستید، در Postgres هر جدول حداکثر ۱۶۰۰ ستون می‌تواند داشته باشد. این یک محدودیت سخت در هسته سیستم است و با NULL بودن فیلدها یا TOAST دور زده نمی‌شود. اگر شماره issue 226 در سال 2017 را خوانده باشید، احتمالاً این نکته را به خاطر دارید. این سقف به معنای آن است که طراحی‌هایی با جدول‌های بسیار عریض—مثل هر شاخص یک ستون یا طرح‌های EAV تثبیت‌شده—به‌سرعت به حد می‌خورند. راه‌حل‌های بهتر شامل نرمال‌سازی، تفکیک عمودی، تبدیل ستون‌ها به سطرها برای سنجه‌ها، یا استفاده از JSONB برای ویژگی‌های کم‌استفاده و پراکنده است. جدول‌های خیلی عریض علاوه بر ریسک رسیدن به سقف، هزینه I/O و نگهداری را بالا می‌برند. نتیجه عملی: با در نظر گرفتن حد ۱۶۰۰ ستون، از طرح‌های باریک‌تر و انعطاف‌پذیرتر استفاده کنید و قبل از اعمال مهاجرت‌ها، تعداد ستون‌ها را بررسی کنید.

#Postgres #PostgreSQL #SQL #DatabaseDesign #DataModeling #SchemaDesign #JSONB #SoftwareEngineering

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


👑 @Database_Academy
🔵 عنوان مقاله
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
🔵 عنوان مقاله
Bleve: A Modern Indexing and Search Library

🟢 خلاصه مقاله:
** Bleve یک کتابخانه قدیمی و قابل اتکا برای ایندکس‌گذاری و جست‌وجو است که از تمرکز صرف بر جست‌وجوی متنی فراتر رفته و به یک راهکار مدرن و چندمنظوره تبدیل شده است. اکنون علاوه بر متن، از اعداد، داده‌های تاریخ و زمان، بردارها و جست‌وجوی مکانی نیز پشتیبانی می‌کند و امکان اجرای پرس‌وجوهای متنوعی مانند فیلترهای عددی و زمانی، جست‌وجوی شباهت برداری و پرس‌وجوهای مکانی (مثل محدوده، شعاع و چندضلعی) را فراهم می‌سازد. این قابلیت‌ها در قالب یک API یکپارچه ارائه می‌شوند تا توسعه‌دهندگان بدون چندپارچگی ابزارها، تجربه‌های جست‌وجوی غنی بسازند. یک مثال سریع هم نحوه ساخت ایندکس، افزودن اسناد و اجرای انواع پرس‌وجوها را به‌سادگی نشان می‌دهد.

#Bleve #Search #Indexing #FullTextSearch #VectorSearch #Geospatial #InformationRetrieval

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


👑 @gopher_academy
🔵 عنوان مقاله
Google's Agent Development Kit (ADK) for Go

🟢 خلاصه مقاله:
** گوگل نسخه Go از Agent Development Kit (ADK) را عرضه کرده است؛ کیتی که پیش‌تر برای Python و Java در دسترس بود و برای ساخت و استقرار عامل‌های هوش مصنوعی به‌کار می‌رود. ADK با حذف بخش بزرگی از کدنویسی تکراری در ارکستراسیون و ترکیب گردش‌کار عامل‌ها، توسعه را ساده می‌کند. این چارچوب هم از نظر مدل (model-agnostic) و هم از نظر استقرار (deployment-agnostic) مستقل است، بنابراین می‌توان آن را با LLMهای مختلف و در محیط‌های ابری، داخلی یا لبه اجرا کرد. همچنین با فریم‌ورک‌های دیگر سازگار است و امکان پذیرش تدریجی در کنار پشته‌های موجود را می‌دهد. برای تیم‌های Go، این پشتیبانی یک مسیر سازگار و منعطف برای ساخت عامل‌ها فراهم می‌کند، بدون قفل‌شدن به مدل یا زیرساخت خاص.

#Google #ADK #Go #AI #Agents #Python #Java #DeveloperTools

🟣لینک مقاله:
https://golangweekly.com/link/176899/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
🔵 عنوان مقاله
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