Gopher Academy
3.86K subscribers
935 photos
42 videos
280 files
2.24K links
🕸 Gopher Academy

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

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

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
Git 2.52 has been released

🟢 خلاصه مقاله:
نسخه Git 2.52 منتشر شد و با تمرکز بر بهبودهای کوچک اما کاربردی، تجربه روزمره کار با Git را روان‌تر می‌کند. مهم‌ترین تغییر، افزودن دستور جدید git last-modified است که برای هر فایل در یک پوشه مشخص می‌کند آخرین بار در کدام commit تغییر کرده است؛ قابلیتی مفید برای تعیین مالکیت کد، بازرسی تغییرات، رفع خطاها و اولویت‌بندی بازبینی‌ها. این دستور برای اسکریپت‌ها و CI نیز کاربردی است، چون می‌تواند به‌صورت خودکار آخرین commit مربوط به هر فایل را خروجی دهد و کارهای مانند بیلدهای افزایشی و خلاصه‌سازی تغییرات را ساده کند. فراتر از این، Git 2.52 شامل مجموعه‌ای از بهبودهای جزئی و پرداخت‌های کوچک است و به‌روزرسانی آن برای بیشتر کاربران بدون دردسر خواهد بود.

#Git #VersionControl #GitRelease #DevTools #SoftwareDevelopment #CLI #OpenSource

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


👑 @gopher_academy
4👍3
🔵 عنوان مقاله
Context-Aware Dialer Methods Coming to Go 1.26

🟢 خلاصه مقاله:
** این تغییر که نخستین‌بار چهار سال پیش مطرح شد، قرار است در Go 1.26 و اوایل 2026 به net.Dialer اضافه شود و «متدهای شبکه‌محورِ مبتنی بر context» را به‌صورت رسمی در اختیار قرار دهد. با این کار، برقراری اتصال برای شبکه‌های خاص (مثل TCP/UDP) با رعایت لغو شدن‌ها و ضرب‌الاجل‌های context به‌صورت یکپارچه انجام می‌شود. تغییرات افزایشی است و سازگاری گذشته حفظ می‌شود؛ کدهای فعلی بدون تغییر کار می‌کنند و پروژه‌هایی که کنترل دقیق‌تری می‌خواهند می‌توانند از متدهای جدید استفاده کنند.

#golang #go126 #netDialer #context #networking #gostdlib #apiDesign

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


👑 @gopher_academy
2
🔵 عنوان مقاله
Building Dolt on Windows: The 'Pacman' Game

🟢 خلاصه مقاله:
این مجموعه به سه موضوع کلیدی برای توسعه‌دهندگان می‌پردازد: ساخت Dolt روی Windows با تمثیل بازی «Pacman» برای شکار وابستگی‌ها و رفع ناسازگاری‌های سیستم‌عاملی؛ بررسی عملی Crush، عامل کدنویسی مبتنی بر TUI از Charm توسط Elian Deogracia-Brito که تجربه‌ی کار یکپارچه در ترمینال را ارزیابی می‌کند؛ و راهنمای Graham Helton برای پروفایلینگ برنامه‌های Go با pprof و k6 روی نمونه‌ای به نام Pears. پیام اصلی: ایجاد ساخت‌های پایدار روی Windows نیازمند مهار تفاوت‌های پلتفرمی است، ابزارهای TUI مانند Crush می‌توانند تمرکز و سرعت جریان کاری ترمینال‌محور را بالا ببرند، و ترکیب pprof با k6 باید به عادت روزمره‌ی تیم برای اندازه‌گیری، تحلیل و بهینه‌سازی عملکرد تبدیل شود.

#Dolt #Windows #Pacman #Crush #Charm #TUI #Go #pprof #k6 #Profiling

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


👑 @gopher_academy
Forwarded from Software Engineer Labdon
وقتی غول‌ها هم زمین می‌خورند!

قطعی گسترده اخیر سرویس‌های کلادفلر (Cloudflare) که ناشی از یک تغییر پیکربندی (Configuration Change) بود، یک واقعیت قاطع را به ما یادآوری کرد: قابلیت اطمینان ۱۰۰ درصدی یک توهم است.
موفقیت در دنیای فناوری، در طراحی برای شکست (Design for Failure) و توانایی بازگشت سریع و شفاف است.

۴ درس عملیاتی حیاتی برای افزایش پایداری سیستم (Resilience)
این واقعه، یک مطالعه موردی ارزشمند برای هر سازمان در حال رشدی است که بر روی سیستم‌های توزیع‌شده (Distributed Systems) کار می‌کند:

