🔵 عنوان مقاله
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