Learn Go with test-driven development
با روش TDD زبان برنامهنویسی go رو یاد بگیرید.
#go #golang #tdd #test #red #green #refactor #testing #driven #development
https://github.com/quii/learn-go-with-tests
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
با روش TDD زبان برنامهنویسی go رو یاد بگیرید.
#go #golang #tdd #test #red #green #refactor #testing #driven #development
https://github.com/quii/learn-go-with-tests
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔥8
🔵 عنوان مقاله
PegoMock 4.3: A Powerful Yet Simple Mocking Framework
🟢 خلاصه مقاله:
**PegoMock 4.3 یک فریمورک mocking ساده اما قدرتمند است که با یک DSL خوانا نوشتن، خواندن و نگهداری تستها را آسان میکند. هسته اصلی آن، زبانی است که بهجای کدهای طولانی، نیت تست را شفاف بیان میکند. این ابزار از stubbing و argument matching پشتیبانی میکند؛ یعنی میتوانید رفتار وابستگیهای شبیهسازیشده را تعریف کنید و بر اساس الگوهای ورودی، انتظارها را دقیق و انعطافپذیر تنظیم کنید. نتیجه، تستهایی شفاف، کمبوایلرپلیت و قابل اتکا برای تیمهاست.
#Testing #Mocking #DSL #UnitTesting #Stubbing #ArgumentMatching #TestAutomation
🟣لینک مقاله:
https://golangweekly.com/link/175072/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
PegoMock 4.3: A Powerful Yet Simple Mocking Framework
🟢 خلاصه مقاله:
**PegoMock 4.3 یک فریمورک mocking ساده اما قدرتمند است که با یک DSL خوانا نوشتن، خواندن و نگهداری تستها را آسان میکند. هسته اصلی آن، زبانی است که بهجای کدهای طولانی، نیت تست را شفاف بیان میکند. این ابزار از stubbing و argument matching پشتیبانی میکند؛ یعنی میتوانید رفتار وابستگیهای شبیهسازیشده را تعریف کنید و بر اساس الگوهای ورودی، انتظارها را دقیق و انعطافپذیر تنظیم کنید. نتیجه، تستهایی شفاف، کمبوایلرپلیت و قابل اتکا برای تیمهاست.
#Testing #Mocking #DSL #UnitTesting #Stubbing #ArgumentMatching #TestAutomation
🟣لینک مقاله:
https://golangweekly.com/link/175072/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - petergtz/pegomock: Pegomock is a powerful, yet simple mocking framework for the Go programming language
Pegomock is a powerful, yet simple mocking framework for the Go programming language - petergtz/pegomock
👍1
🔵 عنوان مقاله
How to Reproduce and Fix an I/O Data Race with Go and DTrace
🟢 خلاصه مقاله:
در این مقاله نویسنده با یک باگ مبهم روبهرو میشود که فقط در CI رخ میدهد: یک data race در سطح I/O فایلها که باعث شکست گهگاه تستها میشود. چون این رقابت در مرز فایلسیستم رخ میدهد و نه در حافظه مشترک، ابزار race detector در Go آن را تشخیص نمیدهد. برای بازتولید محلی، نویسنده شرایط شبیه CI را ایجاد میکند: اجرای تکراری تستها، افزایش همزمانی، و ایجاد تنوع زمانی تا ترتیبهای نادری که خطا را میسازند آشکار شوند. با استفاده از DTrace و رصد فراخوانیهای سیستمی مانند open، write، fsync و rename، الگوی واقعی آشکار میشود: خواندن فایل همزمان با نوشتن/حذف جزئی یا قبل از تحویل اتمی محتوا.
راهکار با اتمیسازی و هماهنگسازی است: نوشتن در فایل موقت و سپس os.Rename برای تحویل اتمی، افزودن fsync در نقاط لازم، و در صورت نیاز قفل/کانال برای سریالسازی دسترسی به مسیرهای مشترک. در تستها نیز از t.TempDir() برای جداسازی حالت، پرهیز از تکیه بر mtime، و اتکا به سیگنالهای قطعی بهجای تأخیرهای زمانی استفاده میشود. نتیجه، حذف flaky بودن در CI و همگرایی رفتار محلی و CI است؛ و درس اصلی اینکه برای رقابتهای I/O باید به ابزارهای ردیابی سطح سیستم تکیه کرد و پروتکل I/O را صریح و اتمی طراحی نمود.
#Go #DTrace #Concurrency #CI #Filesystem #Testing #Debugging #RaceCondition
🟣لینک مقاله:
https://golangweekly.com/link/175360/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
How to Reproduce and Fix an I/O Data Race with Go and DTrace
🟢 خلاصه مقاله:
در این مقاله نویسنده با یک باگ مبهم روبهرو میشود که فقط در CI رخ میدهد: یک data race در سطح I/O فایلها که باعث شکست گهگاه تستها میشود. چون این رقابت در مرز فایلسیستم رخ میدهد و نه در حافظه مشترک، ابزار race detector در Go آن را تشخیص نمیدهد. برای بازتولید محلی، نویسنده شرایط شبیه CI را ایجاد میکند: اجرای تکراری تستها، افزایش همزمانی، و ایجاد تنوع زمانی تا ترتیبهای نادری که خطا را میسازند آشکار شوند. با استفاده از DTrace و رصد فراخوانیهای سیستمی مانند open، write، fsync و rename، الگوی واقعی آشکار میشود: خواندن فایل همزمان با نوشتن/حذف جزئی یا قبل از تحویل اتمی محتوا.
راهکار با اتمیسازی و هماهنگسازی است: نوشتن در فایل موقت و سپس os.Rename برای تحویل اتمی، افزودن fsync در نقاط لازم، و در صورت نیاز قفل/کانال برای سریالسازی دسترسی به مسیرهای مشترک. در تستها نیز از t.TempDir() برای جداسازی حالت، پرهیز از تکیه بر mtime، و اتکا به سیگنالهای قطعی بهجای تأخیرهای زمانی استفاده میشود. نتیجه، حذف flaky بودن در CI و همگرایی رفتار محلی و CI است؛ و درس اصلی اینکه برای رقابتهای I/O باید به ابزارهای ردیابی سطح سیستم تکیه کرد و پروتکل I/O را صریح و اتمی طراحی نمود.
#Go #DTrace #Concurrency #CI #Filesystem #Testing #Debugging #RaceCondition
🟣لینک مقاله:
https://golangweekly.com/link/175360/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
🔵 عنوان مقاله
How to Get Started with GitHub Copilot CLI
🟢 خلاصه مقاله:
** این مطلب با راهنماییای عملی از Andrea Griffiths (GitHub) نشان میدهد چگونه با GitHub Copilot CLI شروع کنید تا در ترمینال، درخواستهای زبانی خود را به دستورات شِل تبدیل کنید، خطاها و فلگهای ناشناخته را توضیح بگیرید و سریعتر اشکالزدایی کنید. روند آغاز کار ساده است: نصب و ورود به GitHub CLI، افزودن افزونه Copilot و بررسی فعال بودن دسترسی Copilot روی حساب GitHub؛ سپس با gh copilot help و دستورات تولید/توضیح فرمانها، میتوانید قبل از اجرا خروجیها را بررسی کنید تا از ایمنی کار مطمئن شوید. این ابزار روی Bash، Zsh و PowerShell کار میکند و برای وظایف روزمره مثل جستوجو، مدیریت پردازهها و کار با Git چرخه بازخورد را کوتاه میکند.
همزمان، نوشتهای از Redowan Delowar درباره Organizing Go Tests پیشنهاد میشود که ساختاردهی حرفهای تستهای Go را مرور میکند: کنار هم نگهداشتن فایلهای *_test.go با کد، بهکارگیری تستهای جدولمحور و زیربخشها با t.Run، استفاده از پوشه testdata برای دادههای تست، همراه با بنچمارکها، مثالها، نامگذاری شفاف، گزارش پوشش و اتصال go test به CI. مجموع این توصیهها هم بهرهوری توسعه را بالا میبرد و هم کیفیت و قابلیت اعتماد تستها را.
#GitHub #Copilot #CLI #Go #Testing #DeveloperTools #Productivity #DevOps
🟣لینک مقاله:
https://golangweekly.com/link/175637/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
How to Get Started with GitHub Copilot CLI
🟢 خلاصه مقاله:
** این مطلب با راهنماییای عملی از Andrea Griffiths (GitHub) نشان میدهد چگونه با GitHub Copilot CLI شروع کنید تا در ترمینال، درخواستهای زبانی خود را به دستورات شِل تبدیل کنید، خطاها و فلگهای ناشناخته را توضیح بگیرید و سریعتر اشکالزدایی کنید. روند آغاز کار ساده است: نصب و ورود به GitHub CLI، افزودن افزونه Copilot و بررسی فعال بودن دسترسی Copilot روی حساب GitHub؛ سپس با gh copilot help و دستورات تولید/توضیح فرمانها، میتوانید قبل از اجرا خروجیها را بررسی کنید تا از ایمنی کار مطمئن شوید. این ابزار روی Bash، Zsh و PowerShell کار میکند و برای وظایف روزمره مثل جستوجو، مدیریت پردازهها و کار با Git چرخه بازخورد را کوتاه میکند.
همزمان، نوشتهای از Redowan Delowar درباره Organizing Go Tests پیشنهاد میشود که ساختاردهی حرفهای تستهای Go را مرور میکند: کنار هم نگهداشتن فایلهای *_test.go با کد، بهکارگیری تستهای جدولمحور و زیربخشها با t.Run، استفاده از پوشه testdata برای دادههای تست، همراه با بنچمارکها، مثالها، نامگذاری شفاف، گزارش پوشش و اتصال go test به CI. مجموع این توصیهها هم بهرهوری توسعه را بالا میبرد و هم کیفیت و قابلیت اعتماد تستها را.
#GitHub #Copilot #CLI #Go #Testing #DeveloperTools #Productivity #DevOps
🟣لینک مقاله:
https://golangweekly.com/link/175637/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
The GitHub Blog
GitHub Copilot CLI: How to get started
From cloning a repository to opening a pull request, here’s how to streamline your workflow with Copilot CLI.
🔵 عنوان مقاله
Sift: A Lightweight Terminal UI for Displaying Go Test Results
🟢 خلاصه مقاله:
Sift یک رابط کاربری ترمینالی سبک برای نمایش نتایج آزمونهای Go است. با لولهکردن خروجی JSON در حالت verbose به این ابزار، نتایج به نمای قابلپیمایش با بخشهای تاشو تبدیل میشوند تا ابتدا روی موارد مهم تمرکز کنید و فقط هنگام نیاز جزئیات را باز کنید. این رویکرد شلوغی خروجی را کم میکند، خوانایی را بالا میبرد و فرایند عیبیابی را در همان محیط ترمینال سریعتر و سادهتر میسازد.
#Go #Testing #TUI #CLI #JSON #DeveloperTools #Sift
🟣لینک مقاله:
https://golangweekly.com/link/175641/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Sift: A Lightweight Terminal UI for Displaying Go Test Results
🟢 خلاصه مقاله:
Sift یک رابط کاربری ترمینالی سبک برای نمایش نتایج آزمونهای Go است. با لولهکردن خروجی JSON در حالت verbose به این ابزار، نتایج به نمای قابلپیمایش با بخشهای تاشو تبدیل میشوند تا ابتدا روی موارد مهم تمرکز کنید و فقط هنگام نیاز جزئیات را باز کنید. این رویکرد شلوغی خروجی را کم میکند، خوانایی را بالا میبرد و فرایند عیبیابی را در همان محیط ترمینال سریعتر و سادهتر میسازد.
#Go #Testing #TUI #CLI #JSON #DeveloperTools #Sift
🟣لینک مقاله:
https://golangweekly.com/link/175641/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - timtatt/sift: A lightweight terminal UI for displaying Go tests
A lightweight terminal UI for displaying Go tests. Contribute to timtatt/sift development by creating an account on GitHub.