Gopher Academy
3.87K subscribers
927 photos
40 videos
280 files
2.09K links
🕸 Gopher Academy

🔷interview golang
https://github.com/mrbardia72/Go-Interview-Questions-And-Answers

حمایت مالی:
https://www.coffeete.ir/mrbardia72

ادمین:
@mrbardia72
Download Telegram
در زیر بنچمارکی داریم درخصوص تعداد شرط های زیاد استفاده از switch یا else if به نظرتان کدام انتخاب مناسبی هست؟

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
👍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
👍4
♻️Postgres Weekly Issue 532:

♻️November 29, 2023

https://postgresweekly.com/issues/532


🕊 @gopher_academy | @GolangEngineers
👍4
Kubernets => k8s 😉

🕊 @gopher_academy | @GolangEngineers
👍6
Forwarded from Gopher Academy (Javad)
دورهمی هفته دوازدهم (یادآوری - اطلاعات ورود میتینگ)

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


- موضوع: 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
👍4🍾3
4
خیلی ها به سیستم عامل های کاستوم دید منفی دارن که خب درست هم هست؛ ویدویی تو يوتيوب دیدم که روال کار ساخت سیستم عامل کاستوم رو بهتون آموزش میده و برای خیلی ها میتونه مفید واقع بشه.

https://youtu.be/tSs-jkVRcXM?si=-zo-NQxhR2aBMqc7

#DevTwitter | <Nima Nikjoo/>


🕊 @gopher_academy | @GolangEngineers
👍2🕊21🍾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
🔥9👍1

🕊 @gopher_academy | @GolangEngineers
😁29👍2
اگه میخواید بدونید شرکت های بزرگ چه مشکلاتیو با Go حل کردن و داستان استفادشون از گولنگ چی بوده این لینک رو ببینید، خیلی جذابه بنظرم

https://go.dev/solutions/case-studies

#DevTwitter | <Reza/>

🕊 @gopher_academy | @GolangEngineers
👍10🍾5🕊21🔥1

🕊 @gopher_academy | @GolangEngineers
🔥9👍4🕊2
اوه مای زیشل نه فقط ترمینال شما رو قشنگتر می‌کنه که فرصتی هم هست برای کلی یادگیری جدید. بیاین با هم ببینیم چیکار می کنه و این وسط ترمینالمون رو هم قشنگتر کنیم.

https://youtu.be/5lK4ihsXAX8

#جادی

🕊 @gopher_academy | @GolangEngineers
👍81
Nginx playground

https://nginx-playground.wizardzines.com/


🕊 @gopher_academy | @GolangEngineers
🔥72👍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
👍3🍾21
Top 10 programming language on github

🕊 @gopher_academy | @GolangEngineers
👍9🎉2💊2