Gopher Academy
3.33K subscribers
914 photos
40 videos
279 files
1.95K links
🕸 Gopher Academy

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

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

ادمین:
@mrbardia72

ادمین تبلیغات:
@labdon_ads
Download Telegram
🔵 عنوان مقاله
[ On | No ] Syntactic Support for Error Handling

🟢 خلاصه مقاله:

موضوع مدیریت خطاها در زبان برنامه نویسی Go و امکان بهبود نحو استفاده شده برای این منظور، بارها مطرح شده است. رابرت توضیح می‌دهد که چرا گاهی اوقات بهتر است به جای تغییر، بر روی جنبه‌های دیگر تمرکز کرد. وی به بررسی برخی از پیشنهادات داده شده در طول سال‌ها و فواید حفظ وضع موجود می‌پردازد، و تاکید می‌کند که استقرار فعلی، ثبات و درک مشترکی را در میان توسعه‌دهندگان و افزایش همکاری و راهنمایی ایجاد می‌کند.

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


👑 @gopher_academy
2
🔵 عنوان مقاله
httpgrace: A net/http Wrapper with Graceful Shutdown

🟢 خلاصه مقاله:

به جای استفاده از تابع `http.ListenAndServe` در برنامه‌نویسی وب با زبان گو، پیشنهاد می‌شود که از تابع `httpgrace.ListenAndServe` استفاده شود که قابلیت توقف عملیات سرور به صورت آرام و بدون قطع ارتباط درخواست‌های در حال انجام را دارا است. این روش می‌تواند به بهبود تجربه کاربری کمک کرده و از از دست رفتن درخواست‌ها در هنگام توقف یا راه‌اندازی مجدد سرور جلوگیری کند.

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


👑 @gopher_academy
🍾1
🔵 عنوان مقاله
Bob 0.35: SQL Query Builder and ORM/Factory Generator

🟢 خلاصه مقاله:
**
— با وجود اینکه نسخه‌های v0.36 و v0.37 به تازگی منتشر شده‌اند، نباید اهمیت نسخه v0.35 را نادیده گرفت که یک نقطه عطف بزرگ برای باب بود. این نسخه قابلیت‌های جدیدی برای ایجاد کد برای پرس‌وجوهای SELECT، INSERT، UPDATE و DELETE در پایگاه داده‌های Postgres، MySQL و SQLite را فراهم آورده است. علاوه بر این، بهبود‌های متعدد دیگری نیز در این نسخه اعمال شده که باعث شده تا ارزش دوباره نگاه کردن به آن بیشتر شود.

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


👑 @gopher_academy
👍1
🔵 عنوان مقاله
The Guide to In-House Vs Managed Kubernetes-As-A-Service

🟢 خلاصه مقاله:

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

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


👑 @gopher_academy
🍾1
🔵 عنوان مقاله
Simpler Backoff

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

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


👑 @gopher_academy
🍾1
Forwarded from Software Engineer Labdon
🔵 عنوان مقاله
Securing CI/CD workflows with Wazuh (5 minute read)

🟢 خلاصه مقاله:
مقاله‌ای که مورد بررسی قرار گرفت درباره ریسک‌های امنیتی ناشی از خودکارسازی توسعه نرم‌افزار با استفاده از فرآیندهای CI/CD نظیر حملات زنجیره‌ای تأمین و پیکربندی‌های نادرست می‌پردازد. Wazuh، یک پلتفرم امنیتی متن‌باز، امنیت CI/CD را از طریق جمع‌آوری لاگ‌ها، نظارت بر یکپارچگی فایل‌ها، قوانین امنیتی سفارشی و دیگر امکانات تقویت می‌کند. در این پست توضیح داده شده که چگونه می‌توان از Wazuh استفاده کرد. استفاده از Wazuh در پایپ‌لاین‌های CI/CD به شناسایی و رفع نقاط ضعف امنیتی و جلوگیری از نفوذ و تخریب اطلاعات کمک می‌کند. از این طریق، سازمان‌ها می‌توانند از ثبات و امنیت بیشتری در فرآیندهای توسعه نرم‌افزار خود بهره‌مند شوند.

🟣لینک مقاله:
https://thehackernews.com/2025/05/securing-cicd-workflows-with-wazuh.html?utm_source=tldrinfosec


👑 @software_Labdon
1👍1
🔵 عنوان مقاله
franz-go: A Complete Apache Kafka Client Library

🟢 خلاصه مقاله:

مقاله درباره کتابخانه نرم‌افزاری صحبت می‌کند که هدف آن ارائه تمام امکانات موجود در Apache Kafka از نسخه ۰.۸.۰ به بعد است. این کتابخانه ویژگی‌های چشمگیری دارد که شامل توانایی‌های بالا در پردازش، تحمل خطا و قابلیت گسترش می‌شود و برای مدیریت کارآمد جریان‌های داده در زمان واقعی ضروری است. از طریق ادغام این ویژگی‌ها، کتابخانه قصد دارد ابزاری قدرتمند برای توسعه‌دهندگان به منظور ایجاد برنامه‌های پخش داده پویا با کارایی و قابلیت اطمینان بالا فراهم آورد.

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


👑 @gopher_academy
1👍1
🔵 عنوان مقاله
Pure vs. Impure Iterators in Go

🟢 خلاصه مقاله:

جدیدترین نسخه‌ی برنامه نویسی Go، یعنی 1.23، ایتریتورهای سفارشی را معرفی کرد که امکانات جدیدی را برای توسعه‌دهندگان فراهم آورده است. با این حال، طبقه‌بندی استاندارد ایتریتورها به دو دسته‌ی "تک‌بار مصرف" و غیر "تک‌بار مصرف" می‌تواند گمراه‌کننده باشد. این مقاله پیشنهاد می‌کند که ایتریتورها براساس "خالص" و "ناخالص" طبقه‌بندی شوند، جایی که ایتریتورهای خالص بدون اثرات جانبی عمل می‌کنند و نتایج یکسانی را در هر بار استفاده ارائه می‌دهند، در حالی که ایتریتورهای ناخالص می‌توانند تحت شرایط خاص نتایج متفاوتی ارائه دهند. همچنین، مقاله با ارائه مثال‌های ملموس و بررسی کارایی، به بررسی فواید و معایب هر دو نوع ایتریتور و تأثیر آن‌ها بر عملکرد برنامه‌ها می‌پردازد.

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


👑 @gopher_academy
2
🌟درود به همه 🌟

ما یه کانال ساختیم پُر از محتوای جذاب و متنوع که هم سرگرم‌کننده‌ست، هم آموزنده:

🎭 مطالب فان
🏛 تاریخ و تمدن، مخصوصاً ایران باستان
🎨 هنر و ادبیات
🎧 معرفی پادکست‌های شنیدنی
📺 معرفی کانال‌های باحال یوتوب
📱 و حتی پیج‌های خفن اینستاگرامی با محتوای باکیفیت

📬 اگه شما هم اطلاعات جالب، محتوای خاص، یا پیج و یوتوب‌چنل باحالی می‌شناسید،
می‌تونید برامون بفرستید تا با اسم خودتون توی کانال منتشرش کنیم!

📲 منتظرتیم! جوین شو:👇

🔗 @bardia_kazemi
Forwarded from Linux Labdon
🔵 عنوان مقاله
How to Install Linux Kernel 6.15 on Ubuntu 25.04 and Ubuntu 24.10

🟢 خلاصه مقاله:
مقاله‌ای که مورد بررسی قرار گرفته، راهنمایی‌ است برای نصب آخرین نسخه‌ی هسته لینوکس (Linux kernel 6.15) بر روی توزیع اوبونتو ۲۵.۰۴. هدف از این راهنما کمک به کاربران برای به‌روزرسانی سیستم‌های خود با استفاده از جدیدترین نوآوری‌ها و بهبودهای امنیتی موجود در نسخه‌ی جدید هسته‌ی لینوکس است. این به‌روزرسانی ممکن است عملکرد سیستم را بهبود بخشد و امکانات جدیدی را در اختیار کاربران قرار دهد. مقاله به احتمال زیاد شامل دستورالعمل‌های قدم‌به‌قدم، مزایای به‌روزرسانی هسته و رفع پتانسیل مشکلات احتمالی پس از نصب است. بدین ترتیب، کاربران می‌توانند با اطمینان بیشتری نسبت به نصب و استفاده از این به‌روزرسانی اقدام نمایند.

