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
🔵 عنوان مقاله
'GoLand Can Do That?' Ten Secret Superpowers You Might Not Know

🟢 خلاصه مقاله:
** خلاصه فارسی: این مجموعه با عنوان «‏GoLand می‌تواند این کار را بکند؟ ده توانایی مخفی که شاید ندانید» بر ویژگی‌های کمترشناخته‌شده‌ی GoLand تمرکز دارد که بهره‌وری برنامه‌نویسان Go را بالا می‌برد. در ادامه، جان آرندل با استفاده از مسئله‌ی «فیلسوفان غذاخور» چالش‌های هم‌زمانی در Go—مانند بن‌بست، گرسنگی و شرایط رقابتی—را به‌صورت مفهومی و عملی بررسی می‌کند. همچنین آنیس سواعد به‌صورت انتقادی تجربه‌ی مهاجرت از Docker به Podman را مرور می‌کند و مزایا و ملاحظات این تغییر را از منظر کارکرد، سازگاری و جریان کار توضیح می‌دهد. در مجموع، این مطالب—with مشارکت جان آرندل، آنیس سواعد و دومینیک شیمانسکی—می‌کوشند میان مهارت در ابزار IDE، درک عمیق هم‌زمانی، و انتخاب آگاهانه ابزارهای کانتینری پیوند برقرار کنند.

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


👑 @gopher_academy
1
🔵 عنوان مقاله
Implementing Forth in Go and C

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

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

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

در جمع‌بندی، مقاله نشان می‌دهد C کنترل و کارایی بالقوهٔ بیشتری می‌دهد ولی دقت بالایی می‌طلبد؛ Go توسعهٔ سریع‌تر و ایمنی بهتری فراهم می‌کند و همچنان برای یک مفسر آموزشی کاراست. خواننده با اجزای اصلی (پشته، فرهنگ لغت، تجزیه‌گر و حلقهٔ درونی) آشنا می‌شود و دید عملی برای ادامهٔ آزمایش و گسترش به‌دست می‌آورد.

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


👑 @gopher_academy
Forwarded from Software Engineer Labdon
چطور یه سیستم غیرقابل نگهداری میشه؟
وقتی همه اعضای تیم حرفه ای و متخصص، بیزنس هم عالی ولی توسعه سیستم داره روز به روز سخت تر میشه و برای هر فیچر کوچیک و بزرگ زمان زیادی باید انتظار کشید تا به سیستم اضافه بشه وقتی هم اضافه میشه دیگه صدای تیم پروداکت و بیزنس در اومده!
تو این مطلب یه مقدار عمیقتر رفتم سراغ اینکه در چنین شرایطی، وقتی فشار روی تیم فنی هست یا یک سیستم legacy رو تحویل گرفتیم چه کارهایی (بخوانیم تصمیمات غلط) جلوی توسعه و نگهداری سیستم رو میگیره.
لینک مطلب:
https://mohammadkeshavarz.substack.com/p/anti-patterns-and-solutions
🤝2👍1
🔵 عنوان مقاله
Avoiding Common sync.WaitGroup Mistakes

🟢 خلاصه مقاله:
این مقاله توضیح می‌دهد که با وجود سادگی ظاهری sync.WaitGroup در گو، خطاهای رایجی مانند Add پس از آغاز Wait یا پس از شروع گوروتین‌ها، عدم توازن بین Add و Done، کپی‌کردن یا عبور به‌صورت مقداری، و استفادهٔ دوباره از یک WaitGroup می‌تواند به بن‌بست، شمارندهٔ منفی و نشت گوروتین منجر شود. از نسخهٔ 1.25 گو، ابزار go vet با افزودن بررسی‌های ویژه بسیاری از این الگوهای پرخطر را در زمان ساخت شناسایی می‌کند. با این حال، رعایت اصولی مانند پاس‌دادن اشاره‌گر، فراخوانی Add پیش از ساخت گوروتین‌ها، Done دقیقاً یک‌بار در هر گوروتین، و پرهیز از استفادهٔ مجدد WaitGroup همچنان ضروری است و در صورت نیاز می‌توان از ابزارهای سطح بالاتر مانند errgroup بهره برد.

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


👑 @gopher_academy
🔵 عنوان مقاله
TinyGo 0.39: Now with Go 1.25 Support

🟢 خلاصه مقاله:
TinyGo 0.39 با پشتیبانی از Go 1.25 منتشر شده و هدف آن رساندن دنیای Go به محیط‌های محدود مانند سیستم‌های نهفته، میکروکنترلرها و WebAssembly است. این به‌روزرسانی، سازگاری با آخرین تغییرات زبان و کتابخانه استاندارد Go را فراهم می‌کند و اشتراک‌گذاری و بازاستفاده از کد بین محیط‌های مختلف را آسان‌تر می‌سازد، در حالی که اندازه باینری و سربار اجرا پایین می‌ماند. برای پروژه‌های نهفته و WASM، این نسخه انتقال کد، استفاده از APIهای جدید و ساخت ماژول‌های سبک و قابل حمل را ساده‌تر می‌کند. پیش از ارتقا، بررسی یادداشت‌های انتشار و فهرست اهداف پشتیبانی‌شده توصیه می‌شود.

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


👑 @gopher_academy
1👍1🔥11
🔵 عنوان مقاله
Google Releases Genkit Go 1.0

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

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


👑 @gopher_academy
1🤝1
🔵 عنوان مقاله
Observability in Go: What Real Engineers Are Saying in 2025

