Gopher Academy
3.32K subscribers
912 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
🔵 عنوان مقاله
🔒 Protect Against AI Bots, Fraud, and Abuse in Real Time

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

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


👑 @gopher_academy
👍2
Forwarded from DevOps Labdon
ریموت سطح متوسط Software Engineer کشور نیوزلند
https://www.seek.co.nz/Junior-DevOps-Engineer-jobs?salaryrange=0-&salarytype=annual&jobId=82947515&type=standard

از دست ندید
👍4🎉1
معرفی بهترین کتابخانه‌ها برای کار با کوئری‌های دیتابیس در Go می‌پردازم

---

### ۱. `database/sql`:
- نوع: کتابخانه استاندارد Go.
- ویژگی‌ها: سبک‌وزن، پشتیبانی از چندین دیتابیس، مدیریت اتصالات و اجرای کوئری‌ها.
- کاربرد: برای کار مستقیم با دیتابیس‌های رابطه‌ای و استفاده از درایورهای مختلف.

---

### ۲. `sqlx`:
- نوع: اکستنشن برای database/sql.
- ویژگی‌ها: نگاشت خودکار نتایج به ساختارها (structs)، پشتیبانی از named queries، توابع کمکی برای کار با آرایه‌ها و اسلایس‌ها.
- کاربرد: مناسب برای پروژه‌هایی که نیاز به نگاشت خودکار و کوئری‌های پیشرفته‌تر دارند.

---

### ۴. `ent`:
- نوع: ORM و Query Builder.
- ویژگی‌ها: تولید کد (code generation)، پشتیبانی از انواع دیتابیس‌ها، قابلیت‌های پیشرفته‌تر نسبت به gorm.
- کاربرد: مناسب برای پروژه‌هایی که نیاز به کنترل بیشتر و تولید کد دارند.

---

### ۵. `pgx`:
- نوع: درایور و toolkit برای PostgreSQL.
- ویژگی‌ها: پشتیبانی پیشرفته از PostgreSQL، عملکرد بالا، پشتیبانی از connection pooling.
- کاربرد: مناسب برای پروژه‌هایی که به طور خاص از PostgreSQL استفاده می‌کنند.

---

### ۶. `bun`:
- نوع: ORM و Query Builder.
- ویژگی‌ها: پشتیبانی از چندین دیتابیس (PostgreSQL, MySQL, SQLite)، query builder قدرتمند، پشتیبانی از migrations.
- کاربرد: مناسب برای پروژه‌هایی که نیاز به انعطاف‌پذیری و پشتیبانی از چندین دیتابیس دارند.

---

### ۷. `beego/orm`:
- نوع: ORM.
- ویژگی‌ها: پشتیبانی از چندین دیتابیس، query builder، migrations.
- کاربرد: مناسب برای پروژه‌هایی که از فریم‌ورک Beego استفاده می‌کنند.

---

### ۸. `upper/db`:
- نوع: ORM و Query Builder.
- ویژگی‌ها: پشتیبانی از چندین دیتابیس، نگاشت خودکار نتایج به ساختارها، query builder.
- کاربرد: مناسب برای پروژه‌هایی که نیاز به انعطاف‌پذیری و پشتیبانی از چندین دیتابیس دارند.

---

### ۹. `sqlc`:
- نوع: ابزار تولید کد (code generation).
- ویژگی‌ها: تولید کد بر اساس کوئری‌های SQL، پشتیبانی از چندین دیتابیس، کاهش خطاهای زمان اجرا.
- کاربرد: مناسب برای پروژه‌هایی که نیاز به کنترل دقیق روی کوئری‌ها و کاهش خطاها دارند.

---

### ۱۰. `goqu`:
- نوع: Query Builder.
- ویژگی‌ها: ساخت کوئری‌ها به صورت برنامه‌نویسی، پشتیبانی از چندین دیتابیس، قابلیت‌های پیشرفته‌تر نسبت به database/sql.
- کاربرد: مناسب برای پروژه‌هایی که نیاز به ساخت کوئری‌های پیچیده به صورت برنامه‌نویسی دارند.

