Gopher Academy
3.84K subscribers
930 photos
41 videos
280 files
2.15K links
🕸 Gopher Academy

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

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

ادمین:
@mrbardia72
Download Telegram
Forwarded from Software Engineer Labdon
♨️ چین: آمریکا درپی فلج‌کردن زمان است! 😐

▪️وزارت امنیت ملی چین مدعی شده گروهی از حملات سایبری پیچیده هدایت‌شده توسط NSA آمریکا ، رو خنثی کرده که هدفش مرکز خدمات ملی زمان چین (NTSC) بوده.

▪️هدف این حملات به ادعای امنیت چین اختلال در سامانه‌ٔ زمان رسمی که سرویس‌های حیاتی مثل مخابرات، مالی، حمل‌و‌نقل و پرتاب‌های فضایی به آن وابسته‌اند.

▪️آسیب به سامانه‌های زمان‌‌سنجی می‌تواند تبعات گسترده‌ای (از اختلالت بانکی تا مشکل در ناوبری و فضا) ایجاد کند. این ادعاها اگر درست باشند، موضوعی فراتر از یک حمله فنی‌ست...!

👑 @software_Labdon
4
🔵 عنوان مقاله
How Slow is Channel-Based Iteration?

🟢 خلاصه مقاله:
این مقاله پرسش «تکرار مبتنی بر channel در Go چقدر کند است؟» را با یک مثال عملی بررسی می‌کند. تیم Dolt سه الگو را مقایسه کرده است: دو رویکرد مبتنی بر channel و یک روش iterator کشیدنی با iter.Pull. نتیجه کلی این است که هرچند channel‌ها برای هم‌زمانی، مدیریت فشار برگشتی و جداسازی تولیدکننده/مصرف‌کننده عالی‌اند، اما در حلقه‌های محاسباتیِ حساس به کارایی، سربار همگام‌سازی، زمان‌بندی goroutine و تخصیص‌ها محسوس می‌شود. در مقابل، iter.Pull (و حلقه‌های ساده روی داده‌های خطی) معمولاً سبک‌تر و بهینه‌ترند. توصیه نهایی: وقتی به هم‌زمانی واقعی نیاز دارید از channel استفاده کنید؛ برای مسیرهای داغ که فقط پیمایش می‌خواهند، سراغ iterator کشیدنی یا حلقه‌های ساده بروید.

#Go #Golang #Channels #Iteration #Performance #Benchmarking #Concurrency #Dolt

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


👑 @gopher_academy
👍1🔥1
Forwarded from Software Engineer Labdon
♨️ افشای اسناد آمازون ؛ برنامه برای جایگزینی ۶۰۰ هزار کارگر با ربات‌ها!

▪️اسناد جدید نشون میده آمازون تا سال 2033 قصد داره بیش از 600 هزار کارگر آمریکایی رو با ربات جایگزین کنه، در حالی که فروشش تو همین بازه قراره دو برابر بشه.

▪️طبق گزارش‌ها، تیم رباتیک آمازون در حال خودکارسازی حدود 75% عملیات‌هاست و احتمالاً تا سال 2027 حدود 160 هزار شغل حذف میشه.

+ این طرح برای آمازون می‌تونه 30 سنت صرفه‌جویی در هر کالا و مجموعاً نزدیک به 12.6 میلیارد دلار سود بین سال‌های 2025 تا 2027 داشته باشه.
4
🔵 عنوان مقاله
Writing Better Go: Lessons from 10 Code Reviews

🟢 خلاصه مقاله:
** این اسلایدها با عنوان Writing Better Go: Lessons from 10 Code Reviews حاصل ارائه‌ای از Konrad Reiche در GoLab 2025 است و مجموعه‌ای از الگوهای تکرارشونده در بازبینی‌های واقعی کد را به راهنمایی‌های عملی تبدیل می‌کند. محور اصلی، نوشتن کد ساده و خوانا با Go است: طراحی API‌های کوچک و منسجم، نام‌گذاری دقیق، تعریف interface در محل مصرف، استفاده سنجیده از composition، صفر-مقدارهای مفید، عبور منظم context و پرهیز از وضعیت‌های سراسری.

