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
در نسخه‌های جدید زبان برنامه‌نویسی Go (Golang)، قابلیت جدیدی برای alias کردن sliceها معرفی شده است که به توسعه‌دهندگان اجازه می‌دهد تا به راحتی از sliceها با نام‌های جدید استفاده کنند. این قابلیت به خصوص با افزایش استفاده از جنریک‌ها (Generics) در Go بسیار مفید است، زیرا باعث بهبود خوانایی و کاهش تکرار کد می‌شود.

---

### ۱. alias کردن sliceها چیست؟
- alias کردن به معنی تعریف یک نام جدید برای یک نوع داده موجود است. این کار به توسعه‌دهندگان اجازه می‌دهد تا از نام‌های کوتاه‌تر یا توصیفی‌تر برای انواع داده‌ای پیچیده استفاده کنند.
- در Go، این قابلیت به‌طور خاص برای sliceها بسیار مفید است، زیرا sliceها یکی از پرکاربردترین انواع داده‌ای در Go هستند.

---

### ۲. چرا alias کردن sliceها مهم است؟
- بهبود خوانایی کد: با استفاده از aliasها، می‌توانید از نام‌های توصیفی‌تر برای sliceها استفاده کنید که باعث خوانایی بیشتر کد می‌شود.
- کاهش تکرار کد: اگر از sliceها با انواع داده‌ای پیچیده استفاده می‌کنید، alias کردن باعث کاهش تکرار کد و ساده‌تر شدن آن می‌شود.
- سازگاری با جنریک‌ها: با معرفی جنریک‌ها در Go، alias کردن sliceها به توسعه‌دهندگان اجازه می‌دهد تا از جنریک‌ها به‌طور موثرتری استفاده کنند.

---

### ۳. نحوه alias کردن sliceها:
در Go، می‌توانید از کلمه کلیدی `type` برای تعریف alias استفاده کنید. در اینجا چند مثال آورده شده است:

#### مثال ۱: alias کردن یک slice ساده
package main

import "fmt"

// تعریف یک alias برای slice از اعداد صحیح
type IntSlice = []int

func main() {
var numbers IntSlice = []int{1, 2, 3, 4, 5}
fmt.Println(numbers) // خروجی: [1 2 3 4 5]
}


#### مثال ۲: alias کردن یک slice با جنریک‌ها
package main

import "fmt"

// تعریف یک alias برای slice از هر نوع داده‌ای با استفاده از جنریک‌ها
type GenericSlice[T any] = []T

func main() {
var numbers GenericSlice[int] = []int{1, 2, 3, 4, 5}
fmt.Println(numbers) // خروجی: [1 2 3 4 5]

var names GenericSlice[string] = []string{"Alice", "Bob", "Charlie"}
fmt.Println(names) // خروجی: [Alice Bob Charlie]
}


#### مثال ۳: alias کردن sliceهای پیچیده
package main

import "fmt"

// تعریف یک alias برای slice از sliceهای اعداد صحیح
type IntSliceSlice = [][]int

func main() {
var matrix IntSliceSlice = [][]int{
{1, 2, 3},
{4, 5, 6},
{7, 8, 9},
}
fmt.Println(matrix) // خروجی: [[1 2 3] [4 5 6] [7 8 9]]
}


---

### ۴. مزایای alias کردن sliceها:
- خوانایی بهتر: با استفاده از aliasها، می‌توانید از نام‌های توصیفی‌تر برای sliceها استفاده کنید که باعث خوانایی بیشتر کد می‌شود.
- کاهش تکرار کد: اگر از sliceها با انواع داده‌ای پیچیده استفاده می‌کنید، alias کردن باعث کاهش تکرار کد و ساده‌تر شدن آن می‌شود.
- سازگاری با جنریک‌ها: alias کردن sliceها به توسعه‌دهندگان اجازه می‌دهد تا از جنریک‌ها به‌طور موثرتری استفاده کنند.

---

