Gopher Academy
3.33K subscribers
923 photos
40 videos
280 files
2.07K links
🕸 Gopher Academy

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

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

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
forked and taken over maintenance of the yaml package.

🟢 خلاصه مقاله:
این خبر از Golang Weekly می‌گوید که بسته پرکاربرد YAML در اکوسیستم Go فورک شده و نگه‌داری آن به گروه/افراد جدیدی سپرده شده است. هدف اصلی، حفظ سازگاری API و هم‌زمان افزایش سرعت در رفع باگ‌ها و به‌روزرسانی‌های امنیتی است. توصیه می‌شود تیم‌ها go.mod را بررسی کنند، مسیر ماژول و یادداشت‌های انتشار فورک را بخوانند و در صورت مهاجرت، با پین‌کردن نسخه‌ها و اجرای تست‌ها از عدم تغییر در رفتار پارسینگ اطمینان حاصل کنند. اگر فعلاً مهاجرت نمی‌کنید، نسخه پایدار قبلی را پین کنید و هر دو مخزن را برای هشدارهای امنیتی و تغییرات سازگاری زیر نظر داشته باشید.

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


👑 @gopher_academy
1
Forwarded from AI Labdon
🤖 علاقه‌مند به دنیای هوش مصنوعی هستی؟

🏖 دنبال می‌کنی که چطور AI داره دنیا رو متحول می‌کنه؟

🍻پس جای درستی اومدی!

🎯 در کانال ما هر روز:

🔍 جدیدترین اخبار و دستاوردهای دنیای AI

🧠 تحلیل‌ تخصصی در حوزه یادگیری ماشین، دیپ لرنینگ و مدل‌های زبانی

💼 بررسی کاربردهای هوش مصنوعی در پزشکی، صنعت، آموزش، امنیت و اقتصاد

🛠 معرفی ابزارها، دوره‌ها و منابع یادگیری

📈 بررسی ترندها و آینده‌ فناوری‌های مرتبط با هوش مصنوعی

🍄همه‌ی این‌ها به زبان ساده، خلاصه و قابل فهم برای همه علاقه‌مندان — از مبتدی تا حرفه‌ای!
👇👇👇👇👇👇

https://t.iss.one/ai_labdon
🔵 عنوان مقاله
Default Methods in Go

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

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


👑 @gopher_academy
2
🔵 عنوان مقاله
Benchmarking Different Go SQLite Drivers (Again)

🟢 خلاصه مقاله:
به‌روزرسانی تازه‌ای از بنچمارکی که عملکرد درایورهای SQLite در زبان Go را می‌سنجد منتشر شده و ۹ گزینه را در سناریوهای مختلف مقایسه می‌کند؛ نتایج نشان می‌دهند در برخی وضعیت‌ها تفاوت‌ها چشمگیر است. با این حال، نویسنده تأکید می‌کند که اعداد بنچمارک باید با نگاه انتقادی و بسته به بارکاری و محیط هر پروژه تفسیر شوند و بهتر است برای تصمیم‌گیری، آزمون‌ها روی سخت‌افزار و الگوی کاری خودتان تکرار شوند.

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


👑 @gopher_academy
🔥1
🎙️ عنوان پادکست:
The s in "golang" stands for security and an interview with George Adams from Microsoft
خلاصه پادکست:
این قسمت با محور امنیت در دنیای Go پیش می‌رود: انتشار نسخه‌های نگهداری Go 1.24.6 و 1.23.12 و ضرورت به‌روزرسانی سریع، بررسی «بیلد مایکروسافت از Go» و نقش تله‌متری در بهبود ابزارها و پاسخ‌گویی به نیازهای سازمانی، و معرفی ایده «آزمایش جهشی در سطح اسمبلی» برای محکم‌تر کردن تست‌ها. در خبرهای زنجیره تأمین، به کشف حمله‌ای مرتبط با ماژول MongoDB توسط GitLab اشاره می‌شود و بر رعایت بهداشت وابستگی‌ها (بررسی checksum، پین‌کردن نسخه‌ها و تکیه بر بیلدهای بازتولیدپذیر) تأکید می‌گردد....
🤝2
🎙️ عنوان پادکست:
🚧 Go Improvement: 🫸 waitgroup.Go, json/v2, 🐍 new features for cobra apps, with Jeremy Foran
خلاصه پادکست:
این قسمت با حضور جرمی فورن درباره بهبودهای عملی در توسعه روزمره Go است: از الگوی ساده‌تر راه‌اندازی گوروتین با waitgroup.Go تا مزیت‌های بسته json/v2 و ویژگی‌های تازه برای ساخت اپ‌های خط فرمان با Cobra. در بخش خبرها به انتشار نسخه ۲ SDK ان‌گروک برای Go، تور تعاملی Go 1.25 از آنتون ژیانوف و مرور تحول JSON از v1 به v2، همچنین ای‌بوک رایگان «سریال‌سازی داده‌ها در Go» و بنچمارک‌های جدید اشاره می‌شود....
🔥1
🔵 عنوان مقاله
Flaggy 1.6: Idiomatic Go Command Line Input Parsing

🟢 خلاصه مقاله:
Flaggy 1.6 یک کتابخانه Go برای پارس کردن ورودی خط فرمان به‌صورت مطابق با الگوهای رایج Go است. از زیر‌فرمان‌ها، مقادیر موقعیتی و قرار گرفتن فلگ‌ها در هر جای خط فرمان پشتیبانی می‌کند. هیچ وابستگی خارجی ندارد و شما را به الگوی خاصی از چیدمان پروژه یا پکیج ملزم نمی‌کند.

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


👑 @gopher_academy
2👍2
🔵 عنوان مقاله
force Claude Code to loop over and over

🟢 خلاصه مقاله:
در یک آزمایش تکراری با یک دستیار کدنویسی، زبانی «شبیه Go» با پوسته‌ای از اصطلاحات نسل Z ساخته شد که Cursed نام گرفت. این زبان با وجود ظاهر شوخ‌طبعانه‌اش، عملاً کار می‌کند و از طریق LLVM به باینری‌های بومی کامپایل می‌شود. پروژه نشان می‌دهد می‌توان با چرخه‌های بازخورد متوالیِ هوش مصنوعی، از ایده تا یک زنجیره ابزار کامپایلر قابل استفاده پیش رفت.

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


👑 @gopher_academy
🤝1
🔵 عنوان مقاله
Retro AIM Server: A Way to Get AIM and ICQ Working Again?

🟢 خلاصه مقاله:
یک پروژه کوچک و کنجکاوی‌برانگیز است که با یک سرور خودمیزبان نوشته‌شده با Go، امکان اتصال دوباره کلاینت‌های قدیمی AIM و ICQ را فراهم می‌کند تا بتوانند خارج از سرویس‌های رسمی از کارافتاده، دوباره وارد شوند و چت کنند. کاربردش بیشتر برای نوستالژی، حفظ تاریخ دیجیتال و آزمایش است: می‌توانید یک شبکه خصوصی سبک برای دوستان، کلاس یا نمایشگاه راه بیندازید و حال‌وهوای پیام‌رسانی اوایل دهه ۲۰۰۰ را تجربه کنید. این ابزار به اندازه لازم از پروتکل‌های قدیمی را پیاده‌سازی می‌کند و به‌دلیل قابل‌حمل بودن Go، روی لپ‌تاپ، سرور خانگی یا فضای ابری به‌راحتی اجرا می‌شود. محدودیت‌ها: به شبکه‌های اصلی AOL/ICQ وصل نمی‌شود، سازگاری به نسخه کلاینت‌ها وابسته است و از نظر امنیتی بیشتر جنبه آموزشی/تفننی دارد، نه تولیدی.

#GoLang #AIM #ICQ #RetroTech #InstantMessaging #OpenSource #SelfHosted

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


👑 @gopher_academy
👍1
🔵 عنوان مقاله
GitHub's Dependabot now supports

🟢 خلاصه مقاله:
** GitHub قابلیت جدیدی به Dependabot اضافه کرده تا اکنون بتواند Go modules را از private registries نیز به‌صورت خودکار به‌روزرسانی کند. این تغییر برای تیم‌هایی که ترکیبی از پکیج‌های عمومی و داخلی دارند مهم است، چون دیگر مدیریت نسخه‌های داخلی دستی یا با ابزارهای سفارشی انجام نمی‌شود و کل گراف وابستگی‌ها پوشش داده می‌شود. با پیکربندی dependabot.yml و افزودن اطلاعات دسترسی به رجیستری خصوصی، Dependabot می‌تواند برای به‌روزرسانی‌ها Pull Request بسازد و انتشار وصله‌های امنیتی را به کدهای وابسته تسهیل کند. Blake Gentry جزئیات پیکربندی، نمونه‌ها و نکات رفع اشکال را نیز توضیح می‌دهد.

