Golang
211 subscribers
12 photos
14 files
149 links
آموزش زبان برنامه نویسی گولنگ
منابع و مراجع یادگیری
موقعیت‌های شغلی

Admin: @Mahdihp88
Channel Link: https://t.iss.one/golangfa
Download Telegram
Forwarded from Mahdi Hosseinpour
generic_repositories.go
6.3 KB
پیاده سازی Generic Repository pattern

func IsDateTime(input string) bool {
_, err := time.Parse(Time_Format, input)
if err != nil {
//fmt.Println(err)
return false
}
return true
}
👎5👍3
📱 گفتگوی لایو امشب: چرا زبون گولنگ یهو اینقدر محبوب شد؟ همه چیز درباره‌ی گو

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

در مورد اینا توی لایو امشب با هم صحبت می‌کنیم. اگه سوالی دارید یا می‌خواید با بقیه تجربیاتتون رو به اشتراک بذارید حتما شرکت کنید

راستی لایو امشب، برعکس لایو‌های قبلی، توی ربات ضبط میشه و بعدا هم می‌تونید گوشش کنید (اگه کدام باک نخوره البته)

لینک لایو: 🚀

https://t.iss.one/xHallBot/meeting?startapp=join-myFW08NHg

ساعت شروع: ۷ شب جمعه
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from کدنیوز | CodeNews
👩‍💻 8 نکته پرفومنسی در گولنگ (Golang)

⚡️در این مقاله با ۸ نکته کلیدی برای بهبود عملکرد برنامه‌های نوشته‌شده با زبان گولنگ آشنا می‌شویم. گولنگ به‌صورت پیش‌فرض زبانی سریع و بهینه است، اما با رعایت برخی نکات و الگوهای حرفه‌ای می‌توان سرعت اجرای برنامه، مصرف حافظه، و کارایی کلی را به سطح بالاتری رساند.


نویسنده: میلاد خسروی

#کد_نیوز #کدنیوز #CodeNews #code_news
#گو #گولنگ #golang #go #performance

🌐 https://code-news.com/p/8-performance-tips-in-golang

💬💬💬💬💬
📱 CodeNews
📱 CodeNews
📱 CodeNews
📱 CodeNews
📱 CodeNews
👨‍💻 CodeNews
Please open Telegram to view this post
VIEW IN TELEGRAM
🔴قابلیت sync.WaitGroup ویژگی های جدید گولنگ نسخه 1.25

در نسخه Go 1.25**، یک متد جدید به `sync.WaitGroup` اضافه شده به نام Go()** که هدفش ساده‌سازی اجرای goroutineها همراه با شمارنده‌ی WaitGroup است.

🧠 چرا WaitGroup.Go() اضافه شده؟

در نسخه‌های قبلی برای اجرای goroutine همراه با شمارنده WaitGroup`، باید دستی `Add() و Done() را بنویسید:

روش قدیمی:

var wg sync.WaitGroup
wg.Add(1)
go func() {
defer wg.Done()
doWork()
}()


اگر Add یا Done را فراموش می‌کردی یا ترتیبش اشتباه بود، ممکن بود برنامه بن‌بست (deadlock) بشه یا goroutineها نشمارده بشن.

---

روش جدید: wg.Go(fn)

در Go 1.25، این الگو ساده شده:

var wg sync.WaitGroup
wg.Go(func() {
doWork()
})


هم‌زمان Add(1) انجام می‌شه و داخل goroutine به‌طور خودکار Done() صدا زده می‌شه—دیگه لازم نیست دستی چیزی بنویسی.


مثال کامل

package main

import (
"fmt"
"sync"
)

func main() {
var wg sync.WaitGroup

for i := 0; i < 3; i++ {
i := i // capture variable
wg.Go(func() {
fmt.Println("working on task", i)
})
}

wg.Wait()
fmt.Println("All tasks done.")
}


خروجی ممکن:

working on task 0
working on task 1
working on task 2
All tasks done.



📌 مزایای Go()

| مزیت | توضیح |
| -------------------------------------- | ---------------------------- |
| کد تمیزتر | نیازی به Add و Done نیست |
| 🧠 جلوگیری از خطاهای رایج | مثل فراموشی Done() |
| 🧵 مناسب برای patternهای goroutine سبک | موازی‌سازی سریع و امن |

---

⚠️ نکته مهم

* Go() فقط از Go 1.25 در دسترس است.
* برای استفاده از آن، باید مطمئن باشید که پروژه‌تان با Go 1.25 یا بالاتر کامپایل می‌شود.
* این متد دقیقاً مثل go func(){...}() عمل می‌کند، فقط با مدیریت داخلی Add و Done.

https://t.iss.one/gopher_academy
#learn