Gopher Academy
3.33K subscribers
914 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
🔵 عنوان مقاله
Gore 0.6: A Full Featured Go REPL Environment

🟢 خلاصه مقاله:
در این بیلد جدید، شما تمام ویژگی‌های مورد انتظار مانند ویرایش خط، تاریخچه، ورودی چند خطی، توانایی وارد کردن بسته‌ها (packages)، و همچنین تکمیل کد با قدرت گرفته از gopls را در اختیار دارید.

توضیح: "gopls" یک ابزار زبان سرور برای زبان برنامه‌نویسی Go است که تکمیل خودکار کد، شناسایی خطاها و سایر ویژگی‌های مفید هنگام کدنویسی را فراهم می‌کند.

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


👑 @gopher_academy
👍3
🔵 عنوان مقاله
Go Clean Template

🟢 خلاصه مقاله:
الهام‌گرفته از اصول «کد تمیز» باب عمو (Uncle Bob)، این مخزن تلاش می‌کند تا یک «قالب معماری تمیز» برای ساختن سرویس‌های محرکه‌شده توسط زبان برنامه‌نویسی Go ارائه دهد که به خوبی سازمان‌دهی شده‌اند و به هم‌ریختگی تبدیل نخواهند شد. شما قضاوت کنید.

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


👑 @gopher_academy
2👍2
🔵 عنوان مقاله
Faster Go Maps with Swiss Tables

🟢 خلاصه مقاله:
یکی از جدیدترین ویژگی‌های زبان برنامه‌نویسی گو، پیاده‌سازی بهبود یافته‌ی ساختمان داده نقشه (map) است که توسط یک الگوریتم جدول هش جدید به نام Swiss Table پشتیبانی می‌شود. این الگوریتم عملیات‌های روی نقشه‌ها را تا ۶۰ درصد در میکروبنچمارک‌ها (microbenchmarks، آزمایش‌های کوچک برای بررسی کارایی قطعات مجزا) سریع‌تر می‌کند، در حالی که میزان استفاده از حافظه را نیز کاهش می‌دهد. در اینجا نگاهی داریم به نحوه کارکرد آن.

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


👑 @gopher_academy
👍4
تایپ‌اسکریپت رو دارن با Go باز نویسی می‌کنن و تا الان ۱۰ برابر سریع‌تر از قبل شده. چیزی که خیلی جالبه اینه که تیم توسعه‌اش با C# خیلی نزدیکه (چون پشت جفتشون مایکروسافته) و حتی سازنده‌اشونم یکیه. اما با این حال با وجود رقابتی که الان بین C# و Go هست، اومدن Go رو انتخاب کردن.

<Yasha/>

https://t.me/addlist/KpzXaiSpKENkMGM0
🔥18👍63🍾2🎉1🕊1
Forwarded from 𓄂 Bardia 𓆃
👍3🔥1🕊1
Forwarded from DevOps Labdon
🔵 عنوان مقاله
How to manage tool dependencies in Go 1.24+ (6 minute read)

🟢 خلاصه مقاله:
مقاله‌ای که مرور شده، درباره ورژن 1.24 زبان برنامه‌نویسی Go صحبت می‌کند که ویژگی جدیدی با عنوان پرچم "-tool" را معرفی کرده است. این ویژگی امکان مدیریت وابستگی‌های ابزارهای توسعه‌دهندگان را مستقیماً در فایل go.mod فراهم می‌آورد. با استفاده از این پرچم، توسعه‌دهندگان می‌توانند به سادگی ابزارهایی نظیر staticcheck، govulncheck، و stringer را افزوده، به روز رسانی کنند یا حذف نمایند. این امکان به انتگراسیون راحت‌تر این ابزارها در فرآیندهای توسعه کمک کرده و به بهبود جریان کاری توسعه‌دهندگان منجر می‌شود. در نتیجه، این تغییر جدید در Go 1.24 به تسهیل بخشیدن به مدیریت ابزارهای توسعه می‌پردازد و استفاده از آنها را در پروژه‌های Go کارآمدتر می‌کند.

🟣لینک مقاله:
https://www.alexedwards.net/blog/how-to-manage-tool-dependencies-in-go-1.24-plus?utm_source=tldrdevops


👑 @DevOps_Labdon
👍21
🔵 عنوان مقاله
Keep Postgres Maintenance from Slowing Down Your Go App

🟢 خلاصه مقاله:
جای خود را برای یادگیری روش‌های پیشگیرانه نگهداری تضمین کنید که خطرات پنهان کارایی پایگاه داده،

مانند

پرس و جوهای کند (slow queries)،

رفتار نقطه بازرسی (checkpoint behavior)،

و مسائل اتصال (connection issues)،

را پیش از آنکه تشدید شوند، آشکار می‌سازند.

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


👑 @gopher_academy
👍2
اینجا یه مجموع helper از کامند های کار کرد با فایل go.mod رو براتون گذاشتم 👇👇👇

https://t.me/gopher_academy/3672

https://t.me/gopher_academy/3673


https://t.me/addlist/KpzXaiSpKENkMGM0
👍31
🔵 عنوان مقاله
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