#Dependabot #GitHub #Go #Golang #PrivateRegistry #DependencyManagement #SoftwareSupplyChain #Security

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


👑 @gopher_academy
🔵 عنوان مقاله
graphics.gd: Use Go with the Godot Game Engine

🟢 خلاصه مقاله:
اGodot یک موتور محبوب برای ساخت بازی‌های 2D و 3D است و با وجود شباهت نام، ربطی به Go ندارد. پروژه graphics.gd پلی میان این دو می‌زند: یک لایه runtime و ابزار فراهم می‌کند تا بتوانید منطق بازی و اپ را با Go بنویسید و هم‌زمان از امکانات و گردش‌کار Godot بهره ببرید. این رویکرد، ویژگی‌های کراس‌پلتفرم Godot را حفظ می‌کند و اکنون حتی امکان ساخت اپ‌های iOS با Go را نیز فراهم کرده است. نتیجه، مسیری عملی برای توسعه‌دهندگان Go و کاربران Godot است که می‌خواهند کدنویسی را با Go انجام دهند بی‌آن‌که از مزیت‌های خود Godot چشم‌پوشی کنند.

#Go #Godot #Golang #GameDev #iOS #Bindings #CrossPlatform #OpenSource

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


👑 @gopher_academy
🔥1
🔵 عنوان مقاله
Using Go Channels to Solve Interface Impedance Mismatch

🟢 خلاصه مقاله:
استفاده از Go Channels برای رفع ناسازگاری بین رابط‌ها
این یادداشت نشان می‌دهد که چگونه می‌توان از Go Channels نه برای همزمانی، بلکه به‌عنوان یک لایه تطبیق سبک استفاده کرد. Zach Musgrave توضیح می‌دهد که در مواجهه با “interface impedance mismatch”—جایی که یک API داده را به‌صورت push می‌دهد و دیگری آن را به‌صورت pull مصرف می‌کند، یا یکی جریان‌محور است و دیگری تکرارشونده—یک Channel می‌تواند به‌عنوان بافری خنثی، این دو جهان را بدون تغییرات اساسی در کد به هم متصل کند. در این الگو، تولیدکننده در همان جریان اجرای عادی داده‌ها را داخل Channel می‌گذارد و مصرف‌کننده با الگوی خواندن رایج از روی Channel آن‌ها را برمی‌دارد؛ نیازی به goroutine یا معماری همزمانی پیچیده نیست. مزیت‌ها شامل جداسازی بهتر، ساده‌سازی تبدیل بین رابط‌ها، و تست‌پذیری بالاتر است؛ با این احتیاط‌ها که اندازه بافر معقول انتخاب شود و استفاده غیرهمزمانی از Channel به‌وضوح مستند گردد. پیام اصلی: Channels فقط برای همزمانی نیستند؛ آن‌ها یک واسط ترکیبی مفید برای آشتی دادن APIها—به‌ویژه در تبدیل push/pull و جریان/تکرار—هستند.

#Go #Golang #Channels #APIDesign #InterfaceImpedanceMismatch #SoftwareEngineering #DesignPatterns #GoTips

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


👑 @gopher_academy
🔵 عنوان مقاله
GopherCon 2025 Go Contributor Summit Notes

🟢 خلاصه مقاله:
در GopherCon 2025 جمع زیادی از مشارکت‌کنندگان Go گرد هم آمدند و درباره مدیریت وابستگی‌ها، روند بررسی و پذیرش پیشنهادهای زبانی، کارایی و الگوهای بهینه در cgo، امنیت و پیاده‌سازی WebAuthn، وضعیت فازینگ و پوشش تست، و هدف‌گیری WebAssembly (و حتی به‌صورت گذرا JVM) گفتگو کردند. محورهای اصلی شامل بهبود reproducible builds و امنیت در اکوسیستم ماژول‌ها، شفاف‌تر و کارآمدتر شدن فرآیند پروپوزال‌ها با درس‌آموخته‌های generics و حفظ سازگاری عقب‌رو، کاهش سربار مرز Go/C در cgo، بلوغ فازینگ و پوشش در CI، و چالش‌های Wasm/WASI مانند اندازه باینری، زمان راه‌اندازی و async بود. هرچند یادداشت‌ها خام‌اند، اما جهت‌گیری‌ها، اولویت‌ها و سوالات باز را روشن می‌کنند و انتظار می‌رود با مسائل پیگیری، اسناد طراحی و دعوت به بازخورد از سوی جامعه ادامه یابد.

