Gopher Academy
3.84K subscribers
931 photos
42 videos
280 files
2.18K links
🕸 Gopher Academy

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

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

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
GopherCon Korea 2025

🟢 خلاصه مقاله:
**GopherCon Korea 2025 حدود یک ماه دیگر، در تاریخ ۹ نوامبر برگزار می‌شود. این رویداد جامعه‌محور برای توسعه‌دهندگان Go (Golang) فرصتی مناسب است تا به‌روزترین روندها را دنبال کنند، تجربه‌های عملی را به اشتراک بگذارند و شبکه‌سازی مؤثری داشته باشند. معمولاً نشست‌ها به موضوعاتی مانند مفاهیم زبان و کارایی، الگوهای هم‌زمانی، توسعه cloud-native و microservices، ابزارها و observability و مطالعات موردی در مقیاس تولید می‌پردازد. اگر قصد حضور دارید، اکنون زمان خوبی برای ثبت‌نام و برنامه‌ریزی سفر است و پیگیری کانال‌های رسمی برای جزئیات برنامه و مکان توصیه می‌شود.

#GopherConKorea #GopherCon #Golang #Go #TechConference #Developers #Korea #SoftwareEngineering

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


👑 @gopher_academy
1
🔵 عنوان مقاله
15 Go Subtleties You May Not Already Know

🟢 خلاصه مقاله:
این مقاله یک مرور جمع‌وجور و کاربردی از ۱۵ ظرافت کمترشناخته‌شده در Go است؛ نکاتی که معمولاً در بازبینی کد و اشکال‌زدایی مهم می‌شوند. از تفاوت nil در اینترفیس‌ها تا تفاوت گیرنده‌های اشاره‌ای و مقداری، رفتار slice و map، ترتیب پیمایش map و زمان‌بندی و هزینه defer، همگی با مثال‌های کوتاه بیان شده‌اند. بخش‌هایی درباره همزمانی و الگوهای هماهنگی (جلوگیری از نشت goroutine و استفاده درست از context) و نیز ظرایف کار با زمان—از تفاوت زمان یکنواخت و دیواری تا کار با تایمرها، tickerها و بسته time—هم پوشش داده می‌شود. نتیجه: مطلبی سریع و قابل مرور که حتی اگر فقط چند نکته‌اش برایتان تازه باشد، ارزش خواندن دارد؛ و اگر همه را می‌دانید، حس خوبی از تأیید دانسته‌هایتان می‌گیرید.

#Go #Golang #time #Concurrency #ProgrammingTips #SoftwareEngineering #GoTips

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


👑 @gopher_academy
🔵 عنوان مقاله
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
🔵 عنوان مقاله
Writing Better Go: Lessons from 10 Code Reviews

🟢 خلاصه مقاله:
** این اسلایدها با عنوان Writing Better Go: Lessons from 10 Code Reviews حاصل ارائه‌ای از Konrad Reiche در GoLab 2025 است و مجموعه‌ای از الگوهای تکرارشونده در بازبینی‌های واقعی کد را به راهنمایی‌های عملی تبدیل می‌کند. محور اصلی، نوشتن کد ساده و خوانا با Go است: طراحی API‌های کوچک و منسجم، نام‌گذاری دقیق، تعریف interface در محل مصرف، استفاده سنجیده از composition، صفر-مقدارهای مفید، عبور منظم context و پرهیز از وضعیت‌های سراسری.

بخش مهمی از درس‌ها به خطاها و ثبت رویداد می‌پردازد: خطاها را به‌عنوان مقدار مدیریت کنید، با %w زمینه اضافه کنید، از panic فقط برای شکست‌های غیرقابل‌بازیابی در آغاز اجرا بهره ببرید، منابع را با defer جمع کنید، و در کتابخانه‌ها به‌جای لاگ‌کردن، خطا برگردانید تا برنامه اصلی مسئول لاگ باشد.

در همروندی، تأکید بر سادگی و ایمنی است: چرخه عمر goroutine‌ها را صریح کنید، آن‌ها را به context گره بزنید، با select روی context.Done() از نشت جلوگیری کنید، و بسته به مسئله از channel یا ابزارهای sync به‌درستی استفاده کنید. بافرگذاری آگاهانه، مستندسازی قراردادها، و اعمال timeout و backpressure در پایپلاین‌ها ضروری است.

برای کیفیت و کارایی، تست‌های جدول‌محور، پوشش مرزی، fuzzing، اجرای race detector، بنچمارک با testing.B و پروفایل با pprof توصیه می‌شود؛ از بهینه‌سازی زودهنگام بپرهیزید و تغییرات را بر اساس اندازه‌گیری انجام دهید.

در نهایت، فرهنگ بازبینی و ابزارهای خودکار نقش کلیدی دارند: یکدستی با gofmt/goimports، بررسی‌های خودکار با go vet و staticcheck در CI، درخواست‌های کوچک با پیام‌های شفاف و تمرکز بازبینی بر درستی، طراحی و نگهداشت‌پذیری. این چک‌لیست عملی می‌تواند فوراً در تیم‌ها و کدبیس‌های Go به کار گرفته شود.

#Go #Golang #CodeReview #GoLab2025 #SoftwareEngineering #BestPractices #Concurrency #ErrorHandling

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


👑 @gopher_academy
👍1
🔵 عنوان مقاله
The 'Compare IP Subnets' Proposal

