Gopher Academy
3.84K subscribers
932 photos
42 videos
280 files
2.19K links
🕸 Gopher Academy

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

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

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
How Fast is Go? Simulating Millions of Particles on a Smart TV

🟢 خلاصه مقاله:
این مقاله با اجرای یک شبیه‌سازی بزرگ روی یک Smart TV نشان می‌دهد Go در عمل چقدر سریع است. نتیجه اصلی: شبیه‌سازی ۲.۵ میلیون ذره با نرخ ۶۰ فریم‌برثانیه و هم‌زمان ارسال داده با ۳۰ فریم‌برثانیه به بیش از ۳۰۰ کلاینت (و احتمالاً تا حدود هزار) ممکن شده است. ترکیب کار محاسباتی سنگین و ارسال شبکه هم‌زمان، توان Go در مدیریت بارهای بلادرنگ و استفاده مؤثر از همزمانی را نشان می‌دهد. با بهینه‌سازی تخصیص حافظه و استفاده از الگوهای همزمانی Go، تأثیر GC کم و تأخیر قابل‌پیش‌بینی باقی مانده و سیستم روی دستگاهی محدود مثل Smart TV نیز پایدار عمل می‌کند.

#Go #Golang #Performance #Concurrency #RealTime #SmartTV #Simulation #Scalability

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


👑 @gopher_academy
🍾22
🔵 عنوان مقاله
Practical Networking Patterns in Go

🟢 خلاصه مقاله:
** این بخش تازه از Go Optimization Guide مجموعه‌ای از ۱۳ راهنما را ارائه می‌کند که به شکل عملی ساخت اپلیکیشن‌های شبکه‌ای مقیاس‌پذیر با Go را پوشش می‌دهند. محورهای اصلی شامل دستیابی به «همزمانی بسیار بالا»، الگوهای مدیریت اتصال، کنترل فشار، زمان‌بندی و لغو عملیات، همراه با بنچمارک‌گیری واقع‌گرایانه و عیب‌یابی مبتنی بر سنجه‌ها، پروفایلینگ و تِرِیسینگ است. همچنین درباره انتخاب و پیکربندی پروتکل‌های انتقال، مدیریت خطا، اندازه‌گیری بافرها و تنظیمات سطح پایین برای پایداری و عملکرد بهتر توضیح می‌دهد. خروجی نهایی مجموعه‌ای از الگوهای عملی و چک‌لیست‌هاست که به تیم‌ها کمک می‌کند توان عملیاتی را افزایش دهند، تأخیرهای دُم توزیع را کاهش دهند و سرویس‌های Go را در مقیاس به‌صورت پایدار و شفاف اداره کنند.

#Go #Golang #Networking #Concurrency #Benchmarking #Performance #Scalability #Systems

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


👑 @gopher_academy
2
🔵 عنوان مقاله
that runs on the Erlang VM.

🟢 خلاصه مقاله:
این مقاله در Golang Weekly به معرفی فناوری‌ای می‌پردازد که روی Erlang VM اجرا می‌شود و برای برنامه‌نویسان Go اهمیت دارد. مقاله مزیت‌های کلیدی Erlang VM مانند فرایندهای سبک، پیام‌رسانی و تحمل خطا را توضیح می‌دهد و آن‌ها را با مدل goroutine و channel در Go مقایسه می‌کند. سپس پیامدهای عملی این تفاوت‌ها را بر مقیاس‌پذیری، تاب‌آوری و تأخیر در سیستم‌های توزیع‌شده، همراه با ملاحظات استقرار، هم‌پیوندی و مشاهده‌پذیری، مرور می‌کند. جمع‌بندی مقاله این است که استفاده از فناوری‌های مبتنی بر Erlang VM می‌تواند برای تیم‌های Go که به دسترس‌پذیری بالا نیاز دارند، مکملی ارزشمند باشد؛ انتخاب نهایی به نیازهای مسئله و تجربه تیم وابسته است.

#ErlangVM #Go #GolangWeekly #Concurrency #DistributedSystems #FaultTolerance #Scalability

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


👑 @gopher_academy
1👍1
🔵 عنوان مقاله
Concord: A Resilient Chord Implementation in Go