#Go #GopherCon #cgo #WebAuthn #WebAssembly #Fuzzing #DependencyManagement #OpenSource

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


👑 @gopher_academy
🔵 عنوان مقاله
How to Implement the Outbox Pattern in Go and Postgres

🟢 خلاصه مقاله:
** این مقاله توضیح می‌دهد چگونه با الگوی Outbox در کنار Go و Postgres، مشکل دو‌نوشتن را حل کنیم و ارسال رویدادها را قابل‌اعتماد کنیم. ایده اصلی این است که در یک تراکنش واحد، هم تغییرات دامنه و هم رکورد مربوط به رویداد در جدول outbox ذخیره شود تا یا هر دو باهم انجام شوند یا هیچ‌کدام. سپس یک پردازشگر پس‌زمینه رکوردهای معوق را با SELECT … FOR UPDATE SKIP LOCKED برداشته، آن‌ها را به سامانه‌ای مثل Kafka یا RabbitMQ یا یک وب‌هوک ارسال می‌کند و وضعیت‌شان را به processed تغییر می‌دهد.

نکات کلیدی پیاده‌سازی شامل: طراحی جدول outbox با فیلدهایی مانند type، payload (معمولاً JSON)، status، retry_count و زمان‌ها؛ پوشش هر دو عملیات (نوشتن دامنه و درج outbox) در یک تراکنش؛ پیاده‌سازی worker در Go برای برداشت دسته‌ای، ارسال، ثبت موفقیت/خطا و بازآزمایی با backoff؛ تکیه بر تحویل حداقل-یک‌بار همراه با مصرف‌کننده‌های idempotent برای مدیریت تکرار؛ و پایش شاخص‌هایی مثل تأخیر برداشت و نرخ شکست. برای بهینگی عملیاتی، پاکسازی دوره‌ای رکوردهای پردازش‌شده، ایندکس‌گذاری مناسب، رسیدگی به پیام‌های مشکل‌دار (dead-letter) و حفظ ترتیب رویدادها در سطح aggregate ضروری است. ترکیب polling با LISTEN/NOTIFY در Postgres می‌تواند زمان واکنش را بهتر کند. نتیجه، راهکاری ساده و مقیاس‌پذیر است که بدون تراکنش‌های توزیع‌شده، قابلیت اتکا را در معماری رویدادمحور فراهم می‌کند.

#OutboxPattern #Go #Postgres #Microservices #EventDriven #TransactionalOutbox #Messaging #Reliability

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


👑 @gopher_academy
2
🔵 عنوان مقاله
It's Survey Time! The 2025 Go Developer Survey is Live

🟢 خلاصه مقاله:
** نظرسنجی 2025 Go Developer Survey آغاز شده و Go team طبق روال دوره‌ای برای تعیین اولویت‌های بعدی از جامعه بازخورد می‌گیرد. این نظرسنجی به تصمیم‌ها درباره زبان، ابزارها، مستندات و اکوسیستم کمک می‌کند. مهلت شرکت کوتاه است و تا September 30 ادامه دارد—اگر با Go کار می‌کنید یا به آن علاقه‌مندید، همین حالا مشارکت کنید و خبرش را به دیگران هم برسانید.

#Go #Golang #DeveloperSurvey #GoCommunity #2025 #Programming #OpenSource #DevTools

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


👑 @gopher_academy
4
📢 اگر تلگرام پرمیوم دارید، کانال ما رو Boost کنید ! 🚀

با Boost کردن کانال، به رشد و دیده شدن ما بیشتر کمک کنید💙

https://t.iss.one/boost/gopher_academy
1🍾1
🔵 عنوان مقاله
Memory Allocation in Go

🟢 خلاصه مقاله:
مدیریت و تخصیص کارای حافظه، پایه‌ی عملکرد و پایداری برنامه‌های Go است. این مقاله با مجموعه‌ای از نمودارهای روشن، پشت‌پرده‌ی تخصیص حافظه در Go را شرح می‌دهد: از نحوه‌ی درخواست حافظه از سیستم‌عامل و سازمان‌دهی آن در runtime تا تعامل آن با garbage collector و تأثیر الگوهای تخصیص بر فشار GC، تأخیر و کارایی. هدف مقاله ایجاد یک مدل ذهنی عملی است تا—even با تکیه بر پیش‌فرض‌های منطقی Go—بتوانید بهتر پروفایل‌ها را بخوانید، درباره‌ی تأخیر نتیجه‌گیری کنید و از تله‌های رایج عملکردی دور بمانید.

