Gopher Academy
3.32K subscribers
912 photos
40 videos
279 files
1.94K links
🕸 Gopher Academy

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

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

ادمین:
@mrbardia72

ادمین تبلیغات:
@labdon_ads
Download Telegram
🔵 عنوان مقاله
A Practical Example of Dependency Inversion using Plugins

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

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


👑 @gopher_academy
1
🔵 عنوان مقاله
go-mail v0.6: A Library for Sending Emails

🟢 خلاصه مقاله:
مقاله‌ای که مرور شده، درباره‌ی به‌روزرسانی نسخه 0.6 نرم‌افزار ارسال ایمیل گو-میل صحبت می‌کند. این نسخه جدید ویژگی‌های متعددی اضافه کرده است. از جمله این ویژگی‌ها می‌توان به پشتیبانی از امضای S/MIME، کشف خودکار احراز هویت SMTP، پشتیبانی از سوکت دامنه یونیکس و ویژگی 'ارسال سریع' اشاره کرد. این ویژگی‌های جدید به کاربران امکان می‌دهند تا ارسال ایمیل‌های خود را با امنیت و سهولت بیشتری انجام دهند. اضافه شدن این قابلیت‌ها نشان‌دهنده تلاش برای بهبود کارایی و افزایش امنیت در ارسال ایمیل‌ها است، و به کاربران اجازه می‌دهد تا بتوانند با اعتماد بیشتری نسبت به حفظ امنیت محتوای ارسالی خود اقدام کنند.

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


👑 @gopher_academy
🥰1
🔵 عنوان مقاله
Realizing Why Go Reflection Restricts What Struct Fields Can Be Modified

🟢 خلاصه مقاله:
این مقاله به بررسی دسترسی و تغییر داده‌ها در زبان برنامه‌نویسی Rust می‌پردازد و تأکید دارد که فیلدهای خصوصی (غیرقابل خروجی) نمی‌توانند تغییر کنند، حتی با استفاده از بازتاب (reflection). دیدگاه منطقی و اصول امنیتی در Rust، دسترسی به فیلدهای خصوصی را محدود می‌کند، که این از تغییر داده‌های حساس توسط کدهای بیرونی جلوگیری می‌کند. این محدودیت به حفظ ساختار داده‌ها کمک می‌کند و امنیت برنامه‌ها را افزایش می‌دهد. نکته‌ی کلیدی این است که Rust با محدود کردن دسترسی‌ها، به توسعه‌دهندگان کمک می‌کند تا سیستم‌های مطمئن‌تری بسازند و از ورود یا تغییرات ناخواسته در بخش‌های کلیدی کد جلوگیری می‌کند. این مقاله، با تاکید بر این امنیت داده، راهنمای مفیدی برای برنامه‌نویسانی است که به دنبال رویکردهای محافظت شده در برنامه‌نویسی هستند.

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


👑 @gopher_academy
1
Gopher Academy pinned «🎯 چندتا پست در مورد ویژگی های جدید گولنگ 1.24 اینجاست می تونید بخونید👇 🔵 https://t.me/gopher_academy/3557 🔵 https://t.me/gopher_academy/3556 🔵 https://t.me/gopher_academy/3555 🔵 https://t.me/gopher_academy/3554 🔵 https://t.me/gopher_academy/3553 🔵»
🔵 عنوان مقاله
An Interactive Tour of Go 1.24

🟢 خلاصه مقاله:
مقاله مورد بحث به بررسی ویژگی‌های جدید نسخه 1.24 زبان برنامه‌نویسی Go پرداخته است. این ویژگی‌ها شامل موارد متنوعی می‌شوند که هر کدام به وسیله نمونه‌های قابل اجرا و تعاملی همراه شده‌اند تا کاربردی بودن آن‌ها مانند استفاده از نام‌های جنسیتی عمومی، ایجاد و پاک‌سازی نشانگرهای ضعیف، کار با دسترسی به فایل و مشاهده معیارهای عملکردی برای پیاده‌سازی جدید و سریع‌تر map نشان داده شود. انتظار می‌رود که نسخه 1.24 Go در ماه‌های آینده منتشر شود، با اینکه نسخه دوم Release Candidate (RC2) آن احتمالاً طی هفته جاری منتشر خواهد شد. این بروزرسانی‌ها نشان‌دهنده تلاش‌های مستمر توسعه‌دهندگان Go برای ارتقاء کارایی و افزایش توانایی‌های زبان هستند.

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


