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
🔵 عنوان مقاله
Go's Release Cycle and Process as Go 1.26 Progresses

🟢 خلاصه مقاله:
با نزدیک‌شدن به انتشار Go 1.26، فرآیند انتشار این زبان وارد مرحله حساس می‌شود. طبق برنامه، تاریخ “development freeze” برای ۲۶ نوامبر تعیین شده است؛ یعنی از این زمان هیچ قابلیت جدیدی برای Go 1.26 پذیرفته نمی‌شود و تمرکز پروژه بر رفع باگ‌ها، بهبود کارایی، مستندسازی و آزمون است. نسخه‌های beta و RC برای آزمایش جامعه منتشر می‌شوند تا مشکلات واقعی سریع‌تر شناسایی و رفع شوند.

برای توسعه‌دهندگان، این یعنی تغییراتی که تا موعد یادشده آماده نشوند، به چرخه بعدی (مثلاً Go 1.27) منتقل خواهند شد. پیشنهاد می‌شود پروژه‌ها و کتابخانه‌ها، ساخت‌ها و تست‌های خود را با پیش‌انتشارهای Go 1.26 اجرا کنند و هر گونه مشکل را سریع گزارش دهند تا در نسخه نهایی رفع شود. این انضباط در “فریز” ویژگی‌ها و محدودکردن تغییرات پرریسک، مسیر انتشار پایدار و قابل‌پیش‌بینی Go را تضمین می‌کند.

#Go #Golang #Go126 #ReleaseCycle #DevelopmentFreeze #SoftwareRelease #ProgrammingLanguages #OpenSource

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


👑 @gopher_academy
👍1
🍏 یکی از ویژگی های گولنگ ۱.۲۶

💛 testing

🔰متدهای جدید T.ArtifactDir, B.ArtifactDir و F.ArtifactDir اضافه شده‌اند.

🔰این متدها پوشه‌ای برای ذخیره‌ی خروجی‌های تست (artifacts) برمی‌گردانند.

اگر هنگام اجرای go test از پرچم -artifacts استفاده شود، این پوشه درون مسیر خروجی مشخص‌شده (یا پوشه فعلی) ایجاد می‌شود.

در غیر این صورت، در پوشه‌ی موقتی ایجاد و پس از اتمام تست حذف خواهد شد.اولین فراخوانی ArtifactDir هنگامی که -artifacts فعال باشد،

مسیر پوشه‌ی artifact را در لاگ تست ثبت می‌کند.

https://t.me/addlist/AJ7rh2IzIh02NTI0
👍3
🔵 عنوان مقاله
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
🔵 عنوان مقاله
vite-plugin-use-golang: Write Go in JavaScript Files?

🟢 خلاصه مقاله:
** این افزونه با نام vite-plugin-use-golang برای Vite یک آزمایش جالب است که با قرار دادن دستور "use golang" داخل فایل‌های JavaScript، کدهای Go را شناسایی کرده و آن‌ها را برای استفاده در فرانت‌اند به WebAssembly کامپایل می‌کند. نتیجه این است که می‌توانید بخشی از منطق Go را مستقیماً در مرورگر و کنار کدهای JavaScript فراخوانی کنید. این رویکرد برای بهره‌برداری مجدد از منطق موجود در Go یا آزمایش بخش‌های حساس به کارایی مفید است، اما پیچیدگی فرایند ساخت، افزایش حجم باندل، زمان راه‌اندازی WASM، دشواری دیباگ و محدودیت دسترسی مستقیم به DOM از چالش‌های آن هستند. در مجموع، این کار «نامتعارف اما واقعی» است و نشان می‌دهد زنجیره ابزارهای امروز تا کجا قابل گسترش است.

#Vite #Go #WebAssembly #WASM #JavaScript #Frontend #DevTools #WasmInBrowser

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


👑 @gopher_academy
🔵 عنوان مقاله
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
🔵 عنوان مقاله
Crush: Charm's Go-Powered AI Coding Agent

