Gopher Academy
3.33K subscribers
914 photos
40 videos
279 files
1.95K links
🕸 Gopher Academy

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

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

ادمین:
@mrbardia72

ادمین تبلیغات:
@labdon_ads
Download Telegram
🔵 عنوان مقاله
Porting Tailscale to Plan 9

🟢 خلاصه مقاله:

این مقاله داستانی جذاب از برد فیتزپاتریک، عضو سابق تیم اصلی گو، درباره پروژه‌ای شوخی‌آمیز که تیل‌اسکیل در روز دروغ اول آوریل انجام داده است، مطرح می‌کند. پروژه شامل انتقال تیل‌اسکیل به سیستم عامل قدیمی پلن ۹ بل لبز، توسعه داده شده در دهه ۱۹۸۰ بود. با وجود قدیمی بودن سیستم عامل و مشکلات ناشی از عدم به‌روزرسانی پشتیبانی کامپایلر گو برای پلن ۹، تیم توانست با موفقیت تیل‌اسکیل را روی این پلتفرم فرسوده اجرا کند، که نشان‌دهنده مهارت و خلاقیت آن‌ها بود و به احتمال زیاد توجه‌ها را به کاربرد فناوری‌های قدیمی‌تر جلب کرد.

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


👑 @gopher_academy
2
🔵 عنوان مقاله
Make Your App an OAuth Provider

🟢 خلاصه مقاله:

Stytch پلتفرمی است که به توسعه‌دهندگان امکان می‌دهد تا به راحتی ادغام‌های طرف سوم را در برنامه‌هایشان اضافه کنند، برنامه‌ها را آماده عملیات نمایندگی کنند و اتصال داده‌ها را فعال سازند. همچنین، این پلتفرم این امکان را می‌دهد که شما به‌عنوان ارائه‌دهنده هویت خود با استفاده از OAuth 2.0/OIDC و با استفاده از اپلیکیشن‌های متصل Stytch عمل کنید. راهنمای سریع برای شروع کار با Go در Stytch نیز موجود است که با استفاده از آن، توسعه‌دهندگان می‌توانند به سرعت با نحوه استفاده از امکانات معرفی شده توسط Stytch آشنا شوند.

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


👑 @gopher_academy
1👍1
🔵 عنوان مقاله
🔒 Protect Against AI Bots, Fraud, and Abuse in Real Time

🟢 خلاصه مقاله:

WorkOS Radar با استفاده از تکنولوژی پیشرفته اثر انگشت دستگاه، سطح امنیت برنامه‌ها را ارتقا می‌دهد و از تهدیدات سایبری مانند ثبت‌نام‌های جعلی، سوء استفاده از سطوح رایگان، حملات ربات‌ها و تلاش‌های نیرومند برای ورود به سیستم محافظت می‌کند. این سیستم همچنین با تشخیص الگوهای غیرعادی یا تلاش‌های ناموفق مکرر برای ورود به سیستم، از وقوع فعالیت‌های مخرب جلوگیری می‌کند و تجربه کاربری بهتری ارائه می‌دهد.

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


👑 @gopher_academy
🔵 عنوان مقاله
gocodewalker: A Way to 'Walk' Directories of Code

🟢 خلاصه مقاله:

در این مقاله روشی کارآمد برای پیمایش درون مجموعه‌ای از دایرکتوری‌های تو در تو در مخزن کد، همراه با رعایت قوانین تعیین شده در فایل `.gitignore`، ارائه شده است. این روش با استفاده از ابزارهای خاصی که فایل `.gitignore` را می‌خوانند و مسیرها و فایل‌هایی که طبق قوانین باید نادیده گرفته شوند را فیلتر می‌کنند، به افزایش عملکرد و تمیز نگه داشتن پایگاه کد کمک می‌کند. این استراتژی برای توسعه دهندگانی که پروژه‌های بزرگ با تعداد زیادی دایرکتوری و فایل را مدیریت می‌کنند مفید است و به ایجاد محیط توسعه قابل مدیریت‌تر و کارآمدتر کمک می‌کند.

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


👑 @gopher_academy
👍3
🔵 عنوان مقاله
How and Why PlanetScale Built a VM in Go

🟢 خلاصه مقاله:

اPlanetScale یک پلتفرم معروف میزبانی ابری برای MySQL است که از Vitess که با زبان برنامه‌نویسی Go نوشته شده استفاده می‌کند. این مقاله به بررسی ساخت یک ماشین مجازی در Go برای کار با AST‌های SQL که توسط تجزیه‌گر SQL آن‌ها تولید می‌شوند می‌پردازد و نشان می‌دهد که این رویکرد به سرعت (و گاهی اوقات سریعتر) از روش C++ استاندارد MySQL است.

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


👑 @gopher_academy
👍1
🔵 عنوان مقاله
Physix.go: A Simple Physics Engine for Go

🟢 خلاصه مقاله:

این مقاله پروژه جذاب یک دانش‌آموز دبیرستانی را معرفی می‌کند که به ارائه قابلیت‌های فیزیک اولیه در هنگام استفاده از Ebitengine، موتور بازی‌سازی محبوب برای بازی‌های دو بعدی، اختصاص داشته است. دانش‌آموز با بیان زمینه این پروژه، به چالش‌های اولیه‌ای که در توسعه بازی‌های مبتنی بر شبیه‌سازی فیزیک مواجه شده بود، پرداخته است. با تلاش‌های فراوان، موفق به ایجاد ماژولی شده است که به ابزار Ebitengine اضافه شده و به توسعه‌دهندگان امکان می‌دهد تا بدون پیچیدگی‌های برنامه‌نویسی زیاد، فیزیک را در بازی‌های خود شبیه‌سازی کنند. این پروژه نه تنها دانش دانش‌آموز در مورد توسعه بازی و فیزیک را افزایش داد، بلکه به جامعه Ebitengine نیز کمک کرده است.

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


👑 @gopher_academy
🔵 عنوان مقاله
golangci-lint v2: A Fast Linter Runner for Go

🟢 خلاصه مقاله:

مقاله به بررسی ابزاری برای اجرای بررسی‌کننده‌های کد Go می‌پردازد که قابلیت اجرای حدود ۱۰۰ بررسی‌کننده مختلف را به صورت همزمان دارد. این ابزار با استفاده از حافظه کش و پیکربندی YAML، بهینه‌سازی شده و قابلیت یکپارچگی با محیط‌های توسعه مجتمع (IDE) را دارد. همچنین، دستورالعمل‌هایی برای به‌روزرسانی از نسخه ۱ به کاربران ارائه شده تا انتقال نرم‌افزاری را راحت‌تر کند.

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


👑 @gopher_academy
👍21🍾1
🔵 عنوان مقاله
go-profile: A Port of Brendan Gregg's eBPF profile.py

🟢 خلاصه مقاله:

این مقاله به بررسی اولین تلاش‌ها برای انتقال یک ابزار پروفایلینگ که با Python پیاده‌سازی شده، به زبان برنامه‌نویسی Go با استفاده از تکنولوژی eBPF در لینوکس می‌پردازد. این روش جدید، سرعت و کارایی بیشتری نسبت به روش‌های سنتی پروفایلینگ دارد. هرچند این پروژه هنوز ناقص و در مراحل اولیه است، اما پتانسیل ایجاد ابزارهای پروفایلینگ قدرتمندتر و چند منظوره‌تر در آینده را فراهم می‌آورد.

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


👑 @gopher_academy
👍1
🔵 عنوان مقاله
Goavatar: Generate Unique, Symmetric Identicons Based on a String

🟢 خلاصه مقاله:

این مقاله روشی ساده برای تولید آیکون‌های پایه بر اساس یک رشته مانند نام کاربری ارائه می‌دهد که به صورت قطعی و یکنواخت انجام می‌شود. این آیکون‌ها که بر اساس ورودی‌های رشته مشخص شده‌اند، می‌توانند به عنوان وسیله‌ای برای شناسایی بصری به کار روند. این تکنیک می‌تواند در موقعیت‌هایی که شناسایی سریع کاربران مهم است، مانند انجمن‌ها یا برنامه‌های چت، مفید باشد.

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


👑 @gopher_academy
👍2
🔵 عنوان مقاله
A Guide to Optimizing for High Performance in Go

🟢 خلاصه مقاله:

این مقاله به بررسی تکنیک‌های بهینه‌سازی مختلف برای توسعه‌دهندگان Go می‌پردازد تا به آنها کمک کند نرم‌افزارهای سریع‌تر و بهینه‌تری بسازند. تمرکز اولیه بر روی الگوهای رایجی مثل استفاده از استخرهای اشیاء، هم‌ترازسازی میدان‌های ساختار، و استفاده از استخرهای کارگر است. همچنین، راهنمایی برای شبکه‌های با عملکرد بالا به زودی ارائه خواهد شد تا اطلاعات عمیق‌تری در مورد طراحی برنامه‌های کاربردی شبکه‌ای که می‌توانند مقادیر زیادی داده را به طور مؤثر مدیریت کنند، فراهم آورد.

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


👑 @gopher_academy
👍2
🔵 عنوان مقاله
When is it OK to Panic in Go?

🟢 خلاصه مقاله:

مقاله‌ای که توسط الکس نوشته شده، به بررسی استفاده از واژه‌ی "پنیک" یا هراس در برنامه‌نویسی پرداخته است. ضرب‌المثل معروف بازی گو، "هراس نکن"، نه تنها یک توصیه خوب برای زندگی است بلکه نشان می‌دهد که نباید برای مدیریت خطاهای معمول از هراس استفاده کرد. در این مقاله، الکس شرایطی را شرح داده که در آن‌ها به کارگیری هراس مناسب است، مانند زمان‌هایی که برنامه با خطای کشنده‌ای مواجه می‌شود که قابلیت بازیابی ندارد. همچنین تأکید می‌کند که استفاده از هراس به عنوان رویکرد اولیه برای مدیریت همه خطاها می‌تواند به نوشتن کدی کمتر قابل اعتماد و دشوارتر برای نگهداری منجر شود و پیشنهاداتی برای مقابله با خطاهایی که قابلیت بازیابی دارند ارائه می‌دهد.

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


👑 @gopher_academy
🔵 عنوان مقاله
Goodbye Core Types, Hello Go As We Know and Love It

🟢 خلاصه مقاله:

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

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


👑 @gopher_academy
👍2
🔵 عنوان مقاله
Mockery v3: Create Mock Implementations of Interfaces

🟢 خلاصه مقاله:

در این مقاله، ادعا شده است که Mockery v3 توانایی کنار زدن تمام فریمورک‌های مبتنی بر رابط برنامه‌نویسی در محیط برنامه‌نویسی گو را دارد. نویسنده با بررسی ویژگی‌های Mockery v3 و مقایسه آن با سایر فریمورک‌های موجود، تلاش می‌کند تا این ادعای بزرگ را ثابت کند. همچنین، خوانندگان تشویق می‌شوند که برای بررسی دقیق‌تر و استفاده از این ابزار به صفحه اصلی آن مراجعه کنند، جایی که می‌توانند اطلاعات کامل، نظرات کاربران، و دستورالعمل‌های دانلود را پیدا کنند.

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


👑 @gopher_academy
👍1
🔵 عنوان مقاله
Fuzzing Go Binaries with LibAFL

🟢 خلاصه مقاله:

سGoLibAFL یک ابزار جدید است که با استفاده از کتابخانه فازینگ LibAFL ساخته شده‌ با زبان برنامه‌نویسی Rust، تکنیک‌های پیشرفته فازینگ را در اختیار توسعه‌دهندگان زبان Go قرار می‌دهد. این مقاله GoLibAFL را با راه‌حل‌های موجود مقایسه کرده، نمونه‌هایی از کاربرد آن را نشان می‌دهد و به تفصیل در مورد چگونگی سفارشی‌سازی LibAFL برای موارد استفاده در Go بحث می‌کند. GoLibAFL امنیت و روند توسعه برنامه‌های نوشته شده به زبان Go را بهبود می‌بخشد.

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


👑 @gopher_academy
1
🔵 عنوان مقاله
Bufstream: Robust Streaming for gRPC

🟢 خلاصه مقاله:
**
اBufstream یک سیستم جدید و مخصوصی است که برای پیاده‌سازی Kafka با استفاده از جریان‌های gRPC در محیط ابری طراحی شده است. این سیستم که ترکیبی از فناوری پخش جریان موزون Kafka و کارایی و سرعت gRPC است، به‌خوبی آزمون‌های سختگیرانه Jepsen را پشت سر گذاشته و در شرایط مختلف شبکه و تنش، داده‌ها را با دقت و قابلیت اطمینان بالا حفظ می‌کند.

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


👑 @gopher_academy
1
🔵 عنوان مقاله
Vite Backend Integration for Go

🟢 خلاصه مقاله:

این مقاله به بررسی روش‌های ادغام یک فرانت‌اند مبتنی بر Vite با بک‌اند مبتنی بر Go می‌پردازد. Vite به دلیل بازسازی سریع و امکاناتی چون جایگزینی ماژول‌های داغ و بسته‌بندی بهینه‌شده، تجربه توسعه فرانت‌اند را بهبود می‌بخشد. از طرفی، Go برای بک‌اند به دلیل عملکرد قوی، کارایی بالا و مدیریت بهینه منابع در مدیریت ترافیک شبکه و پردازش داده مناسب است. ترکیب این دو فناوری اغلب از طریق تماس‌های API برای برقراری ارتباط بین فرانت‌اند و بک‌اند انجام می‌گیرد، که نتیجه آن ساختاری قابل ارتقا و قابل نگهداری است که به خوبی پاسخگوی نیازهای مدرن تولید نرم‌افزار می‌شود.

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


👑 @gopher_academy
2
🔵 عنوان مقاله
sync.Pool is Not a Silver Bullet

🟢 خلاصه مقاله:

موقعیت‌هایی که استفاده از sync.Pool در آنها مؤثر است برای اشیاء با عمر کوتاه و پیش‌بینی‌پذیر است، زیرا بازیابی استفاده از این اشیاء، تخصیص‌های تکراری را کاهش می‌دهد و بار روی جمع‌آوری زباله یا GC را کمتر می‌کند. با این حال، استفاده از sync.Pool ممکن است در شرایطی که عمر اشیاء قابل پیش‌بینی نیست یا طولانی‌مدت هستند نه تنها کارایی لازم را ارائه ندهد بلکه ممکن است عواقب منفی به همراه داشته باشد، باعث شده که sync.Pool بیش از حد مورد نیاز حافظه را نگه دارد و به افزایش فعالیت‌های GC منجر شود.

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


👑 @gopher_academy
🔵 عنوان مقاله
asciigraph: ASCII Line Graph Rendering Library

🟢 خلاصه مقاله:

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

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


👑 @gopher_academy
🔵 عنوان مقاله
The First Newsletter Dedicated to Product Engineers

🟢 خلاصه مقاله:

موفقیت به عنوان یک مهندس محصول تنها به مهارت‌های فنی بستگی ندارد، بلکه نیازمند درک عمیق استراتژی‌ها و تاکتیک‌هایی است که به خلق محصولاتی که کاربران دوست دارند منجر می‌شود. این شامل درک نیازهای بازار، هم‌راستا کردن با اهداف کسب‌وکار و ارزیابی مداوم محیط رقابتی است. ارتباط مؤثر و همکاری با تیم‌های دیگر مثل طراحی، بازاریابی و پشتیبانی مشتری نیز حیاتی است. علاوه بر این، به‌روز ماندن با ترندها و ابزارهای فناوری می‌تواند مزیت رقابتی ایجاد کند. از سوی دیگر، برنامه‌ریزی دقیق و اجرای آن، جمع‌آوری و تحلیل بازخورد کاربران برای بهبود مداوم محصول ضروری است. در نهایت، مهندس محصول باید به طور ماهرانه‌ای این استراتژی‌ها و تاکتیک‌ها را ترکیب کند تا محصولاتی که عملکرد عالی دارند و با کاربران طنین‌انداز شوند را توسعه دهد.

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


👑 @gopher_academy
🔵 عنوان مقاله
Introducing ls-lint: A File Structure Linter

🟢 خلاصه مقاله:

ls-lint به عنوان یک 'لینتر نام گذاری فایل و دایرکتوری بسیار سریع' معرفی شده است که از زبان برنامه‌نویسی Go بهره می‌برد. این ابزار برای اعمال قوانین و ساختارهای خاص در خصوص سیاست‌های نام‌گذاری فایل‌ها و دایرکتوری‌ها در پروژه‌ها طراحی شده است. ls-lint با اسکن کردن فایل‌سیستم پروژه و اطمینان از پیروی همه فایل‌ها و دایرکتوری‌ها از مجموعه‌ای از اصول نام‌گذاری از پیش تعیین شده، به ویژه در محیط‌های همکاری که داشتن قوانین نام‌گذاری یکپارچه حیاتی است، کاربرد دارد. این ابزار از طریق مخزن GitHub قابل دانلود و یکپارچه‌سازی است.

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


👑 @gopher_academy