Gopher Academy
3.34K subscribers
921 photos
40 videos
280 files
2.02K links
🕸 Gopher Academy

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

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

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
now supports Go 1.25.

🟢 خلاصه مقاله:
اکنون این پروژه به‌طور کامل از Go 1.25 پشتیبانی می‌کند؛ خبری که در آخرین شماره Golang Weekly برجسته شده است. این پشتیبانی شامل ساخت و آزمایش با ابزارهای Go 1.25، همسان‌سازی CI و تصاویر کانتینری، و به‌روزرسانی اسناد است تا ارتقاء بدون اصطکاک انجام شود. با توجه به بهبودهای کارایی، پایداری و ابزارها در Go 1.25، توصیه می‌شود Go را ارتقاء دهید، go.mod را به 1.25 تنظیم کنید، go mod tidy اجرا کنید و تست‌ها را بگذرانید؛ در صورت بروز مشکل، آن را گزارش کنید. اگر فعلاً ارتقاء نمی‌دهید، می‌توانید از نسخه فعلی خود استفاده کنید، اما ویژگی‌های جدید پروژه احتمالاً بر پایه Go 1.25 ارائه خواهند شد.

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


👑 @gopher_academy
👍1🤝1
🚀 به کانال تخصصی انواع دیتابیس و دیتا خوش اومدی!

اینجا هر روز مطالب کاربردی و به‌روز درباره موضوعات زیر می‌ذاریم:
🔹 PostgreSQL
🔹 RDBMS (سیستم‌های مدیریت پایگاه داده رابطه‌ای)
🔹 NoSQL
🔹 Big Data
🔹 Data Science
🔹 Data Engineering

📚 یادگیری، نکات حرفه‌ای و تازه‌ترین ترندهای دنیای دیتا همه اینجاست!

📌 همین حالا جوین شو و یک قدم جلوتر باش
https://t.iss.one/Database_Academy
1
🔵 عنوان مقاله
D2: A Declarative Diagramming Tool in Go

🟢 خلاصه مقاله:
D2 یک ابزار نمودارسازی اعلان‌محور و متن‌محور است که با زبان Go ساخته شده و از نظر رویکرد شبیه Mermaid عمل می‌کند؛ یعنی به‌جای رسم دستی، با نوشتن متن، نمودار تولید می‌کنید. به‌روزرسانی اخیر خروجی ASCII را اضافه کرده تا بتوان همان نمودارها را به‌صورت متن ساده در ترمینال، READMEها، ایمیل‌ها و محیط‌های محدود به متن استفاده کرد. این قابلیت، کاربردپذیری و دسترس‌پذیری D2 را در جریان‌های کاری مختلف افزایش می‌دهد.

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


👑 @gopher_academy
2
🔵 عنوان مقاله
Ergo 3.1: An Actor-Based Framework for Go

🟢 خلاصه مقاله:
Ergo 3.1 یک فریم‌ورک بازیگرمحور برای زبان Go است که الگوها و مفاهیم آزموده‌شدهٔ دنیای Erlang/OTP—مانند بازیگرهای ایزوله با ارتباط پیام‌محور و الگوهای نظارت و بازیابی—را به Go می‌آورد. این رویکرد با جداسازی خطاها، مدیریت ساخت‌یافتهٔ هم‌زمانی و پشتیبانی از سناریوهای توزیع‌شده، ساخت سرویس‌های مقیاس‌پذیر و مقاوم را ساده‌تر می‌کند. نسخهٔ 3.1 در مسیر پایداری، کارایی و سادگی API در سری v3 پیش رفته و ابزارهای آشنا و کارآمدی برای طراحی سیستم‌های مقاوم در اکوسیستم Go فراهم می‌کند.

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


👑 @gopher_academy
3
🔵 عنوان مقاله
Let's Look at Go's New Experimental API for JSON

🟢 خلاصه مقاله:
**این مطلب نگاهی عملی به یک API آزمایشی و جدید برای JSON در Go 1.25 دارد؛ تلاشی که به‌دلیل کاستی‌های بسته قدیمی json شکل گرفته است. مقاله توضیح می‌دهد این نسخه «v2» چه مشکلاتی از طراحی قبلی را هدف گرفته، تجربه برنامه‌نویس را چگونه شفاف‌تر و قابل پیش‌بینی‌تر می‌کند، و در کارهای روزمره مثل encode/decode، پیکربندی رفتار، مدیریت خطا و رسیدگی به مواردی مانند اعداد، null، فیلدهای ساختار و جریان‌ها چه تفاوت‌هایی دارد. همچنین تأکید می‌کند که این API هنوز آزمایشی است، برای ارزیابی و دریافت بازخورد عرضه شده، ممکن است تغییر کند، و توصیه‌هایی برای نحوه امتحان‌کردن آن در Go 1.25 و ملاحظات مهاجرت ارائه می‌کند.

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


👑 @gopher_academy
2
🔵 عنوان مقاله
The 9 Go Test Assertions I Use (and Why)

🟢 خلاصه مقاله:
**
الکس در ادامه‌ی بحث پرهیز از پکیج‌های آماده‌ی assertion در تست‌های Go، توضیح می‌دهد عملاً از چه چیزی استفاده می‌کند: مجموعه‌ای کم‌تعداد از ۹ تابع assertion دست‌ساز. او می‌گوید کتابخانه‌های بزرگ هرچند کدنویسی را کوتاه می‌کنند، اما اغلب منجر به ابهام، جریان کنترل پنهان و پیام‌های خطای نامفهوم می‌شوند. در مقابل، چند کمک‌تابع ساده که به t.Helper() متکی‌اند، بدون وابستگی خارجی و با پیام‌های خطای دقیق، هم خوانایی را بالا می‌برند و هم از تکرار جلوگیری می‌کنند.

این ۹ تابع رایج‌ترین نیازها را پوشش می‌دهند: برابری/نابرابری، nil و non-nil، شرایط بولی، شامل‌بودن در رشته‌ها یا مجموعه‌ها، و انتظارهای مرتبط با خطا. اصل مهم این است که این توابع نازک و شفاف باشند، منطق تست را پنهان نکنند و خطا را با مقادیر واقعی/مورد انتظار گزارش کنند.

او به دام‌های رایج نیز اشاره می‌کند: تفاوت nil در اینترفیس‌ها، محدودیت‌های مقایسه‌ی عمیق، و ترجیح سنجش رفتار قابل مشاهده به‌جای برابری کامل ساختارها. نتیجه‌گیری او درباره‌ی «آیا assertion ضدالگو است؟» مشروط است: اگر کلی‌گرا و جادویی شوند، بله؛ اما اگر کم‌حجم، صریح و متناسب با حوزه‌ی تست بمانند، ابزاری مفید هستند. قاعده نهایی: جایی که تکرار دارید از کمک‌تابع استفاده کنید، و هر جا یک بررسی اختصاصی پیام را شفاف‌تر می‌کند، همان را درجا بنویسید.

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


👑 @gopher_academy
2👍1
🎙️ عنوان پادکست:
What's coming in Go 1.25? Plus Redowan Delowar on what makes Go different from other languages
خلاصه پادکست:
این قسمت نگاهی به Go 1.25 و انتشار نخستین نسخه候دی آن دارد و توضیح می‌دهد این چرخه چه پیام‌هایی درباره روند تکاملی و سازگاری‌محور Go می‌دهد. سپس به یادداشت التون مینِتو درباره «نظریه‌مندتر بودن Go» می‌پردازد و مزایا و معایب پیش‌فرض‌های قوی‌تر در برابر انعطاف را بررسی می‌کند. در ادامه، با تکیه بر مطلب «HTTP QUERY and Go»، نکات عملی برای پارس و اعتبارسنجی پارامترهای کوئری در هندلرهای HTTP مطرح می‌شود....
🤝4
🔵 عنوان مقاله
Go Experiments with SIMD: Intrinsics Arrive on the dev.simd Branch

🟢 خلاصه مقاله:
شاخه آزمایشی dev.simd در ابزارهای Go پشتیبانی مستقیم از SIMD را از طریق «اینترینسیک‌ها» اضافه می‌کند؛ یعنی توابعی که به‌طور مستقیم به دستورهای برداری پردازنده نگاشت می‌شوند. این کار به توسعه‌دهندگان اجازه می‌دهد بدون نوشتن اسمبلی، کد برداریِ پرکارایی را مستقیماً در Go بنویسند. تمرکز اولیه روی مدل AMD در معماری x86-64 است.

SIMD برای شتاب‌دهی به پردازش‌های موازی روی داده‌های متعدد در یک دستور کلیدی است و در حوزه‌هایی مانند محاسبات عددی، پردازش تصویر و سیگنال، رمزنگاری، فشرده‌سازی و اجرای پرس‌وجوهای پایگاه‌داده سودمند است. پیش‌تر این دسترسی عمدتاً با اسمبلی Go انجام می‌شد که نگه‌داری و قابل‌ حمل بودن را دشوار می‌کرد.

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

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


👑 @gopher_academy
1
🔵 عنوان مقاله
Exploring Concurrency Issues with Philosophers and Go

🟢 خلاصه مقاله:
** این مجموعه به دو موضوع عملی می‌پردازد: نخست، با استفاده از مسئله «فیلسوفان غذاخور» نشان می‌دهد چگونه در Go مشکلاتی مانند بن‌بست، گرسنگی و رقابت رخ می‌دهد و با الگوهایی مانند ترتیب‌دهی منابع مشترک، استفاده سنجیده از کانال‌ها و select با timeout، هماهنگی با WaitGroup و لغو با context، و همچنین ابزارهایی مثل race detector و go vet می‌توان آن‌ها را پیشگیری و ردیابی کرد. دوم، توضیح می‌دهد چرا Podman می‌تواند جایگزین بهتری برای Docker باشد: معماری بدون دیمون، اجرای روت‌لس، سازگاری با CLI و تصاویر OCI، و ادغام تمیز با systemd؛ با این حال به تفاوت‌هایی در شبکه، ولوم‌ها و گردش‌کار compose هم اشاره می‌کند که نیازمند آزمون و تنظیمات است. پیام مشترک: هم در هم‌زمانی و هم در انتخاب ابزار، طراحی سنجیده و توجه به امنیت و بهره‌وری، نتیجه بهتری می‌دهد.

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


👑 @gopher_academy
🤝11
Forwarded from Bardia & Erfan
🤍روز برنامه‌نویس خجسته باد💐
3🍾3
🔵 عنوان مقاله
What the Go Proxy Has Been Doing

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

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


👑 @gopher_academy
1🎉11