Gopher Academy
3.33K subscribers
916 photos
40 videos
279 files
1.97K links
🕸 Gopher Academy

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

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

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
Watermill: Library for Building Event-Driven Apps

🟢 خلاصه مقاله:
این مقاله به بررسی کتابخانه‌ای برای کار با جریان‌های پیام در برنامه‌های مبتنی بر رویداد می‌پردازد که امکان پشتیبانی از کانال‌های مختلفی مانند Kafka، RabbitMQ، HTTP و حتی binlogs MySQL را فراهم می‌سازد. این کتابخانه ابزاری قدرتمند برای توسعه‌دهندگان نرم‌افزار است تا بتوانند به طور موثرتری اپلیکیشن‌های درون‌ران و پاسخ‌گو به رویدادها را بسازند. کاربرد این کتابخانه شامل برقراری ارتباط بین کامپوننت‌ها و سیستم‌ها از طریق جریان‌های پیام است که امکان پردازش و تحلیل داده‌ها را در زمان واقعی فراهم می‌آورد. دستیابی به این شیوه از ارتباط درون سرویسی این امکان را به توسعه‌دهندگان می‌دهد که پیچیدگی‌های مدیریت ارتباطات و جریان داده‌ها را بهینه‌سازی کنند و بتوانند رابط‌کاربری‌های بیشتر متکی بر اینتراکتیویتی و داده‌ی مداوم را ارائه دهند. در نهایت، این کتابخانه به فرآیند توسعه اپلیکیشن‌های پیچیده‌تر و در عین حال کارآمدتر کمک شایانی می‌کند.

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


👑 @gopher_academy
👍1
🔵 عنوان مقاله
  Russ Cox on Passing the Torch

🟢 خلاصه مقاله:
راس کاکس، سرپرست سابق تکنولوژی زبان برنامه‌نویسی Go، به تازگی در پادکست Go Time حضور یافت تا در مورد فرآیند کناره‌گیری خود و واگذاری مسئولیت‌های خود به رهبر جدید، آستین کلمنتس، صحبت کند. آستین کلمنتس نیز در این پادکست ظاهر شده است، همچنین چری موی که برخی از مسئولیت‌های پیشین آستین را به عهده گرفته نیز حضور داشته است. راس در یک پست جداگانه نیز در مورد این تغییرات بیشتر توضیح داده است. اگرچه پادکست یک ساعته است، اما متن کامل آن نیز موجود است. این بحث‌ها نه تنها به انتقال رهبری تمرکز دارد، بلکه به بخش‌هایی از فرایند توسعه Go و چگونگی تاثیر آن بر جامعه برنامه‌نویسان پرداخته است.

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


👑 @gopher_academy
🙏2😈2
در زبان برنامه‌نویسی Go، خطای nilness: nil dereference in field selection به این معنی است که شما سعی کرده‌اید به فیلدی از یک متغیر اشاره‌گری دسترسی پیدا کنید که مقدار آن nil است. این خطا معمولاً زمانی رخ می‌دهد که به یک فیلد یا متد از یک اشاره‌گر nil دسترسی پیدا کنید، و Go به طور ایستا (در زمان کامپایل) شناسایی کرده است که ممکن است این دسترسی منجر به panic شود.

برای رفع این خطا، باید مطمئن شوید که قبل از دسترسی به فیلدها یا متدهای اشاره‌گر، بررسی کنید که مقدار اشاره‌گر nil نباشد.


👑 @gopher_academy
🔥3
🔵 عنوان مقاله
Greenmask: Postgres Data Masking and Obfuscation Tool

🟢 خلاصه مقاله:
مقاله‌ای که مورد بررسی قرار گرفته در مورد ابزاری است که با زبان برنامه‌نویسی Go نوشته شده است. این ابزار برای خروجی گرفتن از پایگاه داده‌های Postgres و مخفی‌سازی داده‌ها به شکل تعیین‌شده (deterministic) طراحی شده است. منبعی که برنامه در آن موجود است، GitHub repo، به کاربران امکان می‌دهد تا کد ابزار را مشاهده و در صورت نیاز تغییر دهند. مخفی‌سازی داده‌ها به این صورت است که اطلاعات حساس در دیتابیس در حین خروجی گرفتن تغییر می‌کنند تا از افشای اطلاعات جلوگیری شود، اما به نحوی که برای توسعه‌دهندگان قابل استفاده باقی بماند. این عملکرد برای سازمان‌هایی که به حفظ حریم خصوصی داده‌ها ملزم هستند بسیار مفید است.

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


