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
Forwarded from Linux Labdon
🔵 عنوان مقاله
Ubuntu 25.10's Rust Coreutils Transition Has Uncovered Performance Shortcomings

🟢 خلاصه مقاله:
Ubuntu 25.10 در حال جایگزینی Rustا Coreutils به‌جای GNU Coreutils است. آزمایش‌های اولیه نشان می‌دهد نسخه Rust در برخی سناریوها کندتر از پیاده‌سازی C در GNU Coreutils عمل می‌کند. با این حال هنوز تا انتشار پایدار چند هفته باقی مانده و توسعه‌دهندگان upstream در حال بهینه‌سازی و رفع شکاف‌های کارایی هستند تا ضمن بهره‌مندی از مزایای ایمنی Rust، به کارایی هم‌تراز برسند.

#Ubuntu2510 #Ubuntu #RustCoreutils #GNUCoreutils #Linux #Performance #OpenSource #RustLang

🟣لینک مقاله:
https://www.phoronix.com/news/Ubuntu-Rust-Coreutils-Perf


👑 @Linux_Labdon
1
Forwarded from Software Engineer Labdon
میخوام دو تا از عجیب ترین Http status code هایی که وجود داشته و داره رو بگم

احتمالا درمورد Http Status Code 418 شنیده باشین.
418 (I'm a teapot)
داره میگه من قوری ام! جالب تر از اینکه چرا وجود داره و میگه من قوری ام اینه که به طور رسمی این http status code تو RFC 2324 ثبت شده!

این یکی رسمی نیست اصلا ولی تو Twitter API v1 ازش استفاده شده بود.
420 (Enhance your calm)
برای اینکه بگن آقا زیاد داری درخواست میفرستی از این استفاده میکردن
بعدا چون تو استاندارد نبود تو v1.1 اومدن تبدیلش کردن به 429 (Too many requests).

<Ali Valizadeh/>
🎙️ عنوان پادکست:
🤌 The Gopherfather: Go 1.25, slog multihandlers, and more, capisce?
خلاصه پادکست:
این شماره از The Gopherfather تازه‌ترین خبرهای اکوسیستم Go را مرور می‌کند: انتشار Go 1.24.5 و Go 1.23.11 با تمرکز بر پایداری و امنیت، و آماده‌شدن Go 1.25 RC2 برای آزمایش گسترده‌تر. همچنین GopherCon South Africa در تاریخ ۶ تا ۷ آگوست به‌صورت آنلاین برگزار می‌شود.

در بخش محتوا، مطلب “Generic Interfaces” از Axel Wagner در Go Blog به تعامل جنریک‌ها با interfaceها می‌پردازد. یک ویدئو با عنوان “10 Things I Hate About Go” نقدهای سازنده‌ای را مطرح می‌کند، و بسته gourfave/cli راهی ساده و سریع برای ساخت ابزارهای خط فرمان در Go ارائه می‌دهد....
1👍1
Forwarded from Bardia & Erfan
با دو سال سابقه کار
حتی با اینکه کاراموز شرکت امازون هم بوده

شامل layoff اخیر شده و بیکار شده

متأسفانه ai خیلی قوی تر شده

و تهدید محسوب میشه
🔥11
🎙️ عنوان پادکست:
🌁 Live from San Francisco, it's Cup o' Go! Elastic, Green Tea, and LLM toolboxes
خلاصه پادکست:
این قسمت از Cup o' Go به‌صورت زنده از San Francisco و در دفتر Elastic ضبط شده و با حمایت Elastic منتشر شده است؛ شرکتی که پشت Elasticsearch بوده و با راهکارهای Search، Observability و Security به تیم‌ها برای کار با داده‌های بلادرنگ کمک می‌کند. در بخش فنی، به پذیرش تغییر «CPU limit-aware» برای پیش‌فرض GOMAXPROCS پرداخته می‌شود؛ تغییری که به‌ویژه برای اجرای سرویس‌های Go در محیط‌های کانتینری مفید است و نیاز به تنظیمات دستی را کاهش می‌دهد....
👍1
Forwarded from VIP
درود به همه‌ی دوستان عزیز 🌿

اگر پیشنهاد یا انتقادی دارید که می‌تونه به بهتر شدن کانال‌ها ی زیر کمک کنه،
👉 https://t.me/addlist/AJ7rh2IzIh02NTI0

خیلی خوشحال می‌شم نظرتون رو بدونم و ازش استفاده کنم 🙌

می‌تونید از طریق آی‌دی زیر با من در تماس باشید:

📩 @mrbardia72


منتظر نظرات خوب و سازنده‌تون هستم 💬
💚🤍❤️
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
🔵 عنوان مقاله
SFTPGo 2.7: A Full Featured File Transfer Solution

🟢 خلاصه مقاله:
این نسخه از SFTPGo 2.7 یک سرور انتقال فایل مبتنی بر Go است که پروتکل‌های SFTP، HTTP/S، FTP/S و WebDAV را در یک راهکار یکپارچه ارائه می‌دهد. تمرکز آن بر پیکربندی منعطف و کنترل دقیق دسترسی است تا مدیران بتوانند سیاست‌ها، مسیرها و رفتار کاربران را مطابق نیاز تنظیم کنند. نقطه‌قوت اصلی، تعامل با storageهای ابری است؛ می‌توان backendهایی مانند Amazon S3، Google Cloud Storage و Azure Blob را مانند پوشه‌های محلی در اختیار کلاینت‌ها گذاشت و همان داده را هم‌زمان از چند پروتکل ارائه کرد. امنیت انتقال با TLS و رمزنگاری مدرن تضمین می‌شود و ثبت رویدادها نیز برای نظارت و انطباق در دسترس است. نسخه 2.7 بر پایداری و بلوغ خط v2 تأکید دارد و گزینه‌ای مناسب برای نوسازی جریان‌های انتقال فایل و پل‌زدن میان کلاینت‌های قدیمی و زیرساخت‌های cloud-first است.

#SFTPGo #SFTP #FTP #WebDAV #GoLang #CloudStorage #FileTransfer #DevOps

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


👑 @gopher_academy
1
🔵 عنوان مقاله
Fantasy: Build Flexible AI Agents with Go

🟢 خلاصه مقاله:
با تمرکز بر ساخت ایجنت‌های هوش مصنوعی انعطاف‌پذیر در Go، ابزار Fantasy از سوی Charm معرفی شده است. این ابزار یکی از اجزای اصلی پشت Crush است، اما می‌توان آن را به‌صورت مستقل برای ساخت ایجنت‌های مجهز به ابزار در Go به‌کار گرفت. هدف Fantasy ارائه رویکردی ماژولار و قابل ترکیب است تا توسعه‌دهندگان بتوانند رفتار ایجنت را سفارشی کنند، ابزارها و سرویس‌ها را متصل کنند و در عین حال در چارچوب کاری Go باقی بمانند.

#Go #Golang #AI #AIAgents #Charm #Crush #DevTools #AgentFramework

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


👑 @gopher_academy
👍1
🔵 عنوان مقاله
google/jsonschema-go

🟢 خلاصه مقاله:
این مقاله دو کتابخانه Go برای کار با JSON Schema را مقایسه می‌کند: google/jsonschema-go و مخزن شخصی Ian Lance Taylor با نام ianlancetaylor/jsonschema. تمرکز اصلی بر کاربردهای عملی مانند اعتبارسنجی در زمان اجرا، هم‌ترازی قراردادهای داده میان سرویس‌ها، و در صورت نیاز، تولید کد برای انواع Go است. به‌جای معرفی یک برنده قطعی، مجموعه‌ای از معیارهای انتخاب پیشنهاد می‌شود: پوشش استاندارد (کلیدواژه‌ها، فرمت‌ها، و ارجاعات $ref)، کیفیت گزارش خطا، کارایی در بارهای واقعی، قابلیت سفارشی‌سازی، و نشانه‌های پایداری و نگهداشت پروژه. همچنین سازگاری با فرآیندهای CI، نحوه حل $ref در فایل‌ها و URLها، و میزان تطبیق با ابزارهای رایج Go بررسی می‌شود. جمع‌بندی مقاله عملی است: هر دو گزینه قابل اتکا هستند و انتخاب نهایی باید بر اساس نیازهای خاص تیم—سادگی رابط، گستره امکانات، یا الزامات یکپارچه‌سازی—انجام شود.

#Go #JSONSchema #GoLang #OpenSource #Validation #CodeGeneration #GitHub

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


👑 @gopher_academy
🔵 عنوان مقاله
From 19 Hours to Under a Second: Building a Blazing-Fast TCP Scanner in Go

🟢 خلاصه مقاله:
با یک روایت عملی، مقاله توضیح می‌دهد چگونه یک اسکنر ساده TCP که ۱۹ ساعت طول می‌کشید، با بازطراحی در Go به ابزاری «زیر یک ثانیه» تبدیل شد. ابتدا نشان می‌دهد چرا اسکن مبتنی‌بر net.Dial حتی با همزمانی محدود گرفتار زمان‌های انتظار، محدودیت FD و سربار syscall می‌شود. سپس با گذار از اتصال‌های کامل به اسکن SYN، ساخت بسته‌ها، فیلترکردن پاسخ‌ها با BPF، و نگه‌داری وضعیت سبک‌وزن، سربار کرنل و زمان‌بندی به شدت کاهش می‌یابد. بهینه‌سازی‌هایی مانند batch کردن ارسال/دریافت، پیش‌اختصاص بافرها، کاهش تخصیص‌ها با sync.Pool، و حلقه‌های رویدادی کارا (epoll/kqueue) همراه با تنظیمات سیستم (ulimit، بافرهای سوکتی و sysctl) throughput را به حداکثر می‌رساند. با پروفایل‌کردن مداوم (pprof) و راستی‌آزمایی با ابزاری مانند Nmap، هم دقت و هم کارایی تضمین می‌شود. خروجی نهایی: الگوی عملی برای ساخت ابزارهای پرسرعت شبکه در Go—ترکیبی از انتخاب مدل درست (SYN به‌جای connect)، کاهش سربارها، batch کردن، اندازه‌گیری پیوسته، و پایبندی به اصول ایمنی و اخلاق اسکن. این مطلب در Golang Weekly برجسته شده است.

#Go #Golang #TCP #PortScanning #Networking #Performance #Concurrency #SystemsProgramming

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


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