۱. کاهش دامنه خطا (Blast Radius Reduction)
چالش: انتشار سریع یک خطای پیکربندی در کل شبکه.
استراتژی: پیاده‌سازی سختگیرانه انتشار تدریجی (Canary Deployments) و تقسیم‌بندی منطقی شبکه (Segmentation).
نکته کاربردی: مطمئن شوید که خطاهای پیکربندی در یک "منطقه کوچک" محبوس شده و پیش از گسترش به تمام نقاط، آزمایش شوند. فرآیندهای انتشار خود را مجدداً بررسی کنید.

۲. اهمیت شفافیت و ارتباطات بحران (Crisis Comms)
چالش: بی‌اعتمادی مشتریان در زمان سکوت.
استراتژی: از یک کانال ارتباطی ثانویه و کاملاً ایزوله (مانند یک صفحه وضعیت روی زیرساخت متفاوت) استفاده کنید.
نکته کاربردی: صداقت فنی را در اولویت قرار دهید. به‌روزرسانی‌های مکرر و فنی، حتی اگر کوتاه باشند ("ما هنوز در حال بررسی هستیم")، اعتماد را حفظ می‌کنند.

۳. مقاومت در برابر شکست‌های آبشاری (Cascading Failures)
چالش: تبدیل یک مشکل کوچک به یک بحران گسترده.
استراتژی: حذف وابستگی‌های متقابل (Decoupling) بین سرویس‌های حیاتی. اطمینان حاصل کنید که شکست یک سرویس فرعی، سرویس اصلی را از کار نیندازد.
نکته کاربردی: پیاده‌سازی مدارهای قطع کننده (Circuit Breakers) در کد، که در صورت شکست یک سرویس وابسته، درخواست را دور زده یا پاسخ از پیش تعیین شده (Failover) ارائه دهند.

۴. یادگیری پس از واقعه (Blameless Post-Mortem)
چالش: تکرار مشکلات بدون تحلیل عمیق.
استراتژی: بلافاصله یک تحلیل بدون سرزنش (Blameless Post-Mortem) آغاز کنید.
نکته کاربردی: تمرکز بر درک دلایل ریشه‌ای و بهبود فرآیندها، نه پیدا کردن مقصر. انتشار سریع و عمیق گزارش فنی (مانند کاری که کلادفلر انجام داد)، به بازگرداندن اعتماد و آموزش جامعه فنی کمک می‌کند.

اقدام کلیدی برای رهبران
این رویداد را به عنوان یک هشدار (Wake-Up Call) ببینید. آیا استراتژی‌های انتشار و طرح‌های ارتباطی شما می‌توانند در برابر یک خطای غیرمنتظره داخلی مقاومت کنند؟
"در دسترس بودن ۱۰۰ درصدی یک رؤیاست، بازگشت سریع و شفافیت ۱۰۰ درصدی یک تعهد است."


<Alireza DavoodiNia/>
3
🔵 عنوان مقاله
Boxes and Glue v0.1.10

🟢 خلاصه مقاله:
کتابخانه Boxes and Glue v0.1.10 برای تولید PDF در محیط Go طراحی شده و با تکیه بر الگوریتم‌های TeX و مدل box-and-glue، چیدمان دقیق متن، شکستن خط و فاصله‌گذاری قابل پیش‌بینی را فراهم می‌کند. این ابزار امکان ترکیب صفحه و تولید PDF را به‌صورت برنامه‌نویسی‌شده داخل اکوسیستم Go می‌دهد و برای ساخت گزارش‌ها، فاکتورها و مستندات فنی با خروجی پایدار و قابل بازتولید مناسب است. نسخه v0.1.10 نشان می‌دهد پروژه در حال رشد است، اما همین حالا نیز برای تولید خروجی با کیفیت بالا قابل استفاده بوده و با هدف آوردن اصول محکم حروف‌چینی TeX به جریان کاری سبک و کارای Go توسعه می‌یابد.

#Go #PDF #TeX #Typesetting #GoLang #DocumentRendering #LayoutEngine #DevTools

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


👑 @gopher_academy
4
🔵 عنوان مقاله
Wave Terminal: 'AI-Native' Open Source Go-Powered Terminal App

🟢 خلاصه مقاله:
ا**Wave Terminal یک ترمینال Open Source با رویکرد AI-Native است که روی MacOS، Linux و Windows اجرا می‌شود. این ابزار با ارائه قابلیت‌هایی مانند پیش‌نمایش فایل، ویرایش درجا، مرور پوشه‌ها و کار با فایل‌ها و ماشین‌های راه‌دور، تجربه‌ی خط فرمان را یکپارچه‌تر می‌کند. هسته‌ی هوشمند آن برای پیشنهاد دستورها، توضیح خطاها و ساده‌سازی گردش‌کار طراحی شده است. نوشته‌شدن با Go نیز مزیتی برای کارایی، قابل‌حمل‌بودن و توسعه‌پذیری به‌شمار می‌آید.