👑 @gopher_academy
👍4
🔵 عنوان مقاله
'When I Told 4,091 Writers They Weren’t Getting Paid..'

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

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


👑 @gopher_academy
👍2
🔵 عنوان مقاله
Gomponents 1.0: HTML View Components in Pure Go

🟢 خلاصه مقاله:
مقاله‌ای که به آن اشاره شده، درباره کتابخانه کامپوننت HTML به نام v1.0 است که برای پروژه‌های زبان برنامه‌نویسی Go طراحی شده است. این کتابخانه پس از سه سال به نسخه ثابت و بدون وابستگی به دیگر مؤلفه‌ها رسیده است. استفاده از این کتابخانه در پروژه‌ها به توسعه‌دهندگان اجازه می‌دهد تا از اجزای HTML به طور مؤثری در برنامه‌های خود استفاده کنند. علاوه بر این، یک نمونه برنامه نیز برای بررسی موجود است که می‌تواند به کاربران کمک کند تا عملکرد و کاربرد کتابخانه را در عمل مشاهده کنند. این ابزار به افزایش بهره‌وری و کارایی در توسعه نرم‌افزار کمک خواهد کرد.

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


👑 @gopher_academy
🔥1🎉1
🔵 عنوان مقاله
Go Blueprint: Create New Go Projects with a Defined Structure

🟢 خلاصه مقاله:
این مقاله به معرفی ابزار جدیدی برای پیاده‌سازی پروژه‌های جدید در زبان برنامه‌نویسی Go می‌پردازد، که به کاربران امکان می‌دهد به سرعت یک برنامه با ساختار پرونده‌ای پیش‌تعریف‌شده و تولید کد خودکار راه‌اندازی کنند. این ابزار به کاربران اجازه می‌دهد تا اپلیکیشن‌هایی بر پایه چارچوب‌های معروفی مانند Chi، Gin و Fiber و دیگر فریم‌ورک‌ها بسازند. همچنین، پشتیبانی از پایگاه‌های داده و ابزارهای اختیاری مانند HTMX و Tailwind CSS را فراهم می‌کند. اطلاعات بیشتر و منابع مرتبط در مخزن GitHub قرار دارند. این ابزار یکی از ابزارهای رو به افزایشی است که توسعه‌دهندگان را قادر می‌سازد تا بدون صرف زمان زیاد برای پیکربندی‌های اولیه، سریعاً پروژه‌های Go خود را آغاز کنند.

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


👑 @gopher_academy
👍3
🔵 عنوان مقاله
Automate Complex Workflows Across Clouds & Data Platforms

🟢 خلاصه مقاله:
مقاله‌ای که مورد بررسی قرار گرفته، به بررسی سیستم Kestra می‌پردازد که یک پلتفرم خودکارسازی قدرتمند است و قابلیت مقیاس‌پذیری تا میلیون‌ها اجرا را دارد. این سیستم به طور خاص برای اتوماتیک کردن فرآیندها در محیط‌‌های مختلف ابری نظیر AWS، GCP و Snowflake طراحی شده است. Kestra با قابلیت اطمینان بالا و بدون درز کار می‌کند، این بدان معناست که می‌تواند به صورت مؤثری فرآیندهای کسب‌وکار را در سطح وسیعی از پلتفرم‌های مختلف به خودکارسازی برساند. این ویژگی‌ها کمک می‌کند که سازمان‌ها بتوانند بهره‌وری را افزایش دهند و هزینه‌های عملیاتی خود را کاهش دهند، در حالی که از پیچیدگی‌های فنی که معمولاً با خودکارسازی فرآیندها همراه است، می‌کاهند. Kestra این امکانات را فراهم می‌آورد تا سازمان‌ها با اطمینان بیشتری به سوی دیجیتالی شدن پیش بروند.

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


👑 @gopher_academy
🔥1
🔸بهینه سازی با {}struct در زبان Go🔸

