Gopher Academy
3.34K subscribers
918 photos
40 videos
279 files
1.99K links
🕸 Gopher Academy

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

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

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
Introducing gomjml: MJML Email Markup for Go Developers

🟢 خلاصه مقاله:
gomjml راهی برای استفاده از MJML در پروژه‌های Go معرفی می‌کند. MJML چارچوبی است که با تگ‌های سفارشی، نوشتن ایمیل را ساده می‌کند و سپس آن را به HTML واکنش‌گرا و سازگار با کلاینت‌های مختلف ایمیل تبدیل می‌سازد. پیاده‌سازی اصلی MJML در محیط Node است، اما gomjml این فاصله را برای توسعه‌دهندگان Go پر می‌کند تا بتوانند قالب‌های MJML را از درون برنامه‌های Go به HTML قابل اتکا تبدیل کنند، بدون ترک اکوسیستم Go. نتیجه، ارسال ایمیل‌های تراکنشی پایدار و یکدست است، با ادغام ساده در سرویس‌های فعلی و امکان تکیه بر موتور اصلی MJML از طریق یک واسط مناسب در Go.

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


👑 @gopher_academy
21
🔵 عنوان مقاله
Go-edlib: String Comparison and Edit-Distance Algorithms

🟢 خلاصه مقاله:
کتابخانه Go-edlib مجموعه‌ای از الگوریتم‌های سنجش شباهت و فاصلهٔ ویرایشی را در زبان Go یک‌جا فراهم می‌کند؛ از جمله Levenshtein، LCS، Hamming، Damerau–Levenshtein (با OSA و جابجایی‌های مجاور)، Jaro–Winkler و Cosine. مقاله کارکرد و قوت هرکدام را مرور می‌کند: Levenshtein برای خطاهای عمومی، Damerau/OSA برای جابجایی‌های کنارهم، Hamming برای رشته‌های هم‌طول، LCS برای هم‌ترازسازی و شکاف‌ها، Jaro–Winkler برای نام‌های کوتاه و اهمیتِ پیشوند، و Cosine برای شباهت مبتنی بر توزیع نویسه/توکن. راهنما تأکید دارد که انتخاب الگوریتم باید با نوع خطاها، طول رشته‌ها و هزینهٔ محاسباتی هم‌راستا باشد؛ با کاربردهایی مانند تطبیق فازی، پاکسازی داده، پیوند رکورد و جست‌وجوی مقاوم به غلط املایی.

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


👑 @gopher_academy
1
🔵 عنوان مقاله
The 5 Best Logging Libraries for Go

🟢 خلاصه مقاله:
این مقاله از Golang Weekly پنج کتابخانه برتر لاگ‌گیری در اکوسیستم Go را مرور می‌کند و نشان می‌دهد هرکدام در چه سناریوهایی بهترین کارایی را دارند. معیارهای مقایسه شامل عملکرد و میزان تخصیص حافظه، پشتیبانی از لاگ ساخت‌یافته و خروجی JSON، سطوح و فیلترها، انتشار context و شناسه‌های هم‌بستگی، نمونه‌برداری برای حجم‌های بالا، و انعطاف‌پذیری در اتصال به مقصدهای مختلف است. نویسنده علاوه بر ارگونومی و بلوغ اکوسیستم، سازگاری با رویکردهای استاندارد جدید Go را نیز در نظر می‌گیرد و مسیرهای مهاجرت را توضیح می‌دهد. در نهایت، با توصیه‌های عملی برای انتخاب بر اساس نوع بار کاری (میکروسرویس، ابزار خط فرمان، سرورلس، وب‌سرورها) و نکات تولیدی مانند استفاده از فیلدهای ساخت‌یافته، پیکربندی متمرکز، و واگذاری چرخش فایل‌ها به ابزارهای مطمئن، راهنمایی فشرده‌ای برای انتخاب آگاهانه ارائه می‌کند.

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


👑 @gopher_academy
3
Forwarded from برند کارفرمایی همکاران سیستم
🔴 مدیریت حافظه همیشه یکی از چالش‌های پنهان دنیای برنامه‌نویسیه؛ همون جایی که عملکرد واقعی یک زبان مشخص می‌شه. در Go این موضوع نه‌تنها به بهینه‌سازی سرعت کمک می‌کنه، بلکه کلید اصلی مقیاس‌پذیری و اجرای همزمان هزاران goroutine به‌شمار میاد.

💻 ما در دومین رویداد تک‌وتاک – سلسله رویدادهای تخصصی در حوزه توسعه نرم‌افزار همکاران سیستم – که به‌ صورت #رایگان و #آنلاین برگزار می‌شه، سراغ مبحث مدیریت حافظه در Go می‌ریم:

🔺 ساختار حافظه در برنامه‌ها
🔺 استک در Go (Escape Analysis و Dynamic Sized Stack)
🔺 هیپ در Go (Garbage Collector و Mark & Sweep)


👨🏻‍💻 ارائه‌دهنده: سهند صفی‌زاده | تیم‌لید شرکت همکاران سیستم

📅 پنج‌شنبه ۱۳ شهریورماه | ساعت ۱۰ تا ۱۲

🔴 شرکت در رویداد فقط در صورت ثبت‌نام امکان‌پذیره.

🔗 اطلاعات بیشتر و لینک ثبت‌نام:

تک‌وتاک ۰2 : مدیریت حافظه در Go - همکاران سیستم

Linkedin | Instagram
2
🔵 عنوان مقاله
BemiDB 1.0: Postgres Read Replica Optimized for Analytics

🟢 خلاصه مقاله:
BemiDB 1.0 یک Read Replica از PostgreSQL است که برای تحلیل داده بهینه شده. این ابزار به‌عنوان جایگزینی برای Snowflake/Fivetran به منابع دادهٔ مختلف متصل می‌شود، داده‌ها را به‌صورت ستونی و فشرده در S3 همگام‌سازی می‌کند و امکان اجرای کوئری‌های پیچیده را با یک موتور تحلیلی سازگار با Postgres فراهم می‌سازد. مجوز آن AGPLv3 است.

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


👑 @gopher_academy
2
🔵 عنوان مقاله
Waitgroups: What They Are, How to Use Them and What Changed with Go 1.25

🟢 خلاصه مقاله:
خلاصه‌ای از WaitGroup در Go: ابزاری برای همگام‌سازی که اجازه می‌دهد تا پایان کار چند گوروتین صبر کنیم. الگوی کلاسیک با Add پیش از راه‌اندازی گوروتین‌ها، Done در انتهای هر گوروتین (معمولاً با defer) و Wait در گوروتین ناظر انجام می‌شود؛ اما بی‌دقتی در تطبیق Add/Done می‌تواند به بن‌بست یا وحشت (panic) منجر شود. مقاله ضمن مرور کاربردها و نکات عملی، توضیح می‌دهد که در Go 1.25 راهی ساده‌تر ارائه شده است: دیگر لازم نیست Add و Done را دستی جفت کنید؛ می‌توان واحدهای کار را در یک مرحله به WaitGroup متصل کرد تا کتابخانه به‌صورت خودکار پیش از اجرا شمارنده را افزایش دهد و هنگام اتمام آن را کم کند. این روش خطاهای رایج را کاهش می‌دهد و در عین حال با کدهای قدیمی سازگار است، هرچند در الگوهای پیچیده همچنان ممکن است استفاده مستقیم از الگوی سنتی ترجیح داده شود.

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


👑 @gopher_academy
🍾21
🔵 عنوان مقاله
GitHub's CEO, Thomas Dohmke, has stood down

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

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


👑 @gopher_academy
🕊21
Forwarded from AI Labdon
برگه تقلب برنامه نویسی رو از اینجا پیدا کن

▪️اگه داری برنامه نویسی رو یاد میگیری یا دنبال کار میگردی و‌ مصاحبه میری این چیت شیت ها( برگه تقلب ها) گزینه های خیلی خوبی هست برای مرور...

▪️تقریبا اکثر زبان ها و ابزارهارو پوشش میده و میتونی استفاده کنی ؛ نکته جذابش اینه که پرکابرد ترین پرامپت های ChatGPT هم داره :))

آدرس سایت:

Quickref.me
🔥21
🔵 عنوان مقاله
created an 'Advanced Go Driver' for Amazon RDS and Aurora

🟢 خلاصه مقاله:
این مقاله یک «درایور پیشرفته‌ی Go» برای Amazon RDS و Aurora معرفی می‌کند که به‌جای تغییر پروتکل‌ها، روی pgx (برای PostgreSQL) و درایور بومی MySQL سوار می‌شود و قابلیت‌های عملیاتی مهمی اضافه می‌کند. مهم‌ترین مزیت‌ها شامل ساده‌سازی احراز هویت با پشتیبانی از IAM و توکن‌های SigV4، مدیریت خودکار TLS و چرخش گواهی‌ها/اسرار، و تاب‌آوری در سوییچ‌اوور/فِیل‌اوور با تشخیص تغییرات DNS، اتصال مجدد شفاف و تکرار تراکنش‌-آگاه است. این درایور توپولوژی Aurora/RDS (نویسنده/خواننده) را می‌شناسد، برای بارهای فقط-خواندنی از ریدرها استفاده می‌کند و در صورت نیاز به نویسنده مهاجرت می‌کند. همچنین قلاب‌های مشاهده‌پذیری (لاگ/متریک/تریس)، پشتیبانی از context، سازگاری با database/sql و pgx، و پیکربندی ساده از طریق DSN/متغیرهای محیطی را ارائه می‌دهد. نتیجه، کاهش زحمت در تعمیرات، بهبود رفتار در رخدادها، و یکپارچه‌سازی مدیریت اتصال برای PostgreSQL و MySQL روی AWS است.

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


👑 @gopher_academy
👍5
🔻 درود دوستان عزیز، لطفا توجه کنید.

❇️ از این به بعد برای تبلیغات فقط مستقیماً به خودم پیام بدید. 👇
برای دریافت تعرفه‌های تبلیغاتی لطفاً در پیام خصوصی با من در ارتباط باشید.

🎯 @mrbardia72

هیچ تبلیغی از سمت هشتگ یار دیگه پذیرفته نخواهد شد.

🌷 با سپاس
🤝4
Gopher Academy pinned «🔻 درود دوستان عزیز، لطفا توجه کنید. ❇️ از این به بعد برای تبلیغات فقط مستقیماً به خودم پیام بدید. 👇 برای دریافت تعرفه‌های تبلیغاتی لطفاً در پیام خصوصی با من در ارتباط باشید. 🎯 @mrbardia72 هیچ تبلیغی از سمت هشتگ یار دیگه پذیرفته نخواهد شد. 🌷 با سپاس»
🔵 عنوان مقاله
how a malicious Go module was exfiltrating credentials via Telegram.

🟢 خلاصه مقاله:
در این یادداشت از Golang Weekly یک نمونه سوءاستفاده زنجیره تأمین در اکوسیستم Go شرح داده می‌شود: ماژولی که با اجرای پنهانی (مثلاً در init) اطلاعات حساسی مثل متغیرهای محیطی، کلیدهای ابری، اعتبارنامه‌های Git و SSH را جمع‌آوری و از طریق API ربات تلگرام به‌صورت HTTPS ارسال می‌کرد. استفاده از تلگرام به‌دلیل ترافیک قابل‌قبول و زیرساخت آماده، به مهاجم کمک می‌کند تا انتقال داده را پنهان کند. نشانه‌های کشف شامل ارجاع به api.telegram.org، رشته‌های مبهم‌سازی‌شده حاوی توکن/Chat ID، و منطق غیرعادی هنگام ساخت یا تست است. برای مقابله: قفل‌کردن نسخه و checksum وابستگی‌ها، استفاده از GOPROXY و پایگاه checksum، vendors کردن کتابخانه‌های حساس، بازبینی تغییرات، قطع دسترسی شبکه در محیط build/test، تحلیل ایستا برای آدرس‌های مشکوک، اسکن اسرار، و به‌کارگیری اعتبارنامه‌های کم‌اختیار و کوتاه‌عمر توصیه می‌شود. پیام نهایی: پیام‌رسان‌ها را به‌عنوان کانال‌های بالقوه خروج داده در نظر بگیرید و حتی وابستگی‌های کوچک را با دقت بررسی کنید.

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


👑 @gopher_academy
2🔥2
🔵 عنوان مقاله
Building Ebitengine Games for Web Browsers

🟢 خلاصه مقاله:
این معرفی سه‌دقیقه‌ای از تروِر اسلوکِم نشان می‌دهد چگونه بازی‌های Ebitengine (موتور دوبعدی مبتنی بر Go) را برای مرورگر بسازیم. هسته کار این است: پروژه Go را با GOOS=js و GOARCH=wasm به WebAssembly کامپایل کنید، فایل wasm_exec.js را در صفحه HTML بگنجانید و بازی را روی یک canvas اجرا نمایید. در مرورگر باید به محدودیت‌های فایل‌سیستم، بارگذاری ناهمزمان دارایی‌ها، نیاز شروع صدا با تعامل کاربر، همگام‌سازی رندر با requestAnimationFrame و تفاوت‌های DPI و تغییر اندازه صفحه توجه کنید. برای دارایی‌ها از embed یا سرویس‌دهی مستقیم استفاده کرده و آن‌ها را برای وب بهینه کنید؛ کنترل‌ها را برای ماوس/کیبورد/تاچ طراحی و روی موبایل و مرورگرهای مختلف تست کنید. برای انتشار، یک میزبان استاتیک (مثل GitHub Pages/Netlify) کافی است، به شرط تنظیم MIME نوع application/wasm و HTTPS. نتیجه: مسیری سریع از ساخت دسکتاپ به وب با WebAssembly، یک HTML ساده و رعایت قیود مرورگر، مطابق راهنمای کوتاه و کاربردی نویسنده.

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


👑 @gopher_academy
1
🔵 عنوان مقاله
has now released Omarchy 2.0