🟣لینک مقاله:
https://9to5linux.com/how-to-install-linux-kernel-6-15-on-ubuntu-25-04-and-ubuntu-24-10


👑 @Linux_Labdon
Forwarded from DevOps Labdon
🔵 عنوان مقاله
How We Run Terraform At Scale (11 minute read)

🟢 خلاصه مقاله:
شرکت Benchling با استفاده از سیستمی کاملاً خودکار که بر پایه Terraform Cloud ساخته شده است، بیش از ۱۶۵,۰۰۰ منبع ابری را در ۶۲۵ فضای کاری Terraform مدیریت می‌کند. این اقدام باعث صرفه‌جویی در هزاران ساعت کار توسعه‌دهندگان و حذف انحراف زیرساخت‌ها شده‌است. با جایگزینی فرآیندهای دستی و خطاپذیر با خودکارسازی قابل توسعه و ابزار سفارشی، Benchling کارایی انتشار و تجربه توسعه‌دهندگان را به مقیاس بهبود بخشیده است. این تغییرات امکان تمرکز بر نوآوری و بهبود مستمر را برای Benchling فراهم آورده است.

🟣لینک مقاله:
https://benchling.engineering/how-we-run-terraform-at-scale-da7bb75dc394?utm_source=tldrdevops


👑 @DevOps_Labdon
🔵 عنوان مقاله
Working with BF16 (bfloat16) in Go on Arm Processors

🟢 خلاصه مقاله:

مقاله‌ای که راهنمای تخصصی برای استفاده از اعداد اعشاری BF16 در زبان برنامه‌نویسی Go روی معماری ARM ارائه داده، با وجود پشتیبانی نکردن این زبان از BF16 به طور بومی. روش‌های ارائه شده شامل استفاده از Cgo برای فراخوانی توابع C و همچنین استفاده از ابزار GoAT است که امکان کار با BF16 را در اکوسیستم Go فراهم می‌آورد. این راهنما همچنین به بررسی موارد استفاده عملی و ملاحظات عملکردی می‌پردازد و تأثیر این پیاده‌سازی‌ها بر روی کارآیی و کارایی برنامه‌ها در دستگاه‌های ARM را نشان می‌دهد.

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


👑 @gopher_academy
1👍1🔥1
🔵 عنوان مقاله
NoxDir: Terminal Utility for Visualizing File System Usage

🟢 خلاصه مقاله:

مقاله مورد بحث یک ابزار خط فرمان (CLI) چندپلتفرمی و قدرتمند که با زبان برنامه‌نویسی Go ساخته شده است را معرفی می‌کند. این ابزار برای بصری‌سازی و بررسی استفاده از فضای سیستم فایل‌ها طراحی شده و از کتابخانه محبوب Bubble Tea برای نمایش جذاب استفاده می‌کند. این ابزار به کاربران کمک می‌کند تا توزیع فایل‌ها و میزان استفاده از فضای درایو خود را به طور واضح و تعاملی درک کنند و در نتیجه می‌توانند به بهینه‌سازی و نگهداری سیستم خود بپردازند. از آنجا که این ابزار چندپلتفرمی است، کاربران در سیستم‌های عامل مختلف مانند Windows, Linux, یا macOS می‌توانند از همان کیفیت بالا برای مدیریت فایل‌های خود بهره ببرند.

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


👑 @gopher_academy
1
🔵 عنوان مقاله
Why I'm Excited About Go for Agents

🟢 خلاصه مقاله:

زبان برنامه‌نویسی Go به دلیل مدل همروندی قوی و استفاده از Context برای توسعه ایجنت‌هایی که به صورت حلقه‌ای و عمدتا بدون حالت فعالیت می‌کنند مناسب است. گوروتین‌ها در Go امکان ایجاد هزاران پروسه همروند را فراهم می‌کنند و Context کنترل دقیق‌تری بر زمان‌بندی و پاک‌سازی منابع می‌دهد. علاوه بر این، ابزارهای پروفایلینگ قدرتمند Go به شناسایی و رفع گلوگاه‌های عملکرد کمک می‌کند. این ویژگی‌ها با هم Go را برای توسعه نرم‌افزارهایی که ایجنت‌ها بخش اصلی آن‌ها هستند تقریباً ایده‌آل می‌سازند.

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