کاهش سربار استفاده از حافظه در سناریو های خاص با استفاده از {}struct در زبان Go

لینک مقاله 👉

https://devdrug.com/article/optimization-with-empty-struct-in-go-language


👑 @gopher_academy
🔥4
🔵 عنوان مقاله
GoToSocial 0.17.0: A Go-Powered ActivityPub Server

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

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


👑 @gopher_academy
👍4
panic signals "the programmer has made a fundamental mistake and execution cannot continue safely",

os. Exit signals "the programmer has decided that the process should terminate here"


👑 @gopher_academy
🔥3🙏1
Gopher Academy
panic signals "the programmer has made a fundamental mistake and execution cannot continue safely", os. Exit signals "the programmer has decided that the process should terminate here" 👑 @gopher_academy
1. `panic`:

- یک خطای runtime ایجاد می‌کند و اجرای برنامه را متوقف می‌کند.
- قبل از خروج، توابع و تأخیرهای defer اجرا می‌شوند.
- مناسب برای مدیریت خطاهای جدی و ناپیش‌بینی‌شده که باید با پیام و گزارش خطا همراه باشند.

2. `os.Exit`:

- بلافاصله برنامه را با کد خروج تعیین‌شده متوقف می‌کند.
- از اجرای توابع defer صرف‌نظر می‌کند، بنابراین منابع ممکن است آزاد نشوند.
- مناسب برای خروج صریح بدون نیاز به اجرای cleanup.


👑 @gopher_academy
🔥4👍1💯1
💬 دوستان عزیز، درود!

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

این اطلاعات شامل لینک‌ها، مقالات، تجربیات شخصی و هر نکته کاربردی و ارزشمند دیگری می‌شود. 🙏

📩 لطفاً مطالب خود را از طریق ای دی زیر به من ارسال کنید👇

@mrbardia72

از همکاری شما دوستان سپاسگذارم! ❤️
🔥7👍1💘1
🔵 عنوان مقاله
Toxiproxy 2.10: A TCP Proxy to Simulate 'Chaotic' Network Conditions

🟢 خلاصه مقاله:
مقاله مورد نظر به بررسی ابزار Toxiproxy اختصاص دارد که برای آزمایش قابلیت اطمینان و مدیریت خطاهای سیستم‌ها در شرایط بحرانی طراحی شده است. Toxiproxy یک پروژه طولانی‌مدت توسعه داده شده توسط Shopify است که می‌تواند در شبکه‌های زیربنایی که سیستم به آن وابسته است، مشکلاتی از قبیل تأخیر در انتقال داده‌ها، محدودیت پهنای باند و قطع اتصال‌ها پس از انتقال مقدار معینی از داده‌ها را شبیه‌سازی کند. هدف از این ابزار، تحت فشار قرار دادن سیستم‌ها و ارزیابی عملکرد آن‌ها در شرایط نامساعد شبکه است تا به مدیران سیستم امکان دهد سیاست‌های مقابله‌ای و بهبود بخشیده‌ای را در پردازش خطاها و مسائل مربوط به قابلیت اطمینان برنامه‌ریزی کنند. Toxiproxy به عنوان ابزاری مفید و کاربردی برای توسعه‌دهندگان نرم‌افزار و مدیران شبکه قابل استفاده است، تا بتوانند به طور م wirام سیستم‌های خود را در برابر پیچیدگی‌ها و اختلالات احتمالی در شبکه آماده سازند.

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


👑 @gopher_academy
👍1💘1
🔵 عنوان مقاله
Writing Secure Go Code

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

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


👑 @gopher_academy
👍41
🔵 عنوان مقاله
How to Compare Postgres EXPLAIN Plans & Tune Slow Queries

🟢 خلاصه مقاله:
در وبینار آتی برای توسعه‌دهندگان نرم‌افزار به بررسی علت کُند بودن پرس‌و‌جوهای PostgreSQL در برنامه‌های نوشته شده با زبان Go و راه‌های بهینه‌سازی آنها پرداخته می‌شود. استفاده از ابزار pganalyze، این امکان را فراهم می‌آورد تا با مقایسه‌ی برنامه‌های اجرایی و عیب‌یابی سناریوهای رایج مثل حلقه‌های تودرتوی ناکارآمد و نبود شاخص‌ها (indexes)، به شناسایی و رفع مشکلات کمک شود. این وبینار فرصتی است تا توسعه‌دهندگان بتوانند دانش خود را در زمینه‌ی تشخیص و تنظیم پرس‌و‌جوهای PostgreSQL بهبود ببخشند و در نتیجه، عملکرد برنامه‌های Go خود را ارتقاء دهند.

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