#AI #OpenSource #Go #Terminal #CLI #DeveloperTools #CrossPlatform #DevOps

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


👑 @gopher_academy
1👍1
🔵 عنوان مقاله
Go Turns Sixteen Years Old

🟢 خلاصه مقاله:
Go شانزده‌سالگی خود را جشن می‌گیرد؛ شانزده سال از متن‌باز شدن آن می‌گذرد و این نقطه عطف فرصتی است برای مرور پیشرفت‌ها و نگاه به آینده. در یک «گزارش کوتاه از وضعیت Go»، Austin به بهبودهای مستمر در هسته زبان و کتابخانه استاندارد اشاره می‌کند؛ تغییراتی که با حفظ سادگی و پایداری، قابلیت‌ها را دقیقاً در جاهای مهم ارتقا می‌دهند.

هم‌زمان، تمرکز پررنگی روی بهبود DX دیده می‌شود: ابزارها و جریان‌های کاری روان‌تر شده‌اند و تجربه توسعه روزمره سریع‌تر و ثمربخش‌تر پیش می‌رود. علاوه بر این، تغییرات مرتبط با MCP نیز در راه‌اند که امکان یکپارچه‌سازی بهتر ابزارها و فرآیندها را مطابق نیازهای تیم‌های مدرن فراهم می‌کنند.

برآیند این روندها آینده‌ای امیدوارکننده برای Gophers رقم می‌زند: تجربه‌ای صیقل‌خورده‌تر و یکپارچه‌تر که سرعت عمل را بالا می‌برد، بدون آن‌که دقت، کارایی یا سادگی قربانی شود.

#Go #Golang #OpenSource #DeveloperExperience #DX #MCP #Gophers

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


👑 @gopher_academy
4
اون کدی که روزی صد بار داری بهش لعنت میفرستی... "اشتباه فنی" نیست. "پلن مهاجرت" نفر قبلی بوده!

دیروز با یکی از دوستام صحبت میکردم. حسابی کلافه بود.
میگفت توی یه شرکت جمع‌وجور کار میکنه که کل ترافیکشون به زور به ۵۰۰ تا ریکوئست در روز میرسه. (پروژه‌ای که روی یه هاست اشتراکی هم مثل ساعت کار میکرد).

ولی الان چی زیر دستشه؟ یه کلاف سردرگم از Microservices، Kafka برای مسیجینگ، GraphQL برای دو تا کوئری ساده، و دیتابیس‌های NoSQL که اصلاً نیازی بهشون نبود.

پرسیدم: "چرا؟! کی همچین معماری سنگینی رو برای یه پروژه به این کوچیکی چیده؟"

خندید و گفت: "تیم‌لید قبلی. می‌خواست رزومه‌ش رو برای آمازون و گوگل قوی کنه. نیاز داشت این کلمات کلیدی (Keywords) رو توی رزومه‌ش داشته باشه تا بتونه ویزا بگیره. الان اون کاناداست و داره حقوق دلاری میگیره..."

"...و ما موندیم و سیستمی که هر جاش رو دست میزنیم، از سه جای دیگه میپکه."

بدتر از اون؟ مدیرای مجموعه هنوز فکر میکنن اون معماری شاهکاره! با خودشون میگن: "فلانی که اینو نوشت الان تو شرکتای بزرگ خارجیه؛ پس حتما کارش درست بوده و ما بلد نیستیم نگهش داریم!"

به این پدیده میگن Resume-Driven Development (RDD). یا به زبون ساده‌تر: "توسعه‌ی مبتنی بر شوآف".
یعنی انتخاب تکنولوژی نه بر اساس نیاز پروژه یا سود شرکت، بلکه بر اساس جذابیت رزومه برای شغل بعدی.

نتیجه‌ش چیه؟ اون برنامه‌نویس قبلی شرکت، پلنش رو اجرا کرد و رفت.
و تو؟ تو دیگه یه توسعه‌دهنده نیستی. تو شدی کسی که تاوان جاه‌طلبی‌های نفر قبلی رو میده. تو داری شب‌بیداری میکشی تا تکنولوژی‌ای رو زنده نگه داری که فقط برای کلاس گذاشتن به پروژه اضافه شده.

| <Hossein Moradi/>
👉 https://t.iss.one/addlist/AJ7rh2IzIh02NTI0
👍132
🔵 عنوان مقاله
Getting Started with Fuzzing in Go

