Gopher Academy
3.85K subscribers
935 photos
42 videos
280 files
2.24K links
🕸 Gopher Academy

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

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

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
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
🔵 عنوان مقاله
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
🔵 عنوان مقاله
Getting Started with Fuzzing in Go

🟢 خلاصه مقاله:
این راهنمای رسمی از Go Docs یک شروع عملی و به‌روز برای افزودن fuzzing به جریان تست‌های Go است. آموزش نشان می‌دهد چگونه یک تابع FuzzXxx با testing.F بنویسید، ورودی‌های اولیه را با f.Add اضافه کنید، و با go test -fuzz اجرا بگیرید (در صورت نیاز با -fuzztime). هنگام کشف خطا یا panic، ورودیِ کوچک‌سازی‌شده به‌طور خودکار در testdata/fuzz ذخیره می‌شود تا بتوانید آن را به‌صورت قطعی بازتولید، عیب‌یابی و به‌عنوان تست رگرسیون نگه‌داری کنید. همچنین بهترین‌روش‌ها مانند تعیین حدود منابع، اجتناب از نادترمینیزم، تعریف خاصیت/قاعده مورد انتظار، هدف‌گیری کدهای parser/decoder و ادغام در CI را پوشش می‌دهد. نتیجه اینکه افزودن fuzzing با ابزارهای داخلی Go ساده است و این راهنما مراحل، دستورات و نمونه‌کد لازم را در اختیارتان می‌گذارد.

#Go #Fuzzing #GoDocs #SoftwareTesting #Security #GoTesting #PropertyBasedTesting #CI

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


👑 @gopher_academy
1👍1🔥1