#Go #Golang #MemoryManagement #GarbageCollection #Performance #GoRuntime #SystemsProgramming

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


👑 @gopher_academy
🔥3
🔵 عنوان مقاله
Google Gen AI Go SDK v1.25.0

🟢 خلاصه مقاله: ا
اSDK جدید Google Gen AI Go SDK v1.25.0 یک کتابخانه آماده‌ٔ تولید است که ادغام مدل‌های مولد Google مثل Gemini را از طریق Gemini API و Vertex AI در برنامه‌های نوشته‌شده با Go آسان می‌کند. این SDK احراز هویت با API key یا Google Cloud credentials، انتخاب مدل، مدیریت prompt و پاسخ، استریم خروجی، تنظیمات ایمنی و دستورالعمل‌های سیستمی را ساده می‌سازد و با الگوهای رایج Go مثل context.Context سازگار است. برای ساخت دستیارهای گفتگو، تولید محتوا و کد، خلاصه‌سازی و پرسش‌وپاسخ روی اسناد کاربرد دارد. نسخه v1.25.0 بهبودهای پایداری و کارایی و تجربهٔ توسعه‌دهنده را ارائه می‌دهد و با نسخه‌های جدید Gemini و کاتالوگ Vertex AI همسو شده است؛ برای جزئیات، مراجعه به release notes توصیه می‌شود.

#Go #Golang #GenerativeAI #Google #Gemini #VertexAI #SDK #AIIntegration

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


👑 @gopher_academy
2🔥1
اخیراً فرصتی شد که سراغ Goravel برم و کمی باهاش کار کنم.
فریموورک Goravel در واقع یک فریم‌ورک شبیه به Laravel اما برای زبان Go هست. چیزی که برام خیلی جالب بود اینه که دقیقا همون حس و حال لاراول رو منتقل می‌کنه؛ از ساختار پوشه‌ها گرفته تا ORM به سبک Eloquent، migrationها و حتی سیستم queue و job.
اگر قبلاً با Laravel کار کرده باشید، ورود به Goravel خیلی راحت میشه و می‌تونید سریع پروژه‌هاتون رو توی Go استارت بزنید. سرعت بالای Go هم در کنار معماری آشنا و تمیز لاراول باعث میشه تجربه جذابی باشه.
به نظرم برای کسایی که دنبال قدرت و سرعت Go هستن ولی در عین حال نمی‌خوان از دنیای راحتی و productivity لاراول جدا بشن، Goravel می‌تونه انتخاب خیلی خوبی باشه.
لینک پروژه:
https://goravel.dev

<ehsan moradi/>
🐳1🍾1👨‍💻1
🔵 عنوان مقاله
Observe Live SQL Queries in Go with DTrace

🟢 خلاصه مقاله:
این مطلب از Golang Weekly نشان می‌دهد چطور با استفاده از DTrace بدون تغییر کد و توقف سرویس، کوئری‌های SQL را در برنامه‌های Go به‌صورت زنده مشاهده کنیم. نویسنده با معرفی کوتاهی از DTrace به‌عنوان یک ابزار ردیابی پویا و کم‌سربار، قدم‌به‌قدم نحوه راه‌اندازی روی سیستم‌عامل‌های پشتیبانی‌شده، اتصال به پردازه در حال اجرا و نوشتن اسکریپت‌های ساده برای دیدن متن کوئری، زمان اجرا و الگوهای فراوانی را توضیح می‌دهد؛ همراه با فیلترگذاری برای محدود کردن خروجی به سرویس/کاربر/درایور موردنظر و نکاتی برای حفظ سربار کم.

کاربرد این روش، عیب‌یابی سریع مسائلی مثل کوئری‌های کند، الگوهای N+1، شاخص‌های مفقود و ORM پرحرف در شرایط واقعی تولید است. این رویکرد مکمل لاگ‌ها و APM است و امکان تشخیص فوری و تأیید سریع اصلاحات را می‌دهد. در بخش ملاحظات، به تفاوت پشتیبانی پلتفرم‌ها (مثل FreeBSD و برخی نسخه‌های macOS؛ و پیشنهاد eBPF روی Linux)، نیاز به دسترسی‌های بالا، حساسیت داده‌های متنی کوئری و ضرورت سنجش سربار در محیط staging اشاره می‌شود.

#Go #DTrace #SQL #Observability #Performance #GolangWeekly #eBPF #Database

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


👑 @gopher_academy
🔥2