🟢 خلاصه مقاله:
این راهنمای رسمی از Go Docs یک شروع عملی و به‌روز برای افزودن fuzzing به جریان تست‌های Go است. آموزش نشان می‌دهد چگونه یک تابع FuzzXxx با testing.F بنویسید، ورودی‌های اولیه را با f.Add اضافه کنید، و با go test -fuzz اجرا بگیرید (در صورت نیاز با -fuzztime). هنگام کشف خطا یا panic، ورودیِ کوچک‌سازی‌شده به‌طور خودکار در testdata/fuzz ذخیره می‌شود تا بتوانید آن را به‌صورت قطعی بازتولید، عیب‌یابی و به‌عنوان تست رگرسیون نگه‌داری کنید. همچنین بهترین‌روش‌ها مانند تعیین حدود منابع، اجتناب از نادترمینیزم، تعریف خاصیت/قاعده مورد انتظار، هدف‌گیری کدهای parser/decoder و ادغام در CI را پوشش می‌دهد. نتیجه اینکه افزودن fuzzing با ابزارهای داخلی Go ساده است و این راهنما مراحل، دستورات و نمونه‌کد لازم را در اختیارتان می‌گذارد.

#Go #Fuzzing #GoDocs #SoftwareTesting #Security #GoTesting #PropertyBasedTesting #CI

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


👑 @gopher_academy
1👍1🔥1
🔵 عنوان مقاله
Guts: Convert Go Types to TypeScript

🟢 خلاصه مقاله:
**Guts یک کتابخانه تولید کد است که انواع تعریف‌شده در Go را به تعاریف TypeScript تبدیل می‌کند تا بین frontend و backend در یک اپلیکیشن full‑stack سازگاری نوعی ایجاد شود. به‌عنوان یک ابزار کتابخانه‌ای به‌راحتی در مراحل build یا CI/CD ادغام می‌شود و با همگام‌سازی خودکار تعاریف، نیاز به نگهداری دستی انواع تکراری را از بین می‌برد. تمرکز Guts بر همسان‌سازی انواع است و نه تعریف کامل قراردادهای API؛ بنابراین وقتی فقط به اشتراک‌گذاری انواع نیاز دارید و ابزاری به گستردگی TypeSpec یا OpenAPI لازم نیست، گزینه‌ای ساده و مؤثر محسوب می‌شود.

#Go #TypeScript #CodeGeneration #FullStack #TypeSafety #OpenAPI #TypeSpec

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


👑 @gopher_academy
1
Forwarded from AI Labdon
مدل opus 4.5 دیروز اومد. بینظیره. بهترین مدل دنیا برای coding با اختلاف زیاد.
یک اتفاق مهم دیگه اینکه Anthropic برای اولین بار قیمت بهترین مدل خودش رو به یک سوم تا یک پنجم قیمت قبلی کاهش داده!!
هر میلیون اینپوت از ۲۵ دلار شده ۵ دلار و هر میلیون output هم از ۷۵ دلار شده ۱۵ دلار!

<Amin Anvary/>

👉 https://t.iss.one/addlist/AJ7rh2IzIh02NTI0
2👍1🔥1
🔵 عنوان مقاله
Testing Out Crush, Charm's TUI-Based Coding Agent

🟢 خلاصه مقاله:
این مطلب با آزمودن Crush از Charm نشان می‌دهد یک دستیار کدنویسی مبتنی بر TUI چگونه می‌تواند کارهای روزمره توسعه را مستقیماً در ترمینال تسهیل کند؛ از پیمایش مخزن و تولید قطعه‌کد تا اجرای فرمان‌ها و نوشتن تست، با تمرکز بر جریان کاری سریع و کلیدمحور. در کنار مزایایی مانند کاهش جابه‌جایی بین ابزارها و هماهنگی با سبک یونیکسی، به محدودیت‌های رایجِ عامل‌ها نیز اشاره می‌شود: وابستگی به کیفیت مدل، نیاز به راهنمایی دقیق در پروژه‌های بزرگ/نامعمول و اینکه برخی وظایف هنوز از IDE سود می‌برند. همچنین به نوشته‌ای از Graham Helton درباره پروفایل‌کردن برنامه‌های Go با pprof و k6 ارجاع داده می‌شود که چرخه‌ای سنجش‌محور (تولید بار با k6، تحلیل گلوگاه‌ها با pprof، و تکرار) را توصیه می‌کند؛ چرخه‌ای که با ابزارهای ترمینالی و عاملی مثل Crush روان‌تر پیش می‌رود.

#Crush #Charm #TUI #CodingAgent #Go #pprof #k6 #DeveloperTools

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


👑 @gopher_academy
1
حتما می‌دونی که
سازمانای بزرگ دارن به سمت گولنگ می‌رن.

پس توام اگر می‌خوای تو سازمانای بزرگ کار کنی، گولنگ رو باید به مهارت‌هات اضافه کنی!

🔷 بوت‌کمپ پیشرفته Golang دانشکار به صورت پروژه محور این زبان محبوب رو بهت یاد می‌ده.

برای مشاهده سرفصل‌ها و ثبت‌نام کلیک کن👇

🔗https://dnkr.ir/kA7M3