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
🔵 عنوان مقاله
New Low-Level Tools for Garbage Collection Efficiency

🟢 خلاصه مقاله:
مروری بر دو ویژگی جدید ارائه شده توسط جمع‌آور کنندة زباله‌ها (garbage collector) در نسخه ۱.۲۴ گو (Go): runtime.AddCleanup و weak.Pointer. تمیزکاری‌ها (Cleanups) شبیه به نهایی کننده‌ها (finalizers) هستند، اما با دور زدن برخی از عجایب آن‌ها باعث می‌شوند که اشیاءی که به آن‌ها متصل هستند، احیا نشوند. از سوی دیگر، اشاره‌گرهای ضعیف (weak pointers) به شما امکان می‌دهند که به اشیاء اشاره کنید بدون آنکه مانع از جمع‌آوری زباله‌های آن‌ها شوید.

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


👑 @gopher_academy
👍1🍾1
🔵 عنوان مقاله
Sign Up for a Workshop to Get Started Building Go-Powered Decentralized Apps

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

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


👑 @gopher_academy
👍2
Forwarded from Database Labdon
به عنوان جوانی که هم دلار هزار تومنی رو دیدم هم صد هزار تومنی واقعا غمگین میباشم.
🕊22👍5🍾32
Forwarded from omid trade 360
به طور متوسط، یک مهندس سنیور نرم‌افزار ۳ تا ۵ برابر بیشتر از یک جونیور درآمد داره. این فقط به خاطر تجربه بیشتر نیست، بلکه به دلیل ارزش بیشتری هست که به شرکت میاره.

حالا فرض کنید دو مهندس تو یه شرکت کار می‌کنند:

مهندس A (سخت‌کوش)
-  روزی 10 ساعت کار میکنه، باگ‌هارو را درست می‌کنه و هزاران خط کد می‌نویسه.
- تمام وظایف محول شده رو بدون فکر کردن به تأثیرشون انجام می‌ده.
- و یه جورایی در چرخه‌ی "کار زیاد، پیشرفت کم" گیر کرده.

مهندس B (موثر)
- قبل از نوشتن حتی یک خط کد، وقت می‌گذاره تا مشکل اصلی رو بفهمه.
- می‌تونه یه مشکل بزرگ تو سیستم پیدا کنه و با یک اسکریپت 500 خطی، سالانه ۵۰ تا ۷۰ میلیون تو هزینه‌های شرکت صرفه‌جویی کنه.
- ورک‌فلو رو بهتر می‌کنه تا سیستم سریع‌تر، بهینه‌تر و مقیاس‌پذیر بشه.
حالا وقتی زمان ترفیع برسه به نظرت شرکت کدوم رو بیشتر میخواد؟

انصاف هست مهندس A که مشغول بوده صرفا و تسک‌هارو انجام میداده و ارزش و تاثیر کمتری تو شرکت میذاره بیشتر ترفیع بگیره؟ خوب نه (نه اینکه نگیره، اینه که بیشتر یا کمتر بگیره)

پس کار ما مساوی هست با تأثیری که می‌گذاریم

چند تا نکته در نهایت

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

- یک سنیور سیستم‌ها را طراحی می‌کنه، پیچیدگی رو کم می‌کنه و تصمیم‌های بهتر می‌گیره، نه فقط کد بزنه.
- بفهم کارت چطور به شرکت کمک می‌کنه
- یادت باشه یک اسکریپت 200 خطی که پول صرفه‌جویی کنه، از یک ویژگی 10,000 خطی که کسی استفاده نکنه باارزش‌تره.

- بهترین مهندس‌ها فقط کد نمی‌نویسن، سیستم‌ها محصولات و کارایی رو بهتر می‌کنن.
- هدف این نیست که کد بیشتری بنویسی، هدف اینه که ارزش بیشتری بسازی.

پس (در یک شرکت یا تیم سالم) ارزش بیشتری بسازی، پاداش بیشتری می‌گیری.

<Saman/>

https://t.me/addlist/KpzXaiSpKENkMGM0
👍109🕊1
💐 هر روزتان نوروز نوروزتان پیروز

❤️ سالی به مهربانی میترا
🔥 به نیکی زرتشت
👑 به اقتدار کوروش داشته باشید

نوروز بر همگی دوستان همایون باد


https://t.me/addlist/KpzXaiSpKENkMGM0
8👍1🎉1🕊1🍾1
🔵 عنوان مقاله
🔒 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