### ۵. نتیجه‌گیری:
- alias کردن sliceها یک قابلیت جدید و مفید در Go است که به توسعه‌دهندگان اجازه می‌دهد تا کدهای خوانا‌تر و قابل‌حفظ‌تری بنویسند.
- این قابلیت به خصوص با افزایش استفاده از جنریک‌ها در Go بسیار مفید است، زیرا باعث بهبود خوانایی و کاهش تکرار کد می‌شود.

اگر از Go استفاده می‌کنید، به‌روزرسانی به نسخه‌های جدید را در نظر بگیرید تا از این بهبودها و قابلیت‌های جدید بهره‌مند شوید.


https://t.me/addlist/KpzXaiSpKENkMGM0
👨‍💻4🍾1
در نسخه‌های جدید زبان برنامه‌نویسی Go (Golang)، بهبودهای قابل توجهی در ابزارها (Tooling) انجام شده است. یکی از این بهبودها، معرفی قابلیت جدیدی به نام متا-پترن (Meta-Pattern) است که نصب و استفاده از ابزارهای جانبی مانند `mockgen` را بسیار ساده‌تر و کارآمدتر می‌کند. در اینجا به بررسی این قابلیت و مزایای آن می‌پردازیم:

---

### ۱. متا-پترن (Meta-Pattern) چیست؟
- متا-پترن یک قابلیت جدید در ابزارهای Go است که به توسعه‌دهندگان اجازه می‌دهد تا ابزارهای جانبی (مانند `mockgen`، `protoc`، و غیره) را به‌طور خودکار نصب و مدیریت کنند.
- این قابلیت با استفاده از فایل‌های پیکربندی (مانند `go.work` یا go.mod) کار می‌کند و نیاز به نصب دستی ابزارها را کاهش می‌دهد.

---

### ۲. مزایای متا-پترن:
- ساده‌سازی نصب ابزارها: با استفاده از متا-پترن، می‌توانید ابزارهای مورد نیاز پروژه خود را به‌طور خودکار نصب کنید.
- مدیریت وابستگی‌ها: این قابلیت به شما کمک می‌کند تا وابستگی‌های ابزارها را به‌طور موثرتری مدیریت کنید.
- یکپارچه‌سازی با ابزارهای موجود: متا-پترن با ابزارهای موجود Go (مانند go generate و go mod) به‌طور کامل یکپارچه شده است.

---

### ۳. نحوه استفاده از متا-پترن:
برای استفاده از متا-پترن، می‌توانید از فایل‌های پیکربندی مانند go.work یا go.mod استفاده کنید. در اینجا یک مثال آورده شده است:

#### مثال ۱: استفاده از متا-پترن در go.mod
module example.com/myproject

go 1.20

require (
github.com/golang/mock v1.6.0
)

// تعریف ابزارهای مورد نیاز
toolchain {
mockgen = "github.com/golang/mock/mockgen@v1.6.0"
}


#### مثال ۲: استفاده از متا-پترن در go.work
go 1.20

use (
.
./submodule
)

// تعریف ابزارهای مورد نیاز
toolchain {
mockgen = "github.com/golang/mock/mockgen@v1.6.0"
protoc = "google.golang.org/protobuf/cmd/protoc-gen-go@v1.28.0"
}


---

### ۴. نصب خودکار ابزارها:
با استفاده از متا-پترن، می‌توانید ابزارهای مورد نیاز خود را به‌طور خودکار نصب کنید. برای این کار، کافی است دستور زیر را اجرا کنید:

go install toolchain


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

---

### ۵. استفاده از ابزارها:
پس از نصب ابزارها، می‌توانید از آن‌ها در پروژه خود استفاده کنید. به عنوان مثال، برای استفاده از `mockgen`، کافی است دستور زیر را اجرا کنید:

go generate ./...


این دستور به‌طور خودکار فایل‌های mock را برای پروژه شما ایجاد می‌کند.

---

### ۶. مثال کامل:
در اینجا یک مثال کامل از استفاده از متا-پترن برای نصب و استفاده از `mockgen` آورده شده است:

#### فایل go.mod:
module example.com/myproject

go 1.20

require (
github.com/golang/mock v1.6.0
)

toolchain {
mockgen = "github.com/golang/mock/mockgen@v1.6.0"
}


#### فایل main.go:
package main

import (
"example.com/myproject/mocks"
"testing"
)

func TestSomething(t *testing.T) {
mock := mocks.NewMockMyInterface(t)
mock.On("MyMethod").Return(nil)

// تست خود را اینجا بنویسید
}


#### اجرای دستورات:
# نصب ابزارها
go install toolchain

# ایجاد فایل‌های mock
go generate ./...

# اجرای تست‌ها
go test ./...


---

### ۷. نتیجه‌گیری:
- متا-پترن یک قابلیت جدید و مفید در ابزارهای Go است که نصب و مدیریت ابزارهای جانبی را بسیار ساده‌تر می‌کند.
- این قابلیت به خصوص برای ابزارهایی مانند `mockgen`، `protoc`، و سایر ابزارهای تولید کد بسیار مفید است.
- اگر از Go استفاده می‌کنید، به‌روزرسانی به نسخه‌های جدید را در نظر بگیرید تا از این بهبودها و قابلیت‌های جدید بهره‌مند شوید.

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

https://t.me/addlist/KpzXaiSpKENkMGM0
🍓4🍾1
در نسخه‌های جدید زبان برنامه‌نویسی Go (Golang)، بهبودهای قابل توجهی در ابزارها و قابلیت‌های مرتبط با تست‌ها و احراز هویت (authentication) انجام شده است. در اینجا به دو بهبود مهم اشاره می‌کنیم:

---

### ۱. خروجی JSON برای `go test`:
یکی از بهبودهای مهم در ابزار تست Go، پشتیبانی از خروجی JSON برای نتایج تست‌ها است. این قابلیت تحلیل و گزارش‌گیری از تست‌ها را بسیار ساده‌تر و لذت‌بخش‌تر می‌کند.

#### ویژگی‌های کلیدی:
- خروجی ساختارمند: نتایج تست‌ها به صورت JSON ارائه می‌شوند که باعث می‌شود تحلیل و پردازش آن‌ها به‌طور خودکار ساده‌تر شود.
- سازگاری با ابزارهای گزارش‌گیری: خروجی JSON با ابزارهای گزارش‌گیری و تحلیل تست (مانند CI/CD pipelines) به‌طور کامل سازگار است.
- جزئیات بیشتر: خروجی JSON شامل اطلاعات دقیق‌تری مانند زمان اجرای هر تست، وضعیت (pass/fail)، و پیام‌های خطا است.

#### نحوه استفاده:
برای دریافت خروجی JSON از go test`، می‌توانید از فلگ -json` استفاده کنید:

go test -json ./...


#### مثال خروجی JSON:
{
"Time": "2023-10-01T12:34:56Z",
"Action": "run",
"Package": "example.com/myproject",
"Test": "TestSomething",
"Output": "=== RUN TestSomething\n"
}
{
"Time": "2023-10-01T12:34:57Z",
"Action": "pass",
"Package": "example.com/myproject",
"Test": "TestSomething",
"Elapsed": 0.12
}


#### مزایا:
- تحلیل خودکار: می‌توانید از ابزارهای تحلیل JSON (مانند jq) برای پردازش نتایج تست‌ها استفاده کنید.
- یکپارچه‌سازی با CI/CD: خروجی JSON به راحتی با سیستم‌های CI/CD (مانند GitHub Actions, GitLab CI, Jenkins) یکپارچه می‌شود.
- گزارش‌گیری پیشرفته: می‌توانید گزارش‌های دقیق‌تری از تست‌ها ایجاد کنید و آن‌ها را در داشبوردهای مختلف نمایش دهید.

---