🟢 خلاصه مقاله:
این مقاله با مرور دیدگاه‌های عملی مهندسان در سال ۲۰۲۵ و آنچه در Golang Weekly برجسته شده، نشان می‌دهد رویکرد غالب در مشاهده‌پذیری Go بر سه ستون لاگ، متریک و تریس است و پروفایلینگ پیوسته به‌طور فزاینده‌ای به آن اضافه می‌شود. OpenTelemetry زبان مشترک تیم‌ها برای ابزاردهی و مسیر داده است و با الگوی context در Go برای هم‌بستگی تریس‌ها به‌خوبی همراه می‌شود؛ در کنار آن، ابزارهای بومی مانند pprof و runtime/trace برای دید عمیق سطح پایین به‌کار می‌روند.

چالش‌های واقعی بیشتر عملی‌اند: کنترل هزینه و کاردینالیتی، انتخاب نمونه‌برداری که سیگنال را حفظ کند، و تعیین نگهداشت داده متناسب با چرخه رخدادها. تیم‌ها بر لاگ ساخت‌یافته، هم‌بستگی سازگار میان تریس و متریک، و تعداد کمی SLO و سیگنال کلیدی باکیفیت تأکید دارند و برای بارهای ناهمگام و صف‌ها توجه ویژه به انتشار context می‌گذارند. همچنین تجربه توسعه‌دهنده (قابلیت بازتولید محلی، آزمون‌های CI برای رگرسیون تلِمتری و آزمایش بار پیش‌تولید) اهمیت بالایی دارد.

از نظر کارایی، با پیکربندی محتاطانه و نمونه‌برداری، سربار SDKها و صادرکننده‌ها قابل مدیریت است، اما باید در هر بارکاری سنجیده شود. متریک‌های زمان‌اجرای Go و پروفایل‌ها برای رصد فشار GC، تخصیص‌ها و قفل‌ها حیاتی‌اند و برخی تیم‌ها برای کاهش نقاط کور از eBPF و پروفایلینگ پیوسته بهره می‌برند.

جمع‌بندی رویکردی عمل‌گراست: از تریس‌پذیری و چند متریک حیاتی شروع کنید، مسیرهای بحرانی کسب‌وکار را ابزاردهی کنید، شناسه‌های هم‌بستگی را سراسری کنید، از ابتدا برای نگهداشت و هزینه بودجه بگذارید و تدریجی بهبود دهید. هدف پوشش کامل نیست؛ هدف درک سریع و قابل اتکا در زمان رخدادهای واقعی است.

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


👑 @gopher_academy
🔵 عنوان مقاله
go-getter 1.8: Download Things from Various Sources with a URL

🟢 خلاصه مقاله:
go-getter 1.8 ابزاری است که با یک رشته شبیه URL، فایل‌ها را از منابع گوناگون دانلود می‌کند. فراتر از یک کلاینت ساده HTTP عمل می‌کند: می‌تواند URLهای GitHub را به‌صورت مخزن git دریافت کند، با مسیرهای محلی، S3، مخازن Mercurial و Bitbucket نیز کار می‌کند و همچنان از HTTP پشتیبانی می‌کند. مزیت اصلی آن یک رابط یکنواخت برای همه این پشتوانه‌هاست که اسکریپت‌ها و جریان‌های خودکار (CI/CD و ساخت) را ساده‌تر و قابل‌اعتمادتر می‌سازد.

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


👑 @gopher_academy
3👍1
🔵 عنوان مقاله
Kratos 2.9: A Go Framework for Cloud-Based Microservices

🟢 خلاصه مقاله:
** کراتوس ۲.۹ یک فریم‌ورک مبتنی بر زبان Go برای ساخت و اجرای میکروسرویس‌های ابری است که بر «حاکمیت میکروسرویس‌ها» تمرکز دارد. این چارچوب ارتباطات بین سرویس‌ها را حول HTTP و gRPC سامان می‌دهد تا قراردادهای شفاف و الگوهای یکپارچه ایجاد شود. هدف اصلی آن استانداردسازی پیکربندی، تعریف و مصرف APIها و شیوه‌های مشاهده‌پذیری و مدیریت در محیط‌های ابری است تا تیم‌ها بتوانند سامانه‌های مقیاس‌پذیر و قابل‌اتکا را با تجربه توسعه یکدست‌تر بسازند.

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


👑 @gopher_academy
🔵 عنوان مقاله
including the Raspberry Pi Pico 2 and even the Nintendo 64.

🟢 خلاصه مقاله:
**این مطلب از Golang Weekly نشان می‌دهد که اکوسیستم Go فراتر از سرور و کلاد رفته و روی سخت‌افزارهای نامعمول هم اجرا می‌شود؛ از میکروکنترلر ارزان‌قیمت Raspberry Pi Pico 2 تا حتی کنسول قدیمی Nintendo 64. نویسنده با تکیه بر ابزارهایی مثل TinyGo و ابزارهای جامعه، روند کراس‌کامپایل، محدودیت‌ها (حافظه کم، زیرمجموعه‌ای از کتابخانه استاندارد)، و کار با GPIO و پیرامون‌ها را توضیح می‌دهد و در عین حال به نمونه‌های آموزشی/آزمایشی روی N64 اشاره می‌کند. جمع‌بندی مقاله این است که با ابزار مناسب و انتظار واقع‌بینانه، می‌توان Go را به دنیای امبدد و پلتفرم‌های خاص آورد؛ هم برای نمونه‌سازی سریع و یادگیری مفید است و هم نشان‌دهنده گسترش‌پذیری و نوآوری جامعه Go.

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


👑 @gopher_academy
51
🔵 عنوان مقاله
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