---

### جمع‌بندی:
- `database/sql`: برای کار مستقیم و سبک‌وزن با دیتابیس.
- `sqlx`: برای نگاشت خودکار و کوئری‌های پیشرفته‌تر.
- `ent`: برای پروژه‌هایی که نیاز به تولید کد و کنترل بیشتر دارند.
- `pgx`: برای پروژه‌های متمرکز بر PostgreSQL.
- `bun`: برای انعطاف‌پذیری و پشتیبانی از چندین دیتابیس.
- `beego/orm`: برای پروژه‌های مبتنی بر فریم‌ورک Beego.
- `upper/db`: برای انعطاف‌پذیری و پشتیبانی از چندین دیتابیس.
- `sqlc`: برای تولید کد بر اساس کوئری‌های SQL.
- `goqu`: برای ساخت کوئری‌های پیچیده به صورت برنامه‌نویسی.

انتخاب کتابخانه مناسب به نیازهای پروژه، اندازه تیم و ترجیحات شخصی شما بستگی دارد.
7👍2🍾1
🔵 عنوان مقاله
Participle: A Simple Library for Defining Parsers

🟢 خلاصه مقاله:
مقاله‌ای که مورد بررسی قرار گرفته است به معرفی روشی ساده اما زبان‌محور برای تعریف کننده‌های نحوی در زبان برنامه‌نویسی Go می‌پردازد. این روش، با استفاده از تگ‌های موجود در فیلدهای ساختار (struct)، دستورالعمل‌ها و قواعد گرامری را تعریف می‌کند و به دلیل شیوه آشنای خود به کاربرانی که پیش از این با کتابخانه‌ encoding/json در Go کار کرده‌اند، بسیار آشنا به نظر می‌رسد. این روش به توسعه‌دهندگان امکان می‌دهد تا به راحتی و با استفاده از تکنیک‌های معمول در Go، پارسر‌های خود را بسازند و از پیچیدگی‌های مرسوم در سایر روش‌های ساخت پارسر کاسته شود. این مقاله همچنین بر اهمیت درک و استفاده از ساختار‌های برنامه‌نویسی متداول و روزآمد در زبان Go تاکید دارد.

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


👑 @gopher_academy
👍1
‏باشد که سال جدید
سال رهایی ما،
از رنج هایی باشد
که حقمان نبود...
🔥17👍8🕊7🍾1
🔵 عنوان مقاله
Traversal-Resistant File APIs

🟢 خلاصه مقاله:
مقاله مورد بررسی به بررسی ویژگی‌های جدید نسخه‌های اخیر زبان برنامه‌نویسی Go می‌پردازد که به بهبود امنیت سیستم فایل در رابطه با ورودی‌های کاربر نهایی زمانی که به مسیرهای فایل دسترسی دارند، می‌پردازد. ویژگی‌هایی چون os.Root, filepath.IsLocal, filepath.EvalSymLinks و filepath.Localize معرفی شده‌اند که هرکدام به نحوی به جلوگیری از حملات مبتنی بر مسیر فایل یا اطمینان از دسترسی به فایل‌ها در مکان‌های محلی کمک می‌کنند. این ویژگی‌ها به توسعه‌دهندگان اجازه می‌دهد تا برنامه‌هایی امن‌تر در برابر نفوذهای احتمالی بر پایه ورودی‌های کاربر ایجاد کنند. به طور خلاصه، این مقاله به عنوان یک منبع ضروری برای فهمیدن چگونگی بهره‌برداری از قابلیت‌های جدید Go در زمینه امنیت فایل توصیه شده است.

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


👑 @gopher_academy
👍2
به روز ترین اخبار در مورد دنیای بلاکچین و ارز های دیجیتال

