Gopher Academy
3.84K subscribers
935 photos
42 videos
280 files
2.23K links
🕸 Gopher Academy

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

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

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
the Cup o'Go podcast

🟢 خلاصه مقاله:
آخرین شماره Golang Weekly پادکست Cup o'Go را برجسته کرده و آن را به‌عنوان همراهی صوتی و به‌روز برای پیگیری روندها و مباحث مهم دنیای Go معرفی می‌کند. این پادکست با مرور خبرها، نکات عملی و گفت‌وگو درباره ویژگی‌های زبان، ابزارها و الگوهای عملکرد، به توسعه‌دهندگان در سطوح مختلف کمک می‌کند تا بدون صرف زمان زیاد، در جریان تغییرات اکوسیستم Go بمانند و از محتوای کیوریت‌شده Golang Weekly یک مکمل کاربردی بسازند.

#Golang #GoDevelopers #GolangWeekly #CupOGo #Podcast #SoftwareEngineering #Backend #OpenSource

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


👑 @gopher_academy
11
🔵 عنوان مقاله
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
🔵 عنوان مقاله
their favorite Go related blog posts of all time.

🟢 خلاصه مقاله:
این شماره جدید از خبرنامه Golang Weekly فهرستی منتخب از «بهترین پست‌های وبلاگی مرتبط با Go» را گرد آورده است؛ مجموعه‌ای منسجم که به‌جای فهرست صرفِ لینک‌ها، مسیر مطالعه‌ای ارائه می‌دهد برای درک اصول ماندگار Go. موضوعات کلیدی مانند همروندی با goroutine و channel، خطاپرداری شفاف، استفاده از interface و ترکیب‌پذیری، آزمون‌نویسی و ابزارها، همچنین بهینه‌سازی کارایی، پروفایلینگ و مدیریت حافظه پوشش داده می‌شوند. هر انتخاب با توضیحی کوتاه درباره ارزش ماندگارش و اینکه به درد چه کسی و چه مسئله‌ای می‌خورد همراه است؛ نوآموزان می‌توانند آن را نقشه راه یادگیری بدانند و باتجربه‌ها نیز برای بازبینی مبانی و دیدگاه‌های عمیق‌تر از آن بهره ببرند. این گردآوری تصویری از مسیر بلوغ جامعه Go نیز ارائه می‌کند؛ از نوشته‌های اولیه که روحیه طراحی زبان را شکل دادند تا جمع‌بندی‌های اخیر که بر تجربه‌های تولیدی تکیه دارند—مجموعه‌ای برای نشان‌گذاری، اشتراک با تیم و رجوع‌های مکرر.

#Go #Golang #GolangWeekly #Programming #SoftwareEngineering #Concurrency #GoTips #DevCommunity

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


👑 @gopher_academy
1👍1
🔵 عنوان مقاله
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
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
👍2