بخش مهمی از درس‌ها به خطاها و ثبت رویداد می‌پردازد: خطاها را به‌عنوان مقدار مدیریت کنید، با %w زمینه اضافه کنید، از panic فقط برای شکست‌های غیرقابل‌بازیابی در آغاز اجرا بهره ببرید، منابع را با defer جمع کنید، و در کتابخانه‌ها به‌جای لاگ‌کردن، خطا برگردانید تا برنامه اصلی مسئول لاگ باشد.

در همروندی، تأکید بر سادگی و ایمنی است: چرخه عمر goroutine‌ها را صریح کنید، آن‌ها را به context گره بزنید، با select روی context.Done() از نشت جلوگیری کنید، و بسته به مسئله از channel یا ابزارهای sync به‌درستی استفاده کنید. بافرگذاری آگاهانه، مستندسازی قراردادها، و اعمال timeout و backpressure در پایپلاین‌ها ضروری است.

برای کیفیت و کارایی، تست‌های جدول‌محور، پوشش مرزی، fuzzing، اجرای race detector، بنچمارک با testing.B و پروفایل با pprof توصیه می‌شود؛ از بهینه‌سازی زودهنگام بپرهیزید و تغییرات را بر اساس اندازه‌گیری انجام دهید.

در نهایت، فرهنگ بازبینی و ابزارهای خودکار نقش کلیدی دارند: یکدستی با gofmt/goimports، بررسی‌های خودکار با go vet و staticcheck در CI، درخواست‌های کوچک با پیام‌های شفاف و تمرکز بازبینی بر درستی، طراحی و نگهداشت‌پذیری. این چک‌لیست عملی می‌تواند فوراً در تیم‌ها و کدبیس‌های Go به کار گرفته شود.

#Go #Golang #CodeReview #GoLab2025 #SoftwareEngineering #BestPractices #Concurrency #ErrorHandling

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


👑 @gopher_academy
👍1
🔵 عنوان مقاله
The Speed of Random Number Generators

🟢 خلاصه مقاله:
در این مقاله، Daniel سرعت گزینه‌های رایج تولید اعداد تصادفی در Go را مقایسه می‌کند. او نشان می‌دهد که math/rand/v2 با الگوریتم PCG در سناریوهای غیرامنیتی سریع‌ترین گزینه است و از نسخه قدیمی‌تر math/rand عملکرد بهتری دارد، در حالی که crypto/rand به‌دلیل تمرکز بر امنیت به‌طور قابل‌توجهی کندتر است. جمع‌بندی عملی: برای کارهای غیررمزنگاری که سرعت و قابلیت بازتولید مهم‌اند، از math/rand/v2 (PCG) استفاده کنید؛ اما برای مقاصد امنیتی، با وجود هزینه‌ی عملکرد، crypto/rand انتخاب درست است.

#Go #Golang #RandomNumberGeneration #Performance #Benchmark #PCG #mathrand #cryptorand

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


👑 @gopher_academy
👍1
🔵 عنوان مقاله
The 'Compare IP Subnets' Proposal

🟢 خلاصه مقاله:
در مجموعه Accepted!، «Anton» یکی از تغییرات «Go 1.26» را معرفی می‌کند که مشکل قدیمی مقایسه زیرشبکه‌های IP را هدف گرفته است. این تغییر روشی استاندارد و یکدست برای مقایسه و مرتب‌سازی زیرشبکه‌ها (IPv4 و IPv6) ارائه می‌کند تا کارهایی مثل مرتب‌سازی جدول‌های مسیریابی، حذف موارد تکراری و بررسی شمول (Containment) ساده و قابل اتکا شود. نتیجه این است که کدهای شبکه خواناتر می‌شوند، از خطاهای ظریف جلوگیری می‌شود و عملکرد بهبود می‌یابد؛ بدون آنکه ناسازگاری با کدهای موجود ایجاد شود. این قابلیت به‌صورت افزایشی اضافه می‌شود و می‌توان آن را تدریجی به کار گرفت.

#Go #Golang #Networking #IP #CIDR #Subnetting #Go126 #SoftwareEngineering

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