🟢 خلاصه مقاله:
**اومارچی ۲.۰ منتشر شده است و یک ویدئوی ۳۰ دقیقه‌ای همراه آن ارائه شده که روند کار و ویژگی‌ها را مرور می‌کند. این عرضه در روزهای اخیر با استقبال و توجه قابل‌توجهی از سوی توسعه‌دهندگان در شبکه‌های اجتماعی روبه‌رو شده و بحث‌های پررونقی را برانگیخته است.

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


👑 @gopher_academy
Forwarded from Bardia & Erfan
🚀 به دنیای توسعه و تکنولوژی خوش اومدی!

اگر به موضوعات زیر علاقه‌مندی:

🔹 Golang
🔹 Linux & DevOps
🔹 Software Engineering
🔹 AI & Machine Learning
🔹 فرصت‌های شغلی ریموت (خارجی و داخلی)

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

📌 از این لینک همه چنل‌هامونو یه‌جا ببین و جوین شو:

👉 https://t.iss.one/addlist/QtXiQlynEJwzODBk
2
🔵 عنوان مقاله
html-to-markdown 2.4: Convert HTML to Markdown

🟢 خلاصه مقاله:
این ابزار با نام html-to-markdown 2.4 محتوای HTML را با پارس‌کردن واقعی ساختار آن به Markdown تبدیل می‌کند، نه با الگوهای regex؛ بنابراین در برابر موارد پیچیده و مرزی پایدارتر است. هم به‌صورت ابزار خط فرمان و هم به‌عنوان کتابخانه Go قابل استفاده است و برای سناریوهایی مثل مهاجرت محتوا و تولید وب‌سایت‌های استاتیک مناسب است.

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


👑 @gopher_academy
🤝21
🔵 عنوان مقاله
his experiences at last week's GopherCon UK 2025.

🟢 خلاصه مقاله:
** این یادداشت در Golang Weekly گزارشی تأمل‌محور از تجربه نویسنده در GopherCon UK 2025 (هفته گذشته) است؛ بر بلوغ اکوسیستم Go، سادگی و قابلیت اتکا تأکید دارد و موضوعاتی مانند الگوهای همزمانیِ قابل‌فهم، بهینه‌سازی مبتنی بر پروفایلینگ، تست مقیاس‌پذیر، تجربه توسعه‌دهنده، و امنیت زنجیره تأمین را برجسته می‌کند. ارزش «hallway track» و گفتگوهای غیررسمی برای انتقال تجربه‌های عملی و اتخاذ تغییرات کوچک اما اثرگذار نیز پررنگ است. نویسنده با قدردانی از برگزارکنندگان، توصیه‌هایی عملی مثل اولویت دادن به وضوح کد، شروع بهینه‌سازی با اندازه‌گیری، و سرمایه‌گذاری روی ابزارهای بازخورد سریع ارائه می‌کند و خوانندگان را به پیگیری منابع رسمی کنفرانس و آزمودن ایده‌ها در پروژه‌های خود تشویق می‌کند.

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


👑 @gopher_academy
2
🔵 عنوان مقاله
Josh W Comeau has a new, fantastic guide to SVG paths.

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

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


👑 @gopher_academy
Forwarded from Software Engineer Labdon
ا"Architecture Decision Record (ADR) Template" یعنی یک قالب (Template) برای ثبت و مستندسازی تصمیم‌های معماری نرم‌افزار.

به طور ساده:

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

یک ADR Template کمک می‌کند این مستندسازی همیشه با یک ساختار مشخص و یکسان انجام شود.

---

### ساختار رایج یک ADR Template

معمولاً شامل بخش‌های زیر است:

1. Title (عنوان تصمیم)
یک عنوان کوتاه و گویا.

2. Status (وضعیت)
مثلاً: Proposed, Accepted, Rejected, Superseded

3. Context (زمینه / دلیل نیاز به تصمیم)
توضیح اینکه چه مشکلی وجود داشته یا چه نیازی باعث شد که تصمیم گرفته شود.

4. Decision (تصمیم نهایی)
تصمیمی که گرفته شد (مثلاً "ما از PostgreSQL به جای MySQL استفاده می‌کنیم").

5. Consequences (پیامدها)
مزایا و معایب این تصمیم، و اثراتی که بر سیستم دارد.

---

### مثال ساده

# ADR 001: انتخاب دیتابیس اصلی

## Status
Accepted

## Context
ما نیاز به یک دیتابیس داریم که قابلیت ذخیره داده‌های ساخت‌یافته و مقیاس‌پذیری داشته باشد. تیم تجربه خوبی با SQL دارد.

## Decision
انتخاب PostgreSQL به عنوان دیتابیس اصلی.

## Consequences
+ ویژگی‌های پیشرفته (JSONB، Full-text search)
+ جامعه کاربری بزرگ
- یادگیری برخی قابلیت‌های خاص برای اعضای تیم جدید


👑 @software_Labdon
1