### ۲. GOAUTH: احراز هویت آسان‌تر برای ریپوزیتوری‌های خصوصی:
قابلیت جدید GOAUTH به توسعه‌دهندگان اجازه می‌دهد تا به راحتی به ریپوزیتوری‌های خصوصی (مانند GitHub Private Repositories) متصل شوند. این قابلیت فرآیند احراز هویت را ساده‌تر و امن‌تر می‌کند.

#### ویژگی‌های کلیدی:
- پشتیبانی از چندین ارائه‌دهنده: GOAUTH از ارائه‌دهندگان مختلفی مانند GitHub, GitLab, Bitbucket و غیره پشتیبانی می‌کند.
- مدیریت توکن‌ها: می‌توانید توکن‌های دسترسی (access tokens) را به‌طور امن مدیریت کنید.
- سازگاری با `go get` و `go mod`: GOAUTH به‌طور کامل با ابزارهای مدیریت وابستگی Go (مانند go get و go mod) یکپارچه شده است.

#### نحوه استفاده:
برای استفاده از GOAUTH، کافی است توکن دسترسی خود را در فایل پیکربندی Go قرار دهید. به عنوان مثال:

# تنظیم توکن دسترسی برای GitHub
export GOPRIVATE=github.com/myorg/*
export GOAUTH_TOKEN=ghp_your_github_token_here


#### مثال استفاده با go get:
go get github.com/myorg/private-repo


#### مزایا:
- امنیت بهتر: توکن‌های دسترسی به‌طور امن مدیریت می‌شوند و نیازی به ذخیره آن‌ها در کد نیست.
- ساده‌سازی فرآیند: دیگر نیازی به تنظیمات دستی برای احراز هویت نیست.
- پشتیبانی از چندین ارائه‌دهنده: می‌توانید از GOAUTH برای اتصال به ریپوزیتوری‌های خصوصی در GitHub, GitLab, Bitbucket و غیره استفاده کنید.

---

### ۳. نتیجه‌گیری:
- خروجی JSON برای `go test` تحلیل و گزارش‌گیری از تست‌ها را بسیار ساده‌تر و لذت‌بخش‌تر می‌کند.
- GOAUTH فرآیند احراز هویت برای ریپوزیتوری‌های خصوصی را ساده‌تر و امن‌تر می‌کند.

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


https://t.me/addlist/KpzXaiSpKENkMGM0
👍4🍾2🔥1👨‍💻1
🔵 عنوان مقاله
Go Developer Survey 2024 H2 Results

🟢 خلاصه مقاله:
خلاصه‌ی گزارش جامعه‌ی برنامه‌نویسی Go از نظرسنجی اخیرشان نشان می‌دهد که بیش از 4000 پاسخ از توسعه‌دهندگان تجزیه و تحلیل شده است و نشان دهنده‌ی رضایت زیاد آن‌ها از جهت‌گیری زبان Go است، اما بزرگترین چالش آن‌ها حفظ استانداردهای کدنویسی یکسان است. در زمینه‌ی سیستم‌عامل، Linux و macOS پیشتازند، در حالی که در زمینه‌ی محیط‌های توسعه، VS Code و GoLand محبوب‌ترین‌ها هستند و در بخش ابری، AWS بیشترین استفاده را دارد. همچنین آمارهای جالبی در مورد میزان استفاده توسعه‌دهندگان Go از LLM (مدل‌های زبان بزرگ) ارائه شده است.

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


👑 @gopher_academy
👍3
🔵 عنوان مقاله
Rust vs Go in 2025

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

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


👑 @gopher_academy
👍3
🔵 عنوان مقاله
Build Go Apps using Project IDX and the Gemini API

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

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


👑 @gopher_academy
🔵 عنوان مقاله
Pixel Federation Swaps MSK for WarpStream, Saves 83% on Kafka Costs

🟢 خلاصه مقاله:
در مقاله مورد بررسی، شرکت پیکسل فدریشن، تجربیات خود از جایگزینی AWS MSK با WarpStream را به اشتراک گذاشته است. این اقدام به طور قابل توجهی هزینه‌های مربوط به Kafka را کاهش داده و همچنین پیچیدگی‌های مرتبط با VPC peering را از بین برده است. VPC peering یکی از چالش‌های فنی است که در استفاده از AWS MSK وجود دارد و از طریق این تغییر، پیکسل فدریشن توانسته است عملیات‌های خود را ساده‌سازی کند. استفاده از WarpStream به عنوان یک راهکار جایگزین، به بهبود کارایی و کاهش هزینه‌های عملیاتی کمک کرده، و در نتیجه تأثیر مثبتی بر ROI (بازگشت سرمایه) شرکت داشته است. این تغییر نمونه‌ای بارز از چگونگی بهره‌برداری از فناوری‌های نوین در بهینه‌سازی و افزایش بهره‌وری در محیط‌های کسب‌وکار است.

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


👑 @gopher_academy
🔵 عنوان مقاله
templ: A Way to Build HTML with Go

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

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


👑 @gopher_academy
👍1
🔵 عنوان مقاله
Go Developer Survey 2024 H2 Results

🟢 خلاصه مقاله:
در نتایج جدیدترین نظرسنجی جامعه Go که بر اساس تحلیل بیش از ۴۰۰۰ پاسخ به دست آمده است، توسعه‌دهندگان به طور کلی از جهت‌گیری زبان برنامه‌نویسی Go رضایت دارند. با این حال، این توسعه‌دهندگان اصلی‌ترین چالش را حفظ استانداردهای یکنواخت کدنویسی می‌دانند. در زمینه انتخاب سیستم‌عامل، Linux و macOS پیشتاز هستند، در حالی که VS Code و GoLand به عنوان IDE‌های محبوب، و AWS به عنوان برترین انتخاب در مورد سرویس‌های ابری شناخته شده است. همچنین آمارهای جالبی در مورد سطح استفاده توسعه‌دهندگان Go از مدل‌های LLM (مدل‌های زبانی بزرگ) ارائه شده است.

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


👑 @gopher_academy
👍3
🎯درود دوستان برای تبلیغات توی چنل ما می تونید به ای دی زیر پیام بدید و تعرفه ها رو براتون بفرستیم جهت تبلیغ:

@labdon_ads
👍1🙏1
🔵 عنوان مقاله
How I Program with LLMs

🟢 خلاصه مقاله:
در مقاله‌ای که توسط یکی از بنیان‌گذاران Tailscale نوشته شده است، رویکردهای مدرن نوشتن کد به زبان Go با استفاده از تکنیک‌های مبتنی بر مدل‌های زبان بزرگ (LLM) مورد بررسی قرار گرفته است. نویسنده در مورد توسعه یک محیط جدید برای برنامه‌نویسی به نام 'Go playground' که با توانایی‌های LLM بهبود یافته است، بحث می‌کند. این ابزار جدید به برنامه‌نویسان اجازه می‌دهد تا با روش‌های کارآمدتر و دقیق‌تری کد بنویسند، و به آنها در اجرای سریع‌تر و تست آسان‌تر کد کمک می‌کند. نویسنده تاکید زیادی بر مزایای استفاده از فناوری‌های مدرن و هوش مصنوعی در توسعه نرم‌افزار دارد و انتظار دارد که این تکنولوژی‌ها تأثیر قابل توجهی بر بهبود کیفیت و کارایی کدنویسی در آینده داشته باشند.

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


👑 @gopher_academy
🔵 عنوان مقاله
Memos: A Privacy-First Go-Powered Note Taking App

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

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


👑 @gopher_academy
🔵 عنوان مقاله
Build Go Apps using Project IDX and the Gemini API

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

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


👑 @gopher_academy
هفته نامه Golang Nugget رو اگه دوست داشتید دنبال کنید.
منابع خوبی رو معرفی میکنه
این یه نمونه ش هست

https://golangnugget.com/p/go-concurrency-upgrade-strategies-memory-management-january-6-2024

این خبرنامه رو آقا لیام عزیز مدیریت میکنه
https://x.com/liammanesh


<Hossein Nazari/>


https://t.me/addlist/KpzXaiSpKENkMGM0
👍2
دیزاین پترن Facade در Golang
یکی از دیزاین پترن های جذاب و کاربردی، پترن Facade! شاید اسمش یه کم شیک به نظر بیاد، ولی قول میدم که خیلی کاربردیه و کارمون رو راحت‌تر می‌کنه.

حالا Facade چیه؟
فرض کن جلوی یه ساختمون خیلی شیک و بزرگ وایسادی، ولی لازم نیست بری داخلش و همه اتاقاشو ببینی. فقط کافیه از بیرون، نمای ساده و مرتبش رو ببینی و کارتو راه بندازی. پترن Facade دقیقاً همینه! یه رابط کاربری ساده می‌ده که دیگه لازم نباشه با پیچیدگی‌های سیستم درگیر بشی.

چرا باید ازش استفاده کنیم؟
دو تا اصل مهم دنیای کدنویسی اینجا برامون روشن‌تر می‌شه:
1- همه چی ساده باشه KISS
  2- تکرار نکن DRY

وقتی از Facade استفاده می‌کنی، پیچیدگی‌های پشت پرده سیستم رو قایم می‌کنی و فقط چیزی که کاربر (یا حتی خودت!) نیاز داری رو نشون می‌دی. کدت مرتب‌تر، قابل نگهداری‌تر و قابل‌فهم‌تر می‌شه.

ی مثال ساده: اتصال به دیتابیس
فرض کن می‌خوای به دیتابیس وصل بشی، کوئری بزنی و قطع کنی. بدون Facade و با Facade داخل تصویر هست.

کاربردهای دیگه:
کار با فایل‌ها
ارتباط با API
راه‌اندازی وب‌سرور
مدیریت سفارش‌های فروشگاه آنلاین
و...

این Facade مثل یه شمشیر دولبه‌ست. اگه زیادی ساده‌سازی کنی یا بخوای همه کارها رو تو یه struct و متدهاش بذاری، ممکنه یه ساختار پیچیده (God Object) بسازی که خودش یه مشکل جدیده.

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


<Mohammad Abdorrahmani/>

https://t.me/addlist/KpzXaiSpKENkMGM0
2
🔵 عنوان مقاله
Fuego: A Nest-Inspired API/Web Framework for Go

🟢 خلاصه مقاله:
مقاله‌ای که مورد بررسی قرار گرفته درباره‌ی یک فریم‌ورک برای زبان برنامه‌نویسی Go است که خاصیت مهم آن تولید مستندات OpenAPI مستقیماً از کد برنامه‌نویسی است. این فریم‌ورک که از فریم‌ورک Nest الهام گرفته شده است، به طور خاص برای توسعه‌دهندگان Go طراحی شده است. همچنین، مثالی از یک برنامه ساده Hello World به همراه مستندات کامل ارائه شده است تا نحوه استفاده از این فریم‌ورک را به نمایش بگذارد. در نسخه‌ی اخیر این فریم‌ورک، که نسخه‌ی 0.17 است، پشتیبانی اولیه از روتر Gin افزوده شده‌است تا توانایی‌های آن گسترش یابد و کاربران بتوانند از این فریم‌ورک در محیط‌های مختلف بیشتری استفاده کنند.

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


👑 @gopher_academy
🙏1
🔵 عنوان مقاله
Rust vs Go in 2025

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

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


👑 @gopher_academy
🎯 چندتا پست در مورد ویژگی های جدید گولنگ 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

🔵 https://t.me/gopher_academy/3581

🔵 https://t.me/gopher_academy/3582


https://t.me/addlist/KpzXaiSpKENkMGM0
🙏1🍾1
Forwarded from Gopher Job
این سایت داده‌های خوبی در مورد حقوق توی شرکت‌های اروپایی توی کشورهای مختلف رو داره که میتونید ازش برای کاریابی استفاده کنید.

https://techpays.eu


https://t.me/addlist/KpzXaiSpKENkMGM0
👍2