👑 @gopher_academy
👍2
🎙️ عنوان پادکست:
Agentic workflows and AI firewalls, so pretty much cancelling ourselves out
خلاصه پادکست:
** این متن به پارادوکس میان «جریان‌های کاری عامل‌محور» و «فایروال‌های AI» می‌پردازد: هرچه محدودیت‌ها را سخت‌تر کنیم، مزیت خودمختاری عامل‌ها را کم‌رنگ‌تر می‌کنیم. راه‌حل، نه حذف یکی به نفع دیگری، بلکه طراحی متوازن است: سیاست‌های لایه‌ای، محدوده‌دهی توانمندی‌ها، اجرا در sandbox، دروازه‌گذاری روی ابزارها و ثبت شفاف رخدادها تا هم ایمنی سنجش‌پذیر باشد و هم کارایی حفظ شود....
👍1
Forwarded from DevOps Labdon
🔵 عنوان مقاله
Exposing Kubernetes Services Without Cloud LoadBalancers: A Practical Guide

🟢 خلاصه مقاله:
این راهنما برای محیط‌های bare‑metal و air‑gapped که به LoadBalancerهای ابری دسترسی ندارند، روشی عملی برای اکسپوز کردن سرویس‌های Kubernetes ارائه می‌دهد. با ترکیب MetalLB و NGINX Ingress، ابتدا MetalLB یک IP پایدار به Serviceهای نوع LoadBalancer اختصاص می‌دهد، سپس NGINX Ingress ترافیک را بر اساس host و path به سرویس‌های داخلی مسیردهی می‌کند. نتیجه، یک نقطه ورودی واحد با IP ثابت، مدیریت ساده‌تر DNS و عدم نیاز به باز کردن پورت‌های متعدد است. آموزش شامل نصب و پیکربندی MetalLB (L2 یا BGP)، استقرار NGINX Ingress، تعریف Ingressها، و نکاتی درباره TLS، پایداری، و عیب‌یابی است؛ و نشان می‌دهد چرا این الگو نسبت به NodePort یا hostNetwork تمیزتر و مقیاس‌پذیرتر بوده و تجربه‌ای مشابه فضای ابری را بدون وابستگی به آن فراهم می‌کند.

#Kubernetes #MetalLB #NGINXIngress #BareMetal #AirGapped #DevOps #Ingress #LoadBalancer

🟣لینک مقاله:
https://ku.bz/CDWB9HJg7


👑 @DevOps_Labdon
🔵 عنوان مقاله
The “10x” Commandments of Highly Effective Go

🟢 خلاصه مقاله:
** مقاله با تمثیلی شوخ‌طبعانه، «ده فرمان» برای توسعه‌دهندگان Go ارائه می‌کند؛ نه چیزِ تازه، بلکه ده راهنمای کلی و کاربردی برای نوشتن کد ساده، خوانا و قابل نگه‌داری. محورهای اصلی شامل سادگی و خوانایی، اینترفیس‌های کوچک، مدیریت صریح خطا، همزمانی قابل پیش‌بینی با goroutine و channel، سازمان‌دهی درست پکیج‌ها، تست و بنچمارک، مستندسازی و بهینه‌سازی مبتنی بر اندازه‌گیری است. هر اصل با نمونه‌های عملی در GoLand همراه شده: استفاده از inspections برای شناسایی کد غیر‌ idiomatic، refactor به سمت اینترفیس‌های کوچک، الگوهای آماده برای error handling، اجرای تست و بنچمارک، دیباگ همزمانی، یکپارچه‌سازی linters و پروفایلینگ برای سنجش کارایی. برچسب «10x» فقط کمکی برای به‌خاطر سپردن است؛ پیام اصلی این است که با تکیه بر عادت‌های درست و بهره‌گیری از GoLand، انجام کار درست آسان‌تر می‌شود.

#Go #Golang #GoLand #SoftwareEngineering #BestPractices #Testing #Refactoring #Productivity

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


👑 @gopher_academy
1👍1
🔵 عنوان مقاله
Subtest Grouping in Go