👑 @gopher_academy
👍2🎉1
Forwarded from 𓄂 Bardia 𓆃
👍2🍾2👌1
🔵 عنوان مقاله
The First Newsletter Dedicated to Product Engineers

🟢 خلاصه مقاله:
مقاله‌ای که مورد بحث قرار گرفته، تمرکز خود را بر روی نقش مهم مهندسان محصول در استارت‌آپ‌های در حال رشد به سرعت معطوف داشته است. این مهندسان نه تنها توانایی تشخیص نیازمندی‌های محصول را دارند، بلکه قابلیت اجرایی کردن این نیازها را نیز دارا هستند. اهمیت این نقش در این است که این افراد قادر به هم‌زمانی تحلیل و پیاده‌سازی هستند، که این امر، کلیدی برای موفقیت سریع است. مقاله با ارائه مهارت‌ها و راهبردهای لازم برای موفقیت در این نقش، "Product for Engineers" را به عنوان منبعی معرفی می‌کند که به اشتراک‌گذاری این دانش‌ها پرداخته و به مهندسان محصول کمک می‌کند تا در محیط‌های پویا و سریع استارت‌آپ‌ها به موفقیت دست یابند.

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


👑 @gopher_academy
🐳1
🔵 عنوان مقاله
Bunster: Compile Shell Scripts to Static Binaries

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

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


👑 @gopher_academy
👍5
🔵 عنوان مقاله
Protect Against Bots, Fraud, and Abuse in Real Time

🟢 خلاصه مقاله:
مقاله‌ای که ارائه شده در مورد WorkOS Radar و کاربردهای آن در حفظ امنیت برنامه‌ها می‌پردازد. WorkOS Radar با استفاده از تکنیک‌های پیشرفته شناسایی دستگاه (device fingerprinting)، قادر است رفتارهای مضر را تشخیص داده، تأیید کند و مسدود سازد. این فناوری به ویژه در جلوگیری از ثبت‌نام‌های جعلی، سوءاستفاده از سطح رایگان خدمات و همچنین مقابله با حملات ربات‌ها و تلاش‌های نفوذ به صورت خودکار (brute force attacks) مؤثر است. با استفاده از WorkOS Radar، کاربران می‌توانند از برنامه‌های خود در برابر انواع خطرات سایبری به طور موثر محافظت کرده و ایمنی داده‌ها و عملکرد کاربردی برنامه‌های خود را تضمین کنند. این ابزار امنیتی به کاربران این امکان را می‌دهد که به صورت فعال و پیشگیرانه در مقابل تهدیدات سایبری قدم بردارند.

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


👑 @gopher_academy
🙏1
Forwarded from 𓄂 Bardia 𓆃
در حاضر نوع همکاریت به چه صورت هست؟
Anonymous Poll
31%
remote
48%
on-site
24%
hybrid
🔵 عنوان مقاله
  How to Build an MMO Game with Godot 4 and Go

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

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


👑 @gopher_academy
👍1
🔵 عنوان مقاله
Go 1.24 Release Candidate 2 Released

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

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


👑 @gopher_academy
👍1
🔵 عنوان مقاله
Forgejo 10.0: A Go-Powered Self-Hosted Software Forge

