🔵 عنوان مقاله
switch Statements in Go
🟢 خلاصه مقاله:
این مطلب از Golang Weekly بهصورت عملی سراغ عبارتهای switch در Go میرود و نشان میدهد چگونه میتوان بهجای زنجیرههای if/else طولانی، کدی خواناتر نوشت. ابتدا نحو و قواعد ارزیابی switch، استفاده از چند مقدار در یک case، نقش default، و این نکته که در Go سقوط خودکار بین caseها وجود ندارد و فقط با fallthrough فعال میشود، توضیح داده میشود. سپس فرم بدون تگِ switch { ... } برای نگارش نگهبانهای منطقیِ مرتب معرفی میشود.
بخش بعدی به type switch اختصاص دارد: وقتی با interface سروکار دارید، switch روی v.(type) اجازه میدهد بر اساس نوع واقعی تصمیم بگیرید، از nil بهدرستی عبور کنید و محدوده متغیرها در سربرگ switch و داخل caseها را مدیریت کنید. مقاله الگوهای کاربردی مثل مسیردهی بر اساس روش HTTP، دستهبندی خطاها برحسب نوع، شاخهبندی زمانمحور و استفاده از ثابتها را مرور میکند و در کنار آن به نکات سبک و کارایی اشاره دارد. جمعبندی این است که با رعایت چند قاعده ساده و پرهیز از دامهای متداول، switch در Go ابزاری شفاف، قابل نگهداری و گاه سریعتر از شرطهای زنجیرهای خواهد بود.
#Go #Golang #GolangWeekly #switch #TypeSwitch #GoTips #Programming #Backend
🟣لینک مقاله:
https://golangweekly.com/link/176626/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
switch Statements in Go
🟢 خلاصه مقاله:
این مطلب از Golang Weekly بهصورت عملی سراغ عبارتهای switch در Go میرود و نشان میدهد چگونه میتوان بهجای زنجیرههای if/else طولانی، کدی خواناتر نوشت. ابتدا نحو و قواعد ارزیابی switch، استفاده از چند مقدار در یک case، نقش default، و این نکته که در Go سقوط خودکار بین caseها وجود ندارد و فقط با fallthrough فعال میشود، توضیح داده میشود. سپس فرم بدون تگِ switch { ... } برای نگارش نگهبانهای منطقیِ مرتب معرفی میشود.
بخش بعدی به type switch اختصاص دارد: وقتی با interface سروکار دارید، switch روی v.(type) اجازه میدهد بر اساس نوع واقعی تصمیم بگیرید، از nil بهدرستی عبور کنید و محدوده متغیرها در سربرگ switch و داخل caseها را مدیریت کنید. مقاله الگوهای کاربردی مثل مسیردهی بر اساس روش HTTP، دستهبندی خطاها برحسب نوع، شاخهبندی زمانمحور و استفاده از ثابتها را مرور میکند و در کنار آن به نکات سبک و کارایی اشاره دارد. جمعبندی این است که با رعایت چند قاعده ساده و پرهیز از دامهای متداول، switch در Go ابزاری شفاف، قابل نگهداری و گاه سریعتر از شرطهای زنجیرهای خواهد بود.
#Go #Golang #GolangWeekly #switch #TypeSwitch #GoTips #Programming #Backend
🟣لینک مقاله:
https://golangweekly.com/link/176626/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Dolthub
Switch Statements in Go
Switch statements in Go have unique features that make it easy to write complex flow controls. Read this blog to see what makes them so special.
❤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