🟢 خلاصه مقاله:
این مقاله از Golang Weekly توضیح می‌دهد چگونه با استفاده از T.Run در بسته testing می‌توان زیر‌آزمون‌ها را گروه‌بندی کرد تا تست‌های بزرگ و Table-Driven خواناتر، قابل نگهداری‌تر و قابل فیلترشدن شوند. با نام‌گذاری سلسله‌مراتبی مثل "Parser/Valid" یا "Auth/Admin/Permissions" می‌توان با go test -run فقط یک گروه یا یک مورد خاص را اجرا کرد و همان الگو برای Benchmarks با B.Run نیز کاربرد دارد. مزیت دیگر این الگو، مدیریت ساده‌تر Setup/Teardown با تکیه بر Closure و t.Cleanup و همچنین امکان موازی‌سازی امن با t.Parallel است. مقاله بر نام‌های شفاف، پرهیز از وضعیت مشترک قابل تغییر، گروه‌های منسجم، و استفاده از t.Helper برای ساده‌سازی تأکید می‌کند؛ ضمن اینکه خروجی ساخت‌یافته تست‌ها با -json و ابزارها/IDEها به‌خوبی یکپارچه می‌شود و عیب‌یابی و سرعت توسعه را بهبود می‌دهد.

#Go #Golang #Testing #Subtests #GoTesting #GolangWeekly #SoftwareTesting

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


👑 @gopher_academy
👍1
🔵 عنوان مقاله
the results of its latest 'State of Developer Ecosystem Report'

🟢 خلاصه مقاله:
خلاصه تازه‌ترین State of Developer Ecosystem Report نشان می‌دهد Go در شاخص Language Promise Index رتبه چهارم و در فهرست "languages developers want to adopt next" رتبه نخست را کسب کرده است. این نتایج از رشد چشمگیر و علاقه بالای توسعه‌دهندگان به Go حکایت دارد؛ زبانی ساده، سریع و مناسب برای کارهای cloud-native، microservices و زیرساخت که انتظار می‌رود حضورش در پروژه‌های واقعی و مسیرهای یادگیری و استخدام بیشتر شود.

#Go #golang #DeveloperEcosystem #DeveloperSurvey #ProgrammingLanguages #LanguageTrends #SoftwareEngineering

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


👑 @gopher_academy
1
Forwarded from VIP
🚀 به دنیای توسعه و تکنولوژی خوش اومدی!

اگر به موضوعات زیر علاقه‌مندی:

🔹 Golang
🔹 Linux & DevOps
🔹 Software Engineering
🔹 AI & Machine Learning
🔹 فرصت‌های شغلی ریموت (خارجی و داخلی)

ما برات یه مجموعه کانال‌های تخصصی ساختیم تا همیشه به‌روز، حرفه‌ای و الهام‌بخش بمونی!
📚 یادگیری، فرصت، شبکه‌سازی و پیشرفت، همش اینجاست...

📌 از این لینک همه چنل‌هامونو یه‌جا ببین و جوین شو:

👉 https://t.me/addlist/AJ7rh2IzIh02NTI0
👍1
🔵 عنوان مقاله
Durable Background Execution with Go and SQLite

🟢 خلاصه مقاله:
این مقاله نشان می‌دهد چگونه می‌توان با ترکیب Go و SQLite یک سیستم اجرای پس‌زمینه‌ای ساخت که در برابر کرش و راه‌اندازی مجدد مقاوم است، بدون نیاز به سرویس‌های خارجی. الگوی اصلی شامل صف کاری مبتنی بر SQLite با ستون‌هایی برای وضعیت، شمارش تلاش‌ها و زمان اجاره (lease) است؛ کارگرها کار را در تراکنش می‌گیرند، با زمان اجاره کوتاه اجرا می‌کنند، و نتیجه را ثبت می‌کنند تا در صورت کرش، کار دوباره قابل بازیابی باشد. با فعال‌سازی WAL، شاخص‌گذاری درست، backoff نمایی و الزام به idempotency، معمولاً به تضمین at-least-once می‌رسیم. کنترل همزمانی با worker pool، خاموش‌سازی تمیز با سیگنال‌ها و context، و رصد شاخص‌هایی مانند نرخ خطا و زمان پردازش از ملزومات عملیاتی است. برای آزمودن این رفتارها، استفاده از Subtest Grouping in Go (با ایده‌هایی از Dima Kotik و Redowan Delowar) کمک می‌کند سناریوها به‌صورت گروهی، خوانا و قابل موازی‌سازی بررسی شوند.

#Go #SQLite #BackgroundJobs #Durability #GoTesting #Subtests #Concurrency #SoftwareDesign

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


👑 @gopher_academy
👍1