🟢 خلاصه مقاله:
مقاله‌ای که شما به آن اشاره کرده‌اید، در مورد نرم‌افزاری به نام Forgejo بحث می‌کند که به عنوان یک جایگزین کامل برای GitHub پیشنهاد شده است. Forgejo در واقع یک شاخه (fork) از نرم‌افزار Gitea است، اما با ویژگی‌های بیشتر توسعه یافته که آن را برای استفاده به عنوان پلتفرم کدنویسی مستقل تقویت می‌کند. این پلتفرم اکنون توسط Codeberg به کار گرفته شده است و شما می‌توانید نحوه کار آن را در مخزن خود Forgejo مشاهده کنید. به تازگی نسخه‌ی 10.0 از آن منتشر شده است که احتمالاً شامل به‌روزرسانی‌ها و ویژگی‌های جدیدی است. این مقاله تاکید دارد که Forgejo گزینه‌ای قدرتمند برای کسانی است که به دنبال جایگزینی برای GitHub هستند.

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


👑 @gopher_academy
💡 چرا همه اساتید موفق سیگنال و پکیج میفروشن ؟ 🥶

‼️ ادم موفق چیزی میفروشه به مردم ؟😂

💯 اقای ارسلان حسینی تو چنلش هر هفته یک سیگنال میده سری قبلی ریپل سیگنال داد ۳۵۰٪ سود داده و روند امروز مارکت هم تحلیل کرده بود و معامله جدید هم گذاشته 💸

برای ورود کلیک کنید:

💬
@arsalaneth ⬅️
💬
@arsalaneth ⬅️
🔴🔴🔴🔴🔴🔴
🔵 عنوان مقاله
asyncmachine-go: A Declarative Control Flow Library

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

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


👑 @gopher_academy
🔵Mutable data type in Golang

Slice
Array
Map
Channels

————————————-

🔵Immutable data type in Golang

Boolean, Int, Float
Pointers
String
Interfaces


👑 @gopher_academy
🍓2🙏1
Gopher Academy
🔵Mutable data type in Golang Slice Array Map Channels ————————————- 🔵Immutable data type in Golang Boolean, Int, Float Pointers String Interfaces 👑 @gopher_academy
در زبان برنامه‌نویسی Go (گولنگ)، مفهوم mutable و immutable به قابلیت تغییر یا عدم تغییر داده‌ها پس از ایجاد آنها اشاره دارد. این مفاهیم به طور مستقیم در خود زبان Go تعریف نشده‌اند، اما می‌توان آنها را در رفتار انواع داده‌ها مشاهده کرد.

### ۱. Immutable Types (انواع غیرقابل تغییر)

- تعریف: داده‌هایی که پس از ایجاد، نمی‌توان محتوای آنها را تغییر داد.

- مثال‌ها:

- اعداد (int, float, ...): وقتی یک عدد ایجاد می‌شود، نمی‌توان آن را تغییر داد. اگر مقدار جدیدی به یک متغیر اختصاص دهید، در واقع یک مقدار جدید ایجاد می‌شود.

- رشته‌ها (string): رشته‌ها در Go غیرقابل تغییر هستند. اگر بخشی از یک رشته را تغییر دهید، در واقع یک رشته جدید ایجاد می‌شود.

- ثابت‌ها (constants): ثابت‌ها در Go نیز غیرقابل تغییر هستند.


#### مثال:

s := "Hello"
s[0] = 'h' // این خطا می‌دهد، زیرا رشته‌ها غیرقابل تغییر هستند.
s = "hello" // این کار می‌کند، اما در واقع یک رشته جدید ایجاد می‌شود.




### ۲. Mutable Types (انواع قابل تغییر)

- تعریف: داده‌هایی که پس از ایجاد، می‌توان محتوای آنها را تغییر داد.

- مثال‌ها:
- آرایه‌ها (arrays): آرایه‌ها در Go قابل تغییر هستند، اما اندازه آنها ثابت است.
- برش‌ها (slices): برش‌ها قابل تغییر هستند و می‌توان عناصر آنها را تغییر داد.
- نقشه‌ها (maps): نقشه‌ها نیز قابل تغییر هستند و می‌توان کلیدها و مقادیر آنها را تغییر داد.
- ساختارها (structs): اگر فیلدهای یک ساختار قابل تغییر باشند، می‌توان آنها را تغییر داد.


