🔵 عنوان مقاله
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
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
The JetBrains Blog
The “10x” Commandments of Highly Effective Go | The GoLand Blog
What makes Go developers truly effective? In this guest post, John Arundel shares ten practical “commandments” of Go excellence – timeless lessons for writing cleaner, safer, and more maintainable Go code.
❤1👍1
🔵 عنوان مقاله
Revisiting Interface Segregation in Go
🟢 خلاصه مقاله:
این مطلب «Interface Segregation Principle (ISP)» را از منظر Go مرور میکند: مشتری نباید به متدهایی وابسته شود که از آنها استفاده نمیکند. در Go، راهکارهای رایج شامل ساختن رابطهای کوچک و رفتاری، تعریف رابطها در محل استفاده، «پذیرفتن interface و برگرداندن نوعهای concrete»، و الهام گرفتن از نمونههای استاندارد مثل io.Reader و io.Writer است.
مشکل وقتی پیش میآید که یک پکیج، رابطهای چاق و همهچیزدار صادر میکند؛ این کار تغییرات را سخت و پیادهسازیها را پر از متدهای بیمصرف میکند. بهتر است رابطهای کوچک را ترکیب یا embed کنیم، فقط وقتی واقعاً لازم است سراغ رابطهای بزرگ برویم، و از میانافزارها/adapterها برای سازگاری در مسیر ریفکتور کمک بگیریم.
راهبرد عملی: ابتدا پیادهسازیهای concrete بسازید، بعد بر اساس نیاز واقعی رابط استخراج کنید؛ مجموعهمتدها را کوچک نگه دارید، برای تست از فیک/ماک بهره ببرید، و APIها را تدریجی تکامل دهید. با وجود generics هم باید از تعمیم بیجا پرهیز کرد و رابطهای runtime را بر رفتار متمرکز نگه داشت. نتیجه پایبندی به ISP در Go، کدی سادهتر برای تست، نگهداشت و توسعه است؛ نکاتی که در تازهترین مطلب معرفیشده توسط Golang Weekly نیز برجسته شدهاند.
#Go #Golang #InterfaceSegregation #ISP #GoInterfaces #SoftwareDesign #Refactoring #GolangWeekly
🟣لینک مقاله:
https://golangweekly.com/link/176622/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Revisiting Interface Segregation in Go
🟢 خلاصه مقاله:
این مطلب «Interface Segregation Principle (ISP)» را از منظر Go مرور میکند: مشتری نباید به متدهایی وابسته شود که از آنها استفاده نمیکند. در Go، راهکارهای رایج شامل ساختن رابطهای کوچک و رفتاری، تعریف رابطها در محل استفاده، «پذیرفتن interface و برگرداندن نوعهای concrete»، و الهام گرفتن از نمونههای استاندارد مثل io.Reader و io.Writer است.
مشکل وقتی پیش میآید که یک پکیج، رابطهای چاق و همهچیزدار صادر میکند؛ این کار تغییرات را سخت و پیادهسازیها را پر از متدهای بیمصرف میکند. بهتر است رابطهای کوچک را ترکیب یا embed کنیم، فقط وقتی واقعاً لازم است سراغ رابطهای بزرگ برویم، و از میانافزارها/adapterها برای سازگاری در مسیر ریفکتور کمک بگیریم.
راهبرد عملی: ابتدا پیادهسازیهای concrete بسازید، بعد بر اساس نیاز واقعی رابط استخراج کنید؛ مجموعهمتدها را کوچک نگه دارید، برای تست از فیک/ماک بهره ببرید، و APIها را تدریجی تکامل دهید. با وجود generics هم باید از تعمیم بیجا پرهیز کرد و رابطهای runtime را بر رفتار متمرکز نگه داشت. نتیجه پایبندی به ISP در Go، کدی سادهتر برای تست، نگهداشت و توسعه است؛ نکاتی که در تازهترین مطلب معرفیشده توسط Golang Weekly نیز برجسته شدهاند.
#Go #Golang #InterfaceSegregation #ISP #GoInterfaces #SoftwareDesign #Refactoring #GolangWeekly
🟣لینک مقاله:
https://golangweekly.com/link/176622/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Redowan's Reflections
Revisiting interface segregation in Go
Object-oriented (OO) patterns get a lot of flak in the Go community, and often for good
reason.
Still, I’ve found that principles like SOLID, despite their OO origin, can be useful
guides when thinking about design in Go.
Recently, while chatting with a few…
reason.
Still, I’ve found that principles like SOLID, despite their OO origin, can be useful
guides when thinking about design in Go.
Recently, while chatting with a few…
👍2
🔵 عنوان مقاله
Red, Green, Refactor: Writing Perfect Go, with TDD
🟢 خلاصه مقاله:
** این مطلب سه دیدگاه مکمل برای بهبود کدنویسی در Go ارائه میکند: بهکارگیری چرخه Red–Green–Refactor در TDD برای ساخت پکیجهای کوچک و APIهای شفاف و ریفکتور امن با تکیه بر تستهای سریع؛ مرور کاربردی John Arundel از sync.Pool برای کاهش فشار تخصیص در مسیرهای داغ، با تأکید بر اینکه این سازوکار «کش» نیست و اقلام آن ممکن است هر لحظه حذف شوند، و استفاده از آن فقط با اندازهگیری و پروفایل توجیهپذیر است؛ و توضیح Jesús Espino در Devtrovert درباره Scanner در کامپایلر Go و نحوه تبدیل کد منبع به توکنها، که منشأ برخی خطاها و رفتار ابزارها را روشن میکند. جمعبندی: با TDD کیفیت و قابلیت نگهداری را بالا ببرید، sync.Pool را صرفاً وقتی به کار بگیرید که دادهها گلوگاه تخصیص را نشان میدهند، و با شناخت روند اسکن، ابزار بهتر و کد خواناتر بسازید.
#Go #Golang #TDD #syncPool #Refactoring #GoCompiler #Performance #Profiling
🟣لینک مقاله:
https://golangweekly.com/link/176903/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Red, Green, Refactor: Writing Perfect Go, with TDD
🟢 خلاصه مقاله:
** این مطلب سه دیدگاه مکمل برای بهبود کدنویسی در Go ارائه میکند: بهکارگیری چرخه Red–Green–Refactor در TDD برای ساخت پکیجهای کوچک و APIهای شفاف و ریفکتور امن با تکیه بر تستهای سریع؛ مرور کاربردی John Arundel از sync.Pool برای کاهش فشار تخصیص در مسیرهای داغ، با تأکید بر اینکه این سازوکار «کش» نیست و اقلام آن ممکن است هر لحظه حذف شوند، و استفاده از آن فقط با اندازهگیری و پروفایل توجیهپذیر است؛ و توضیح Jesús Espino در Devtrovert درباره Scanner در کامپایلر Go و نحوه تبدیل کد منبع به توکنها، که منشأ برخی خطاها و رفتار ابزارها را روشن میکند. جمعبندی: با TDD کیفیت و قابلیت نگهداری را بالا ببرید، sync.Pool را صرفاً وقتی به کار بگیرید که دادهها گلوگاه تخصیص را نشان میدهند، و با شناخت روند اسکن، ابزار بهتر و کد خواناتر بسازید.
#Go #Golang #TDD #syncPool #Refactoring #GoCompiler #Performance #Profiling
🟣لینک مقاله:
https://golangweekly.com/link/176903/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Bitfield Consulting
Red, green, refactor: writing perfect Go, with TDD — Bitfield Consulting
Make it work, then make it right: the “red, green, refactor” technique helps us craft Go code that’s correct and beautiful. It’s easy! Shall we play a game?