🟢 خلاصه مقاله:
اConcord یک پیاده‌سازی مقاوم از پروتکل Chord در زبان Go است که برای پایداری در برابر churn و خرابی‌های جزئی طراحی شده. Chord یک DHT همتابه‌همتاست که با استفاده از consistent hashing یک حلقه منطقی می‌سازد؛ هر گره بخشی از فضای کلید را نگه می‌دارد و با تکیه بر successor، predecessor و finger table، کلیدها را در زمان تقریبی O(log N) مسیردهی می‌کند.

تمرکز اصلی Concord بر مدیریت عضوگیری و بازیابی سریع است: پایش و stabilization دوره‌ای برای به‌روزرسانی اشاره‌گرها، استفاده از successor list برای تحمل خرابی، و تعمیر پس‌زمینه fingerها برای کاهش انحراف مسیریابی. جهت دوام داده، کلیدها روی چند successor تکرار می‌شوند و همگرایی نسخه‌ها با سیاست‌های ساده نسخه‌بندی یا last-writer-wins انجام می‌گیرد. تشخیص خرابی با زمان‌بندی‌ها و heartbeatهای اکتشافی تنظیم می‌شود تا بین حساسیت و خطای مثبت کاذب تعادل برقرار شود.

مدل هم‌زمانی Go پایه‌ی طراحی Concord است: goroutineها و channelها کارهای پروتکلی مانند stabilization، replication و رسیدگی به درخواست‌ها را جدا می‌کنند تا کندی یا خرابی یک همتا کل سیستم را متوقف نکند. ارتباطات RPC مرز روشنی بین گره‌ها ایجاد می‌کند و الگوهای backoff و circuit breaker از آبشاری‌شدن timeoutها جلوگیری می‌کنند. Concord همچنین به نیازهای عملیاتی مانند bootstrap گره‌های جدید، خروج ایمن، و توزیع مجدد کم‌اختلال کلیدها می‌پردازد.

نتایج آزمایش‌های churn، تزریق خطا و بنچمارک‌ها نشان می‌دهد که lookupها نزدیک به O(log N) باقی می‌مانند و در زمان خرابی‌های گذرا نرخ موفقیت بالایی دارند؛ در حالی‌که کارایی پایدار هم‌تراز Chord استاندارد و از نظر تاب‌آوری بهتر است. حاصل کار، یک DHT عملی مبتنی بر Go برای کاربردهایی مانند فراداده توزیع‌شده، service discovery و content indexing است.

#DistributedSystems #Chord #DHT #Go #P2P #FaultTolerance #ConsistentHashing #Scalability

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


👑 @gopher_academy
🔵 عنوان مقاله
Dependency Management in Database Design

🟢 خلاصه مقاله:
** مدیریت وابستگی‌ها در پروژه‌های بزرگ Go، به‌خصوص در موتورهای پایگاه‌داده، چالش‌زا است. مطالعه موردی Dolt (با ۷۶۲ هزار خط کد Go) نشان می‌دهد که لایه‌بندی دقیق، مرزبندی شفاف، و تکیه بر interfaceها به‌جای پیاده‌سازی‌های مستقیم، جلوی چرخه‌های import و کوپلینگ پنهان را می‌گیرد. استفاده از Go modules، نسخه‌بندی معنایی، internal packages و اجراهای خودکار در CI برای شناسایی چرخه‌ها و importهای ممنوع، سلامت نمودار وابستگی را حفظ می‌کند. راهبرد تست مبتنی بر mock/fake و تست‌های یکپارچه، هر لایه را مستقل قابل آزمون می‌کند و رگرسیون را کاهش می‌دهد. نتیجه این است که زیرسامانه‌هایی مانند ذخیره‌سازی، پرس‌وجو و تکرار در Dolt می‌توانند مستقل و با سرعت تکامل پیدا کنند، بدون آن‌که تغییرات به کل کدبیس سرایت کند.

#Go #Golang #DependencyManagement #ModularArchitecture #DatabaseSystems #Dolt #SoftwareArchitecture #Scalability

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


👑 @gopher_academy