#### مثال:

slice := []int{1, 2, 3}
slice[0] = 10 // این کار می‌کند، زیرا برش‌ها قابل تغییر هستند.



### ۳. تفاوت‌های کلیدی
- تغییرپذیری: داده‌های mutable پس از ایجاد قابل تغییر هستند، در حالی که داده‌های immutable پس از ایجاد غیرقابل تغییر هستند.
- عملکرد: تغییر داده‌های immutable معمولاً منجر به ایجاد یک کپی جدید از داده می‌شود، در حالی که تغییر داده‌های mutable روی همان داده اصلی اعمال می‌شود.
- کارایی: استفاده از داده‌های mutable می‌تواند کارایی بیشتری داشته باشد، زیرا از ایجاد کپی‌های مکرر جلوگیری می‌کند. با این حال، داده‌های immutable امن‌تر هستند و از خطاهای ناشی از تغییرات ناخواسته جلوگیری می‌کنند.

### ۴. نکات مهم
- در Go، رشته‌ها و ثابت‌ها immutable هستند، در حالی که برش‌ها، نقشه‌ها و ساختارها mutable هستند.
- هنگام کار با داده‌های mutable، باید مراقب باشید که تغییرات ناخواسته در داده‌ها رخ ندهد، به ویژه زمانی که داده‌ها بین توابع یا گوروتین‌ها به اشتراک گذاشته می‌شوند.

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


👑 @gopher_academy
👏511
🔵 عنوان مقاله
  Go in the Smallest of Places

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

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


👑 @gopher_academy
👍1
🔵 عنوان مقاله
gno.land Offers Grants & Bounties for Go-Powered Decentralized Apps

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

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


👑 @gopher_academy
Forwarded from 𓄂 Bardia 𓆃
پنج پرامپت chatgpt برای بهبود عملکرد


۱. تولید پیشنهادات کاربردی
"من تازه به استفاده از ChatGPT روی آورده‌ام و شغل من [شغل خود را وارد کنید] است. لطفاً فهرستی از ۱۰ پیشنهاد برتر برای افزایش بهره‌وری من ارائه دهید."

۲. بهبود نوشتار با بازخورد دقیق
"[متن نوشتاری خود را وارد کنید] لطفاً نوشته‌ی من را بررسی کن. اشتباهات گرامری و املایی را اصلاح کن و پیشنهاداتی برای بهبود وضوح نوشته‌ام ارائه بده."

۳. ساخت یک رزومه قوی
"جزئیات حرفه‌ای من را در زیر تحلیل کن و یک رزومه متقاعدکننده ایجاد کن که به من در یافتن شغل [جزئیات شغل مورد نظر را وارد کنید] کمک کند: [جزئیات حرفه‌ای خود را وارد کنید]."

۴. تسریع یادگیری با اصل ۸۰/۲۰
"می‌خواهم درباره [موضوع مورد نظر را وارد کنید] یاد بگیرم. لطفاً ۲۰ درصد مهم‌ترین نکات این موضوع را شناسایی و به اشتراک بگذار که به من کمک کند ۸۰ درصد آن را درک کنم."

۵. یادگیری مهارت‌های جدید
"می‌خواهم در [مهارت مورد نظر را وارد کنید] بهتر شوم. من کاملاً مبتدی هستم. لطفاً یک برنامه یادگیری ۳۰ روزه ایجاد کن که به یک مبتدی مانند من کمک کند تا این مهارت را بیاموزد و پیشرفت کند."

با استفاده از این پیشنهادات، می‌توانید بهره‌وری خود را افزایش دهید و مهارت‌های جدیدی یاد بگیرید!
🔥2🍾1👨‍💻1