🟢 خلاصه مقاله:
در مجموعه Accepted!، «Anton» یکی از تغییرات «Go 1.26» را معرفی می‌کند که مشکل قدیمی مقایسه زیرشبکه‌های IP را هدف گرفته است. این تغییر روشی استاندارد و یکدست برای مقایسه و مرتب‌سازی زیرشبکه‌ها (IPv4 و IPv6) ارائه می‌کند تا کارهایی مثل مرتب‌سازی جدول‌های مسیریابی، حذف موارد تکراری و بررسی شمول (Containment) ساده و قابل اتکا شود. نتیجه این است که کدهای شبکه خواناتر می‌شوند، از خطاهای ظریف جلوگیری می‌شود و عملکرد بهبود می‌یابد؛ بدون آنکه ناسازگاری با کدهای موجود ایجاد شود. این قابلیت به‌صورت افزایشی اضافه می‌شود و می‌توان آن را تدریجی به کار گرفت.

#Go #Golang #Networking #IP #CIDR #Subnetting #Go126 #SoftwareEngineering

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


👑 @gopher_academy
👍2
🔵 عنوان مقاله
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
1👍1
🔵 عنوان مقاله
the results of its latest 'State of Developer Ecosystem Report'

🟢 خلاصه مقاله:
خلاصه تازه‌ترین State of Developer Ecosystem Report نشان می‌دهد Go در شاخص Language Promise Index رتبه چهارم و در فهرست "languages developers want to adopt next" رتبه نخست را کسب کرده است. این نتایج از رشد چشمگیر و علاقه بالای توسعه‌دهندگان به Go حکایت دارد؛ زبانی ساده، سریع و مناسب برای کارهای cloud-native، microservices و زیرساخت که انتظار می‌رود حضورش در پروژه‌های واقعی و مسیرهای یادگیری و استخدام بیشتر شود.

#Go #golang #DeveloperEcosystem #DeveloperSurvey #ProgrammingLanguages #LanguageTrends #SoftwareEngineering

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


👑 @gopher_academy
1
🔵 عنوان مقاله
The Concurrency Conundrum: A Story of Curiosity and Code

🟢 خلاصه مقاله:
**این مقاله داستان برخورد با یک مشکل رایج در همزمانی است: سرویس ظاهراً سالمی که زیر بار گاهی قفل می‌کرد و درخواست‌ها معطل می‌ماندند. با افزودن لاگ‌های ساخت‌یافته، ابزارهای رهگیری و یک تست حداقلیِ قابل‌بازتولید، ریشه مشخص شد: ترتیب‌گیری نادرست قفل‌ها و بخش‌های بحرانی طولانی که به بن‌بست و گاهی رقابت در دسترسی به متغیرها منجر می‌شد. راه‌حل با تعریف نظم ثابت در ترتیب اخذ قفل‌ها، جایگزینی قفل سراسری با قفل‌های ریزدانه و read-write، کوچک‌کردن بخش‌های بحرانی و پرهیز از I/O زیر قفل، به‌کارگیری try-lock با backoff و timeout، و در مسیرهای پرتردد، حرکت به سمت پیام‌محوری به‌جای وضعیت مشترک اجرا شد. سپس با Thread Sanitizer و ابزارهای تشخیص بن‌بست در CI، تست‌های تنشی و مبتنی بر ویژگی، و سنجه‌های مربوط به تراکم قفل، سامانه سخت‌جان‌تر شد. جمع‌بندی: مدل همزمانی را ساده نگه دارید، داده‌های نامتغیر و عملیات idempotent را ترجیح دهید، از سازوکارهای سطح‌بالا استفاده کنید، و ترتیب قفل‌ها و ناوردایی‌ها را مستند و پایش‌پذیر کنید.

#Concurrency #Locking #Deadlock #RaceConditions #Multithreading #Debugging #SoftwareEngineering #Reliability

🟣لینک مقاله:
https://golangweekly.com/link/176333/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
🔵 عنوان مقاله
Timezones as Types: Making Time Safer to Use in Go?

🟢 خلاصه مقاله:
** این مقاله ایده Timezones as Types را بررسی می‌کند؛ رویکردی که در آن اطلاعات منطقه زمانی به‌صورت مستقیم در نوع داده‌ها کدگذاری می‌شود. نویسنده، سازنده go-meridian، نشان می‌دهد چگونه می‌توان با مدل‌کردن timezoneها در سطح نوع، از ترکیب نادرست زمان‌ها جلوگیری کرد تا خطاها به‌جای زمان اجرا، در مرحله کامپایل آشکار شوند.

go-meridian به‌جای تکیه بر متغیرهای بدون نوع مشخص، زمان را به نوعی گره می‌زند که منطقه زمانی را نیز در بر دارد؛ بنابراین اگر دو مقدار با منطقه‌های متفاوت بدون تبدیل صریح ترکیب شوند، کد اصلاً کامپایل نمی‌شود. این کار خطاهای رایجی مانند دست‌کم‌گرفتن تغییرات DST، ابهام در زمان‌های محلی، یا تبدیل‌های ضمنی از/به UTC را کاهش می‌دهد و خوانایی و صراحت کد را بهبود می‌بخشد.

این کتابخانه با سبک Go و بسته time سازگار است، تبدیل‌های صریح را در نقاط مرزی اجبار می‌کند و به تیم‌ها کمک می‌کند داده‌های ورودی را زودهنگام به زمان‌های با نوع صحیح تبدیل کنند. هرچند ممکن است اندکی صراحت بیشتر در امضاها و تبدیل‌ها لازم باشد، اما دستاورد آن قراردادهای واضح‌تر، ایمنی بالاتر و نگه‌داری آسان‌تر کدهای حساس به زمان است.

#Go #Golang #Timezone #TypeSafety #StaticTyping #goMeridian #TimeHandling #SoftwareEngineering

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


👑 @gopher_academy