👑 @gopher_academy
2👍1
🔵 عنوان مقاله
jsony: A 'Blazing Fast', Safe JSON Serialization Library

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

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


👑 @gopher_academy
👍2
🔵 عنوان مقاله
Checking the Top 10 Million Web Sites with Go

🟢 خلاصه مقاله:
مقاله‌ای با عنوان "27.6% از 10 میلیون سایت برتر مرده هستند" بیشتر به بررسی استفاده از زبان برنامه‌نویسی Go برای اسکریپینگ (استخراج داده) از وب‌سایت‌ها به صورت مقیاس‌پذیر و بازدهی بالا می‌پردازد. در این تحقیق، از ترکیب Redis با Go همراه با تجهیزات سخت‌افزاری قدرتمند استفاده شده است تا تنها در ده دقیقه، اطلاعات مربوط به وضعیت 10 میلیون سایت برتر اینترنت بررسی شود. این عملیات با سرعت تقریبی 17 هزار درخواست در ثانیه صورت گرفته و نتیجه آن نشان داده است که تقریباً 27.6 درصد از این سایت‌ها دیگر فعال نیستند. کدهای برنامه برای عموم منتشر شده‌اند تا دیگران نیز بتوانند از این روش در تحقیقات مشابه استفاده کنند یا آن را بهبود بخشند.

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


👑 @gopher_academy
👍2
🔵 عنوان مقاله
Building Thread-Safe Abstractions in Java vs Go

🟢 خلاصه مقاله:
مقاله‌ای که مورد بررسی قرار گرفته، به مقایسه و ترجمه بخش‌هایی از پیاده‌سازی SimpleDB از زبان برنامه‌نویسی جاوا به گو می‌پردازد. این مقاله تفاوت‌های اصلی بین ابزارهای همزمانی و همگام‌سازی که هر دو زبان ارائه می‌دهند را بررسی می‌کند. در جاوا، مدل‌های همگام‌سازی بر پایه‌ی روش‌های thread-based synchronization مانند wait/notify و lock استفاده می‌شود، در حالی که گو از goroutines و channels برای اجرای همزمانی بهره می‌برد که راهکاری بسیار سبک‌تر و مدیریت شده‌تری را فراهم می‌کند. مقاله توضیح می‌دهد که چگونه تغییر زبان می‌تواند بر عملکرد و ساختار کد تأثیر بگذارد و چالش‌ها و مزیت‌های مربوط به استفاده از Go در مقایسه با Java را ارزیابی می‌کند. این بررسی می‌تواند به تصمیم‌گیری در خصوص انتخاب زبان مناسب برای پروژه‌های مختلف کمک کند.

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


👑 @gopher_academy
👍2
درخواست موقعیت شغلی دورکاری فرانت‌اند Vue.js

با درود

من به دنبال یک فرصت شغلی دورکاری به عنوان توسعه‌دهنده فرانت‌اند با تخصص در Vue.js هستم. با داشتن چندین سال تجربه در توسعه وب، مهارت‌های زیادی در طراحی رابط کاربری جذاب، بهینه‌سازی تجربه کاربری (UX) و پیاده‌سازی پروژه‌های مبتنی بر Vue.js کسب کرده‌ام.

من به دنبال شرکتی هستم که فرهنگ دورکاری را پذیرفته و امکان همکاری از راه دور را فراهم کند. هدف من مشارکت در تیم‌های پویا و نوآور است تا بتوانم مهارت‌هایم را در پروژه‌های چالش‌برانگیز به کار گیرم و به رشد و موفقیت پروژه‌ها کمک کنم.

ممنون می‌شوم اگر فرصت گفت‌وگویی برای بررسی همکاری بیشتر فراهم شود.

با تشکر،

برای ارتباط و دریافت رزومه به من پیام بدید

@arminsb1
👍3🤝1