در زیر بنچمارکی داریم درخصوص تعداد شرط های زیاد استفاده از switch یا else if به نظرتان کدام انتخاب مناسبی هست؟
نتیجه بنچمارک:
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
package switch_if
import (
"github.com/brianvoe/gofakeit/v6"
"testing"
)
var providers = []string{"Google", "Microsoft", "Apple", "GitHub", "Twitter", "Twitch", "Facebook"}
type ProviderEmail struct {
Google string
Microsoft string
Apple string
GitHub string
Twitter string
Twitch string
Facebook string
}
func BenchmarkSwitch(b *testing.B) {
b.ReportAllocs()
b.ResetTimer()
for i := 0; i < b.N; i++ {
provider := generateRandomProviderEmail()
switch {
case len(provider.GitHub) != 0:
_ = "GitHub"
case len(provider.Google) != 0:
_ = "Google"
case len(provider.Microsoft) != 0:
_ = "Microsoft"
case len(provider.Apple) != 0:
_ = "Apple"
case len(provider.Twitter) != 0:
_ = "Twitter"
case len(provider.Twitch) != 0:
_ = "Twitch"
case len(provider.Facebook) != 0:
_ = "Facebook"
}
}
}
func BenchmarkIfElse(b *testing.B) {
b.ReportAllocs()
b.ResetTimer()
for i := 0; i < b.N; i++ {
provider := generateRandomProviderEmail()
if len(provider.GitHub) != 0 {
_ = "GitHub"
} else if len(provider.Google) != 0 {
_ = "Google"
} else if len(provider.Microsoft) != 0 {
_ = "Microsoft"
} else if len(provider.Apple) != 0 {
_ = "Apple"
} else if len(provider.Twitter) != 0 {
_ = "Twitter"
} else if len(provider.Twitch) != 0 {
_ = "Twitch"
} else if len(provider.Facebook) != 0 {
_ = "Facebook"
}
}
}
func generateRandomProviderEmail() *ProviderEmail {
randomProvider := &ProviderEmail{}
randomProvider.setRandomField()
return randomProvider
}
func (p *ProviderEmail) setRandomField() {
randomField := gofakeit.RandomString(providers)
randomEmail := gofakeit.Email()
switch randomField {
case "Google":
p.Google = randomEmail
case "Microsoft":
p.Microsoft = randomEmail
case "Apple":
p.Apple = randomEmail
case "GitHub":
p.GitHub = randomEmail
case "Twitter":
p.Twitter = randomEmail
case "Twitch":
p.Twitch = randomEmail
case "Facebook":
p.Facebook = randomEmail
}
}
نتیجه بنچمارک:
goos: linux
goarch: amd64
pkg: switch-if
cpu: AMD Ryzen 7 5700U with Radeon Graphics
BenchmarkSwitch
BenchmarkSwitch-16 2169474 559.9 ns/op 88 B/op 4 allocs/op
BenchmarkIfElse
BenchmarkIfElse-16 2134839 556.0 ns/op 88 B/op 4 allocs/op
PASS
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
👍6🔥1🎉1🐳1🍾1
♻️How to Observe Your CI/CD Pipelines with OpenTelemetry
https://thenewstack.io/how-to-observe-your-ci-cd-pipelines-with-opentelemetry/
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
https://thenewstack.io/how-to-observe-your-ci-cd-pipelines-with-opentelemetry/
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
👍3🔥1
🌷Go Fact: Zero-sized Field at the Rear of a Struct Has Non-zero Size
https://i.hsfzxjy.site/zst-at-the-rear-of-go-struct/
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
https://i.hsfzxjy.site/zst-at-the-rear-of-go-struct/
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
👍4
♻️Postgres Weekly Issue 532:
♻️November 29, 2023
https://postgresweekly.com/issues/532
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
♻️November 29, 2023
https://postgresweekly.com/issues/532
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
👍4
Forwarded from Gopher Academy (Javad)
✅ دورهمی هفته دوازدهم (یادآوری - اطلاعات ورود میتینگ)
این هفته بصورت مقدماتی به موضوع کریپتوگرافی کلید عمومی می پردازیم که یکی از اساسی ترین موضوع دنیای رمزنگاری و بلاکچین هست.
- موضوع: An introduction to the public-key cryptography
- تاریخ و ساعت: ۹ آذر ساعت ۷ شب
- اسپانسر: GoBridge
- ارائه دهنده: مهندس مصطفی صداقت جو (توسعه دهنده و Maintainer پروژه بلاکچین Pactus )
- محل برگزاری: پلت فرم zoom و گوگل میت
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
این هفته بصورت مقدماتی به موضوع کریپتوگرافی کلید عمومی می پردازیم که یکی از اساسی ترین موضوع دنیای رمزنگاری و بلاکچین هست.
- موضوع: An introduction to the public-key cryptography
- تاریخ و ساعت: ۹ آذر ساعت ۷ شب
- اسپانسر: GoBridge
- ارائه دهنده: مهندس مصطفی صداقت جو (توسعه دهنده و Maintainer پروژه بلاکچین Pactus )
- محل برگزاری: پلت فرم zoom و گوگل میت
اطلاعات ورود به میتینگ
۱. از طریق گوگل میتینگ: https://meet.google.com/axn-cwds-xqn
۲. از طریق zoom :
- لینک ورود: https://us02web.zoom.us/j/86712676395?pwd=NXNxRlZ4dnNETXF3RXBTWXM4UXYrZz09
- شناسه و رمز: 86712676395 - 944574
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
❤3🔥1🍾1
Gopher Academy
✅ دورهمی هفته دوازدهم (یادآوری - اطلاعات ورود میتینگ) این هفته بصورت مقدماتی به موضوع کریپتوگرافی کلید عمومی می پردازیم که یکی از اساسی ترین موضوع دنیای رمزنگاری و بلاکچین هست. - موضوع: An introduction to the public-key cryptography - تاریخ و ساعت: ۹ آذر…
دوستان دورهمی ۲۰ دقیقه دیگر شروع می شود و از طریق لینک ها و اطلاعات زیر می توانید وارد شوید:
اطلاعات ورود به میتینگ
۱. از طریق گوگل میتینگ: https://meet.google.com/axn-cwds-xqn
۲. از طریق zoom :
- لینک ورود: https://us02web.zoom.us/j/86712676395?pwd=NXNxRlZ4dnNETXF3RXBTWXM4UXYrZz09
- شناسه و رمز: 86712676395 - 944574
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
اطلاعات ورود به میتینگ
۱. از طریق گوگل میتینگ: https://meet.google.com/axn-cwds-xqn
۲. از طریق zoom :
- لینک ورود: https://us02web.zoom.us/j/86712676395?pwd=NXNxRlZ4dnNETXF3RXBTWXM4UXYrZz09
- شناسه و رمز: 86712676395 - 944574
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
👍4🍾3
TDD is Kanban for Code
https://tidyfirst.substack.com/p/tdd-is-kanban-for-code
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
https://tidyfirst.substack.com/p/tdd-is-kanban-for-code
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
❤4
خیلی ها به سیستم عامل های کاستوم دید منفی دارن که خب درست هم هست؛ ویدویی تو يوتيوب دیدم که روال کار ساخت سیستم عامل کاستوم رو بهتون آموزش میده و برای خیلی ها میتونه مفید واقع بشه.
https://youtu.be/tSs-jkVRcXM?si=-zo-NQxhR2aBMqc7
#DevTwitter | <Nima Nikjoo/>
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
https://youtu.be/tSs-jkVRcXM?si=-zo-NQxhR2aBMqc7
#DevTwitter | <Nima Nikjoo/>
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
👍2🕊2❤1🍾1
Understanding_Cryptography.pdf
4.7 MB
✅ دورهمی هفته دوازدهم مهندسین گولنگ (ویدئو)
موضوع: An introduction to the public-key cryptography
مهندس مصطفی صداقت جو بصورت مقدماتی به موضوع کریپتوگرافی کلید عمومی پرداخت که یکی از اساسی ترین موضوع دنیای رمزنگاری و بلاکچین هست.
🔗 لینک ویدئو در یوتیوب: https://www.youtube.com/watch?v=2qKS0eyuNiQ
☑️ پروژه پکتوس: https://pactus.org
مقاله: https://andrea.corbellini.name/2015/05/17/elliptic-curve-cryptography-a-gentle-introduction/#algebraic-addition
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
موضوع: An introduction to the public-key cryptography
مهندس مصطفی صداقت جو بصورت مقدماتی به موضوع کریپتوگرافی کلید عمومی پرداخت که یکی از اساسی ترین موضوع دنیای رمزنگاری و بلاکچین هست.
🔗 لینک ویدئو در یوتیوب: https://www.youtube.com/watch?v=2qKS0eyuNiQ
☑️ پروژه پکتوس: https://pactus.org
مقاله: https://andrea.corbellini.name/2015/05/17/elliptic-curve-cryptography-a-gentle-introduction/#algebraic-addition
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
🔥9👍1
اگه میخواید بدونید شرکت های بزرگ چه مشکلاتیو با Go حل کردن و داستان استفادشون از گولنگ چی بوده این لینک رو ببینید، خیلی جذابه بنظرم
https://go.dev/solutions/case-studies
#DevTwitter | <Reza/>
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
https://go.dev/solutions/case-studies
#DevTwitter | <Reza/>
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
👍10🍾5🕊2❤1🔥1
اوه مای زیشل نه فقط ترمینال شما رو قشنگتر میکنه که فرصتی هم هست برای کلی یادگیری جدید. بیاین با هم ببینیم چیکار می کنه و این وسط ترمینالمون رو هم قشنگتر کنیم.
https://youtu.be/5lK4ihsXAX8
#جادی
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
https://youtu.be/5lK4ihsXAX8
#جادی
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
👍8❤1
Nginx playground
https://nginx-playground.wizardzines.com/
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
https://nginx-playground.wizardzines.com/
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
🔥7❤2👍2🍾2
اکستنشن کروم ChatGPT RTL Support پابلیش شد
ساده؛ سبک؛ کاربردی و بدون واترمارک روی صفحه و همچنین اوپن سورس
لینک کروم استور:
https://chrome.google.com/webstore/detail/chatgpt-rtl-support/ljfnhokapbmbchbfpgdkedekmfeodoie
لینک گیت هاب:
https://github.com/rastegardev/ChatGPT-RTL-Support
#DevTwitter | <Reza Rastegar/>
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
ساده؛ سبک؛ کاربردی و بدون واترمارک روی صفحه و همچنین اوپن سورس
لینک کروم استور:
https://chrome.google.com/webstore/detail/chatgpt-rtl-support/ljfnhokapbmbchbfpgdkedekmfeodoie
لینک گیت هاب:
https://github.com/rastegardev/ChatGPT-RTL-Support
#DevTwitter | <Reza Rastegar/>
➖➖➖➖➖➖➖➖
🕊 @gopher_academy | @GolangEngineers
👍3🍾2❤1