Gopher Academy
3.87K subscribers
929 photos
41 videos
280 files
2.11K links
🕸 Gopher Academy

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

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

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
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
🔵 عنوان مقاله
the WebAssembly 3.0 standard is now 'live'

🟢 خلاصه مقاله:
** استاندارد WebAssembly 3.0 رسماً منتشر شده و هم‌اکنون در اکثر مرورگرهای مدرن در دسترس است. این نسخه با افزودن قابلیت‌هایی مانند garbage collection، tail calls و exception handling تمرکز خود را بر بهبود بلندمدت interoperability گذاشته و هدفش آسان‌تر شدن ادغام با زبان‌ها و ابزارهای مختلف است. پشتیبانی استاندارد از GC مسیر زبان‌های با runtime مدیریت‌شده را هموارتر می‌کند، حجم باینری‌ها را کاهش می‌دهد و راه‌اندازی را سریع‌تر می‌سازد؛ در عین حال tail calls کارایی الگوهای بازگشتی را بالاتر می‌برد و exception handling مدیریت خطا را ساخت‌یافته‌تر می‌کند. WebAssembly 3.0 با حفظ backward compatibility اجازه می‌دهد باینری‌های فعلی بدون تغییر اجرا شوند و ابزارها به‌تدریج قابلیت‌های جدید را پشتیبانی کنند.

#WebAssembly #Wasm30 #Browsers #Interoperability #GarbageCollection #TailCalls #ExceptionHandling #WebStandards

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


👑 @gopher_academy
4
🔵 عنوان مقاله
be experimenting with

🟢 خلاصه مقاله:
از کتابخانه‌های زیادی که می‌خواهند به مخاطبان بیشتری برسند، در حال حاضر نسخه‌های JavaScript ارائه می‌شود تا هم در مرورگر و هم در محیط‌های Node.js، Deno و Bun در دسترس باشند. مزیت اصلی، دسترسی گسترده، توزیع ساده از طریق npm و تجربه کاربری یکپارچه بین فرانت‌اند و بک‌اند است.

دو مسیر رایج وجود دارد: بازنویسی بومی با TypeScript برای ارائه APIهای استاندارد، تایپ‌های دقیق و قابلیت tree-shaking؛ یا پورت از زبان‌های سطح پایین به WebAssembly برای حفظ کارایی و استفاده مجدد از کد موجود. ابزارهایی مانند Emscripten، wasm-bindgen و ابزارهای Go این کار را تسهیل می‌کنند و با ارائه TypeScript declarations سطح استفاده‌پسند ایجاد می‌شود.

چالش‌ها شامل انتخاب بین ESM و CJS، بهینه‌سازی اندازه باندل و دارایی‌های WASM، محدودیت‌های مرورگر (فایل‌سیستم و سوکت خام)، تفاوت‌های اجرا در Node.js/Deno/Bun، و مدیریت کارایی و زمان راه‌اندازی است. استفاده از Web Workers، بارگذاری تدریجی، بنچمارک‌گیری در محیط‌های مختلف و مستندسازی دقیق کمک‌کننده است. در حوزه امنیت نیز باید مراقب زنجیره تأمین، نسخه‌بندی SemVer، تست و انتشار مرحله‌ای بود.

نمونه‌های موفق شامل OpenCV.js، نسخه WASM از SQLite، TensorFlow.js، ONNX Runtime Web و Pyodide است که نشان می‌دهند با طراحی API مناسب و ابزار درست، پورت‌های جدی عملی است. قاعده تصمیم‌گیری: اگر کتابخانه سنگین و بهینه است، WASM انتخاب خوبی است؛ اگر هدف تجربه توسعه‌دهنده در اکوسیستم JavaScript است، بازنویسی با TypeScript بهتر است؛ و برای قابلیت‌های سخت‌افزاری/سیستمی، رویکرد هیبریدی یا سمت سرور منطقی است. با پیشرفت WebAssembly/WASI، WebGPU و پلتفرم‌های edge مانند Cloudflare Workers و Vercel Edge، زمان مناسبی برای آزمایش و تکرار است.

#JavaScript #WebAssembly #TypeScript #NodeJS #Deno #npm #OpenSource

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


👑 @gopher_academy
🔵 عنوان مقاله
qjs: Run JavaScript in Go

🟢 خلاصه مقاله:
qjs یک روش تازه برای اجرای JavaScript داخل اپ‌های Go است که بدون نیاز به Cgo کار می‌کند. به‌جای اتصال به یک کتابخانه بومی، نسخه فورک‌شده‌ای از QuickJS را به WebAssembly کامپایل کرده و آن را زیر Wazero اجرا می‌کند. این رویکرد کل زنجیره را در محیط خالص Go نگه می‌دارد و فرایند بیلد، استاتیک‌سازی و کراس‌کامپایل را ساده‌تر می‌کند. مزیت دیگر، ایزوله‌سازی و سندباکس طبیعی ناشی از WebAssembly است. هرچند احتمالاً نسبت به اتصال بومی اندکی سربار دارد، اما برای سناریوهایی مثل اسکریپت‌نویسی، افزونه‌ها و اجرای امن منطق کاربر، توازن خوبی بین سادگی، پرتابل‌بودن و امنیت ارائه می‌دهد.

#Go #JavaScript #WebAssembly #Wazero #QuickJS #Cgo #GoLang #Embedding

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


👑 @gopher_academy