👇👇👇👇👇
https://t.me/Blockchain_labdon
2
🔵 عنوان مقاله
golang-set: A Simple, Well-Tested, Generic Set Type

🟢 خلاصه مقاله:
مقاله‌ی مورد نظر درباره‌ی آخرین نسخه‌ی انتشار یافته (v2.8) برای زبان برنامه‌نویسی Go می‌باشد که پشتیبانی از قابلیت جدید "range-over-func iteration" اضافه شده در نسخه‌ی 1.23 Go را معرفی می‌کند. این ویژگی جدید به برنامه‌نویسان اجازه می‌دهد که بر روی نتایج تابع با استفاده از حلقه‌ی range به صورت مستقیم تکرار کنند، که رویکردی بسیار کارآمد برای مدیریت مجموعه‌های داده‌ای است. علاوه بر این، نویسنده به نداشتن ساختار داده‌ای "مجموعه‌ها" به صورت بومی در Go اشاره می‌کند و توصیه می‌کند تا زمانی که این ویژگی بومی اضافه نشود، از راه‌حل‌های موجود استفاده شود. این مقاله به ویژه برای توسعه‌دهندگان نرم‌افزاری که از Go استفاده می‌کنند مفید است، زیرا اطلاعاتی در مورد قابلیت‌های جدید و توصیه‌های مربوط به بهینه‌سازی کدهایشان ارائه می‌دهد.

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


👑 @gopher_academy
👍4
🔵 عنوان مقاله
📅 Live Workshop: Build Production-Ready Apps with JavaScript & Go

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

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


👑 @gopher_academy
1👍1
🔵 عنوان مقاله
Prepare Your App for AI Agents

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

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


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

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

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


👑 @gopher_academy
👍31
🔵 عنوان مقاله
WAX: JSX-Based Server-Side Rendering for Go

🟢 خلاصه مقاله:
مقاله‌ای که مورد بررسی قرار گرفته، روش‌هایی را برای تولید HTML در سمت سرور با استفاده از قالب‌های TSX/JSX در زبان برنامه‌نویسی Go توضیح می‌دهد. TSX و JSX دو فرمت مشهور هستند که بیشتر در اکوسیستم React مورد استفاده قرار می‌گیرند و این امکان را به توسعه‌دهندگان می‌دهند که استایل، منطق و محتوای مربوط به وب را به شکل ترکیبی مدیریت کنند. در مقاله به تفصیل شرح داده شده است که چگونه می‌توان با استفاده از Go، این قابلیت‌ها را پیاده‌سازی کرد. استفاده از Go برای تولید HTML در سمت سرور مزایایی مانند افزایش سرعت پردازش و بهبود عملکرد دارد. مقاله همچنین شامل برخی نمونه‌های کد برای نشان دادن چگونگی اجرای این فرایند در عمل است. این رویکرد، توسعه‌دهندگان را قادر می‌سازد تا وب‌سایت‌هایی با بارگیری سریع‌تر و بهینه‌تر از لحاظ منابع ایجاد کنند.

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


👑 @gopher_academy
👍3
🔵 عنوان مقاله
How to Manage Tool Dependencies in Go 1.24+

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

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


👑 @gopher_academy
👍4
درود به همه

دوستان عزیزی که علاقه‌مند به تبلیغات در توییتر هستند، می‌توانند به من پیام بدن.

@mrbardia72

صفحه توییتر ما با بیش از ۱۱ هزار فالوور فعال، فضای مناسبی برای معرفی کسب‌وکار شما فراهم می‌کند.
🍾1
🔵 عنوان مقاله
nativewebp: Native WebP Image Support for Go

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

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


👑 @gopher_academy
👍1
🔵 عنوان مقاله
sqldef 1.0: Idempotent Schema Management for Databases