🟢 خلاصه مقاله:
Crush یک عامل کدنویسی مبتنی بر هوش مصنوعی از شرکت Charm و ساخته‌شده با Go است که پس از چند ماه توسعه از یک مخزن اولیه به ابزاری پخته و قابل استفاده تبدیل شده. مهم‌ترین مزیت Crush انعطاف‌پذیری آن است: با هر LLM API سازگار با OpenAI کار می‌کند، بنابراین می‌توانید بسته به نیاز عملکرد، هزینه یا حریم داده‌ها از ارائه‌دهندگان مختلف یا endpointهای خودمیزبان استفاده کنید. Crush رقیبی برای ابزارهایی مانند Claude Code و Codex محسوب می‌شود و با تکیه بر سادگی، سرعت و همخوانی با جریان کاری توسعه‌دهندگان—به‌ویژه در اکوسیستم Go و فضای CLI—تجربه‌ای آشنا و قابل ترکیب ارائه می‌دهد. اگر به دنبال دستیار کدنویسی بدون قفل‌شدن به یک فروشنده واحد هستید، Crush گزینه‌ای جدی برای بررسی است.

#AI #Go #DevTools #LLM #OpenAI #Charm #CodingAssistant #BubbleTea

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


👑 @gopher_academy
👍1
🔵 عنوان مقاله
on using JSON schemas in Go

🟢 خلاصه مقاله:
** این مقاله به مزایای استفاده از JSON Schema برای تعریف، اعتبارسنجی و مستندسازی داده‌های JSON در Go می‌پردازد و نشان می‌دهد چطور می‌توان این رویکرد را در یک جریان کاری «schema-first» به‌صورت عملی پیاده کرد. محور بحث، نگاشت دقیق قابلیت‌های JSON Schema به انواع ایستا در Go است؛ از چالش‌هایی مانند فیلدهای اختیاری، additionalProperties، enumها، nullability و ترکیب‌گرهایی مثل oneOf/anyOf/allOf تا تصمیم‌های طراحی میان رویکردهای مبتنی بر reflection در زمان اجرا و code generation در زمان ساخت. مقاله سپس به کار انجام‌شده در Google، به‌ویژه در مخزن google/jsonschema-go، اشاره می‌کند که هدفش ارائه نگاشت پایدار schematype، اعتبارسنجی سریع و گزارش خطای قابل اتکا است. در ادامه، مخزن ianlancetaylor/jsonschema نیز معرفی می‌شود و نقاط همگرایی و تفاوت‌های رویکردی آن بیان می‌گردد. در پایان، مسیرهای آینده مانند همگرایی بهتر با OpenAPI، تقویت codegen برای ویژگی‌های پیشرفته، راهبردهای تکامل schema و یکپارچگی عمیق‌تر با ابزارها مطرح می‌شود تا توسعه مبتنی بر Schema در Go هم قابل اتکا و هم خوش‌تجربه باشد.

#Go #JSONSchema #Google #golang #APIs #Validation #OpenSource

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


👑 @gopher_academy
👍1
🔵 عنوان مقاله
Go's Green Tea Garbage Collector

🟢 خلاصه مقاله:
** در Go 1.25 یک garbage collector آزمایشی به نام Green Tea معرفی شده که با هدف کاهش تأخیر و نوسان، بهبود کارایی و مصرف حافظه، و مقیاس‌پذیری بهتر ارائه می‌شود. این قابلیت فعلاً به‌صورت opt-in و از طریق فلگ‌های مستند در release notes فعال می‌شود و پیش‌فرض نیست. نتایج اولیه بسته به بار کاری می‌تواند متفاوت باشد؛ در صورت پسرفت می‌توان به GC فعلی بازگشت. تیم Go با تکیه بر بازخورد و سنجش میدانی، در نسخه‌های بعدی آن را بهبود می‌دهد و در صورت موفقیت، می‌تواند بر راهبرد آینده GC در Go اثر بگذارد.

#Go #Golang #GreenTea #GarbageCollection #Go125 #MemoryManagement #Performance #Runtime

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


👑 @gopher_academy
1