👑 @gopher_academy
👍2
🔵 عنوان مقاله
Raylib-Go-Wasm: Raylib Go Bindings for the Web

🟢 خلاصه مقاله:

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

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


👑 @gopher_academy
1
Forwarded from 𓄂 Bardia 𓆃
⭕️ قیمت ارزهای آزاد | شنبه 24 خرداد 1404 - 15:46

🇺🇸 دلار : 835,600 ریال
🇪🇺 یورو : 970,200 ریال
🇬🇧 پوند انگلیس : 1,136,200 ریال
🕊3
Forwarded from 𓄂 Bardia 𓆃
⭕️ گزارش قیمت ارزهای دیجیتال | شنبه 24 خرداد 1404 - 15:48

◽️ بیت کوین : 98,116,794,000 ریال
◽️ بیت کوین : 105,016.37 تتر

◽️ اتریوم : 2,367,833,900 ریال
◽️ اتریوم : 2,534.34 تتر

◽️ تتر : 934,370 ریال
◽️ تتر : 1.000157 تتر
🕊31
در ادامه یک خلاصه‌ٔ کوتاه و مفید از مقاله

«More predictable benchmarking with testing.B.Loop»

نوشته‌ی Junyang Shao در وبلاگ Go منتشرشده در ۲ آوریل ۲۰۲۵ آورده شده است

---

🔄 مشکل اولیه با b.N

تا قبل از Go 1.24، بنچمارک‌ها با for range b.N { ... } نوشته می‌شدند که:

نیاز به b.ResetTimer() و b.StopTimer() برای مدیریت دقیق زمان داشت.

به‌دلیل inlining و حذف کد بدون اثر جانبی، گاهی کد تست‌شده اصلاً اجرا نمی‌شد و زمان‌های غیرواقعی تولید می‌کرد .
---
معرفی testing.B.Loop

Go 1.24 متد جدیدی معرفی کرد:

func Benchmark(b *testing.B) {
... setup once ...
for b.Loop() {
// کد اصلی برای بنچمارک
}
... cleanup once ...
}

مزایای کلیدی آن عبارتند از:

مدیریت خودکار زمان: زمان‌سنج به‌صورت خودکار بین setup/loop/cleanup کنترل می‌شود؛ نیازی به ResetTimer یا StopTimer نیست .

جلوگیری از حذف بهینه‌ساز: درون Loop، تماس به توابع به‌صورت مستقیم نگه داشته می‌شود و کامپایلر نمی‌تواند آن را حذف کند .

یکبار اجرا برای تعیین تعداد تکرارها: برخلاف روش قدیمی که تابع benchmark چندین‌بار با b.Nهای مختلف فراخوانی می‌شد، این روش تنها یک‌بار اجرا شده و کارآمدتر است .

---
⚙️ نکات قابل توجه

اگر در هر بار اجرا نیاز به پرکردن داده‌ها یا عملیات خارج از loop دارید، باید خودتان با b.StopTimer() و b.StartTimer() مدیریت کنید:

> مثال: مقداردهی تصادفی پیش از sort .

داخل یک تابع بنچمارک، باید فقط از for b.Loop() استفاده شود، نه ترکیبی از b.N و b.Loop .

--
🧭 توصیه و نتیجه‌گیری

testing.B.Loop در Go 1.24 نسل جدیدی از بنچمارک‌ها است:

ساده‌تر، دقیق‌تر و مقاوم‌تر در برابر اشتباهات رایج.

برای بنچمارک‌های جدید، به‌عنوان روش پیش‌فرض توصیه می‌شود؛
و برای بنچمارک‌های موجود نیز می‌توان با کمی تغییر به آن مهاجرت کرد .
---
فقط یک نگاه مختصر

✳️ ساده‌سازی کد

⏱️ حذف نیاز به مدیریت زمان دستی

🔒 جلوگیری از بهینه‌سازی‌های مخرب

عملکرد سریع‌تر در اجرا
2👍2🔥1
🔵 عنوان مقاله
Modern (Go) Application Design

🟢 خلاصه مقاله:

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

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


👑 @gopher_academy
3
جاوید و پیروز باد ایران ما
12🕊6