🟢 خلاصه مقاله:
مقاله‌ای که مورد بررسی قرار گرفته، به توضیح یک ابزار خط فرمان (CLI) بر پایه‌ی زبان برنامه‌نویسی Go و یک کتابخانه WASM می‌پردازد که برای تفاوت‌یابی (diffing) در اسکیماهای SQL استفاده می‌شود. این ابزار قابل استفاده برای پایگاه‌داده‌های MySQL، PostgreSQL، SQLite و SQL Server می‌باشد. ابزار مذکور توسط یکی از اعضای اصلی تیم توسعه‌ی زبان برنامه‌نویسی Ruby ساخته شده است. عملکرد این ابزار به طور خاص در تطابق و مقایسه‌ی ساختارهای مختلف دیتابیس‌ها است تا تغییرات و اختلافات بین نسخ مختلف اسکیماها را شناسایی و نمایش دهد. این قابلیت برای توسعه‌دهندگانی که با مهاجرت های پایگاه داده و یا سینک سازی بین محیط‌های مختلف کار می‌کنند، بسیار مفید است.

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


👑 @gopher_academy
👍1
🔵 عنوان مقاله
Nil Channels in Go

🟢 خلاصه مقاله:
مقاله‌ای که مورد بررسی قرار گرفته، موضوعی تخصصی را در زمینه برنامه‌نویسی با زبان Go پوشش می‌دهد. نویسنده، Vishnu، به بررسی مشکلات ناشی از کانال‌های Nil در زبان برنامه‌نویسی Go پرداخته است که برای بسیاری از برنامه‌نویسان Go (معروف به Gophers) چالش‌برانگیز است. او در جستجوی علت‌های این مسئله بوده و به منظور حل آن یک ضرب‌المثل جدید در زبان Go ابداع کرده است: “Init when you split; Nil when you merge.” این ضرب‌المثل به این معنی است که هنگام تقسیم کارها یا منابع، می‌بایست ابتدا آن‌ها را مقداردهی کرد و هنگام ادغام یا ترکیب آنها، استفاده از مقدار Nil باید در نظر گرفته شود. این رویکرد کمک خواهد کرد تا برنامه‌نویسان به شکل بهینه از کانال‌ها استفاده نموده و از بروز اشکالات جلوگیری کنند.

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


👑 @gopher_academy
👍5
مایکروسافت نسخه‌های Go 1.24.1-1 و Go 1.23.7-1 را با بیلدهای اختصاصی خود منتشر کرده است. این نسخه‌ها برای بهبود سازگاری، پایداری و عملکرد اجرای Go در محیط ویندوز طراحی شده‌اند.

اگرچه هسته زبان Go تغییری نکرده، اما این بیلدها شامل بهینه‌سازی‌هایی برای هماهنگی بهتر با ویندوز، پشتیبانی بهبودیافته از APIهای بومی، و بهینه‌سازی‌هایی برای توسعه و استقرار ساده‌تر هستند.

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

https://golangweekly.com/link/166793/web



👑 @gopher_academy
👍7🔥2🍾2🕊1
🔵 عنوان مقاله
The Cost of Go's panic and recover

🟢 خلاصه مقاله:
مقاله‌ای که بررسی شده است به بررسی کاربرد توابع `panic` و `recover` در زبان برنامه‌نویسی Go پرداخته است. `Panic` در Go برای مواقعی استفاده می‌شود که خطای جدی و غیرمنتظره‌ای رخ دهد و نیاز باشد که اجرای برنامه به سرعت متوقف شود. از طرفی، `recover` به برنامه این امکان را می‌دهد که پس از رخ دادن یک `panic`، کنترل خود را بازیابی کند و می‌تواند به عنوان مکانیزمی برای کنترل جریان اجرای برنامه عمل کند. استفاده از `recover` در مواقعی که طراحی‌های غیرمتعارفی در ذهن دارید، می‌تواند مفید واقع شود. به این ترتیب، برنامه‌نویسان می‌توانند از این دو تابع برای مدیریت خطاهای جدی در برنامه‌های خود و جلوگیری از توقف ناگهانی برنامه استفاده کنند.

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


👑 @gopher_academy
👍21