Gopher Academy
🎯Go cheatsheet Concurrency🎯 🔰Goroutines 🔰Buffered channels 🔰Closing channels 🔰WaitGroup ❌coming soon.... ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
🎯Goroutines🎯
👇sample code👇
func main() {
// A "channel"
ch := make(chan string)
// Start concurrent routines
go push("gilan", ch)
go push("langroud", ch)
// Read 2 results
fmt.Println(<-ch, <-ch)
}
//call function
func push(name string, ch chan string) {
msg := "Hey, " + name
ch <- msg
}
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
👇sample code👇
func main() {
// A "channel"
ch := make(chan string)
// Start concurrent routines
go push("gilan", ch)
go push("langroud", ch)
// Read 2 results
fmt.Println(<-ch, <-ch)
}
//call function
func push(name string, ch chan string) {
msg := "Hey, " + name
ch <- msg
}
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❤2
Gopher Academy
🎯Go cheatsheet Concurrency🎯 🔰Goroutines 🔰Buffered channels 🔰Closing channels 🔰WaitGroup ❌coming soon.... ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
🎯Buffered channels🎯
👇sample code no error👇
ch := make(chan int, 2)
ch <- 1
ch <- 2
fmt.Println(<-ch,<-ch)
👇sample code yes error👇
ch := make(chan int, 2)
ch <- 1
ch <- 2
ch <- 3
fmt.Println(<-ch,<-ch)
❌
// fatal error:
// all goroutines are asleep - deadlock!
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
👇sample code no error👇
ch := make(chan int, 2)
ch <- 1
ch <- 2
fmt.Println(<-ch,<-ch)
👇sample code yes error👇
ch := make(chan int, 2)
ch <- 1
ch <- 2
ch <- 3
fmt.Println(<-ch,<-ch)
❌
// fatal error:
// all goroutines are asleep - deadlock!
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❤1
Gopher Academy
🎯Go cheatsheet Concurrency🎯 🔰Goroutines 🔰Buffered channels 🔰Closing channels 🔰WaitGroup ❌coming soon.... ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
🎯Closing channels🎯
🔰Closes a channel
ch <- 1
ch <- 2
ch <- 3
close(ch)
🔰Iterates across a channel until its closed
for i := range ch { ··· }
🔰Closed if ok == false
v, ok := <- ch
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔰Closes a channel
ch <- 1
ch <- 2
ch <- 3
close(ch)
🔰Iterates across a channel until its closed
for i := range ch { ··· }
🔰Closed if ok == false
v, ok := <- ch
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❤1
Gopher Academy
🎯Go cheatsheet Concurrency🎯 🔰Goroutines 🔰Buffered channels 🔰Closing channels 🔰WaitGroup ❌coming soon.... ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
🎯WaitGroup🎯
import "sync"
func main() {
var wg sync.WaitGroup
for _, item := range itemList {
// Increment WaitGroup Counter
wg.Add(1)
go doOperation(item)
}
// Wait for goroutines to finish wg.Wait()
}
func doOperation(item string) {
defer wg.Done()
// do operation on item
// ...
}
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
import "sync"
func main() {
var wg sync.WaitGroup
for _, item := range itemList {
// Increment WaitGroup Counter
wg.Add(1)
go doOperation(item)
}
// Wait for goroutines to finish wg.Wait()
}
func doOperation(item string) {
defer wg.Done()
// do operation on item
// ...
}
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❤1
Media is too big
VIEW IN TELEGRAM
🔺software talks 🔺
🎯
⏰سهشنبه ۲ مهر ۹۸
📌درباره زبان برنامهنویسی گو صحبت میکنیم.
مهمانان ما آقایان
علی اصلروستا و محمود اسکندری هستند
🎯
🔰golang🔰
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🎯
⏰سهشنبه ۲ مهر ۹۸
📌درباره زبان برنامهنویسی گو صحبت میکنیم.
مهمانان ما آقایان
علی اصلروستا و محمود اسکندری هستند
🎯
🔰golang🔰
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🤣1
✅لیستی از کنفرانس های گولنگ✅
👇👇👇👇
https://github.com/golang/go/wiki/Conferences
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
👇👇👇👇
https://github.com/golang/go/wiki/Conferences
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
👍1
🎯معرفی و سازکار وب سرور Caddy🎯
📌معرفی وب سرور Caddy
📌تاریخچه
📌مزایا و امکانات Caddy Webserver
📌لایسنس Caddy Webserver
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
📌معرفی وب سرور Caddy
📌تاریخچه
📌مزایا و امکانات Caddy Webserver
📌لایسنس Caddy Webserver
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
👍2👎1
Gopher Academy
🎯معرفی و سازکار وب سرور Caddy🎯 📌معرفی وب سرور Caddy 📌تاریخچه 📌مزایا و امکانات Caddy Webserver 📌لایسنس Caddy Webserver ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
🎯معرفی وب سرور Caddy🎯
در واقع Caddy که در دنیای اینترنت آن را Caddy Webserver میشناسند یک وب سرور متن باز است که به صورت پیشفرض HTTP/2 را پشتیبانی کرده و در محیط Go کدنویسی شده است و از کتابخانههای پیش فرض Go بهره برده است.➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
در واقع Caddy که در دنیای اینترنت آن را Caddy Webserver میشناسند یک وب سرور متن باز است که به صورت پیشفرض HTTP/2 را پشتیبانی کرده و در محیط Go کدنویسی شده است و از کتابخانههای پیش فرض Go بهره برده است.➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔥1
Gopher Academy
🎯معرفی و سازکار وب سرور Caddy🎯 📌معرفی وب سرور Caddy 📌تاریخچه 📌مزایا و امکانات Caddy Webserver 📌لایسنس Caddy Webserver ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
🎯تاریخچه🎯
این وب سرور که در سال 2015 عرضه شد ، یک سال کدنویسی آن به طول انجامید و فردی با نام Matt Holt شروع به توسعه آن کرد. Caddy که به لطف استفاده از کتابخانههای Go قابلیت نصب بر روی ویندوز ، لینوکس ، اندروید و ... را دارد ، به صورت پیش فرض از زبان HTTP پشتیبانی کرده و هیچ نیازی به تنظیم برای سرویس دهی اولیه نخواهد داشت.
در واقع Caddy در ابتدای عرضه مورد استقبال افراد زیادی در سطح جهان قرار گرفت و تا بدین لحظه که 2 سال از عمر آن گذشته است ، بیش از 20000 بار دانلود و نصب شده و توانسته نظر کاربران را به خود جلب کند ، تا جایی که تا به حال 4500 ستاره در GitHub کاربران برای آن ثبت کردهاند.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
این وب سرور که در سال 2015 عرضه شد ، یک سال کدنویسی آن به طول انجامید و فردی با نام Matt Holt شروع به توسعه آن کرد. Caddy که به لطف استفاده از کتابخانههای Go قابلیت نصب بر روی ویندوز ، لینوکس ، اندروید و ... را دارد ، به صورت پیش فرض از زبان HTTP پشتیبانی کرده و هیچ نیازی به تنظیم برای سرویس دهی اولیه نخواهد داشت.
در واقع Caddy در ابتدای عرضه مورد استقبال افراد زیادی در سطح جهان قرار گرفت و تا بدین لحظه که 2 سال از عمر آن گذشته است ، بیش از 20000 بار دانلود و نصب شده و توانسته نظر کاربران را به خود جلب کند ، تا جایی که تا به حال 4500 ستاره در GitHub کاربران برای آن ثبت کردهاند.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🎯معرفی و سازکار وب سرور Caddy🎯 📌معرفی وب سرور Caddy 📌تاریخچه 📌مزایا و امکانات Caddy Webserver 📌لایسنس Caddy Webserver ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
🎯 لایسنس Caddy Webserver🎯
این شرکت در سه حالت مختلف لایسنس خود را ارائه داده است.
🔰لایسنس Personal: این لایسنس به صورت رایگان در اختیار افراد قرار گرفته و برای سرویسدهی از آن میتوان استفاده کرد.
🔰لایسنس Small-Scale Commercial: این لایسنس با هزینه 25 دلار در ماه به ازای هر Instance ارائه شده و دارای پشتیبانی در حد معمول خواهد بود.
🔰لایسنس Large-Scale commercial: هزینه این لایسنس با توجه به وب سرورها و وب سایتها بررسی شده و اعلام میگردد ، و از پشتیبانی کامل و همچنین دارای امکانات سازمانی خاصی میباشد.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
این شرکت در سه حالت مختلف لایسنس خود را ارائه داده است.
🔰لایسنس Personal: این لایسنس به صورت رایگان در اختیار افراد قرار گرفته و برای سرویسدهی از آن میتوان استفاده کرد.
🔰لایسنس Small-Scale Commercial: این لایسنس با هزینه 25 دلار در ماه به ازای هر Instance ارائه شده و دارای پشتیبانی در حد معمول خواهد بود.
🔰لایسنس Large-Scale commercial: هزینه این لایسنس با توجه به وب سرورها و وب سایتها بررسی شده و اعلام میگردد ، و از پشتیبانی کامل و همچنین دارای امکانات سازمانی خاصی میباشد.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🎯معرفی و سازکار وب سرور Caddy🎯 📌معرفی وب سرور Caddy 📌تاریخچه 📌مزایا و امکانات Caddy Webserver 📌لایسنس Caddy Webserver ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
🎯از مزایایی که شما در هنگام استفاده از وب سرور Caddy برخوردار خواهید بود ، می توان به موارد زیر اشاره کرد.🎯
🔰پشتیبانی از HTTP/1.1 و پشتیبانی پیش فرض از HTTP/2
🔰اختصاص گواهینامه امنیتی به وی سایتها
🔰پشتیبانی از TLS 1.2 و قبلتر از آن
🔰دVirtual hosting بر روی یک پورت
🔰سرویس دهی فایلهای استاتیک
🔰پشتیبانی از IPv4 و IPv6
🔰ریستارت و ریلود سریع وب سرور
🔰پشتیبانی از reverse Proxy
🔰دLoad balancing و تست سلامت به صورت مداوم
🔰پشتیبانی از FastCGI Proxy
🔰پشتیبانی از Gzip
🔰ریدایرکت کامل با متدهای مختلف
🔰جستجو فایل
🔰و ده ها مزایا و امکانات دیگر
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔰پشتیبانی از HTTP/1.1 و پشتیبانی پیش فرض از HTTP/2
🔰اختصاص گواهینامه امنیتی به وی سایتها
🔰پشتیبانی از TLS 1.2 و قبلتر از آن
🔰دVirtual hosting بر روی یک پورت
🔰سرویس دهی فایلهای استاتیک
🔰پشتیبانی از IPv4 و IPv6
🔰ریستارت و ریلود سریع وب سرور
🔰پشتیبانی از reverse Proxy
🔰دLoad balancing و تست سلامت به صورت مداوم
🔰پشتیبانی از FastCGI Proxy
🔰پشتیبانی از Gzip
🔰ریدایرکت کامل با متدهای مختلف
🔰جستجو فایل
🔰و ده ها مزایا و امکانات دیگر
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Media is too big
VIEW IN TELEGRAM
🎯مختصری درباره Go Modules معرفی و یکم تاریخچه🎯
🔰حتما نگاه کنید در مورد مدیریت پکیج هاست
🔰از سیر تا پیاز 😜
🔰زبان فارسی
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔰حتما نگاه کنید در مورد مدیریت پکیج هاست
🔰از سیر تا پیاز 😜
🔰زبان فارسی
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🎯پروژه هایی که با گو انجام شده است 🎯
https://github.com/golang/go/wiki/Projects
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
https://github.com/golang/go/wiki/Projects
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
👇نحوه تست grpc👇
📍کد روی گیت هاب بنده هست می تونید ببینید
📍به زودی براش یه ویدیو رکورد می کنم
📍اگه سوالی بود بهم پیام بدید
https://github.com/mrbardia72/unit-testing-gRPC
.
.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
📍کد روی گیت هاب بنده هست می تونید ببینید
📍به زودی براش یه ویدیو رکورد می کنم
📍اگه سوالی بود بهم پیام بدید
https://github.com/mrbardia72/unit-testing-gRPC
.
.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
👇اینم یه makefile واسه راه اندازی سریع پروژه های گولتگ مخصوص api نویسی👇
📍کد روی گیت هاب بنده هست می تونید ببینید و استفاده کنید
📍نحوه کارکردش توی گیت هابم توضیح دادم
https://github.com/mrbardia72/makefile-golang
.
.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
📍کد روی گیت هاب بنده هست می تونید ببینید و استفاده کنید
📍نحوه کارکردش توی گیت هابم توضیح دادم
https://github.com/mrbardia72/makefile-golang
.
.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy