Forwarded from Golang
📘 "Go 101" популярная серия бесплатных книг обновлена под новую версию Golang 1.25 — сразу в четырёх разделах:
• 🚀 Go Optimizations 101: https://go101.org/optimizations/101.html
• 💡 Go Details & Tips 101: https://go101.org/details-and-tips/101.html
• 🔧 Go Generics 101: https://go101.org/generics/101.html
• 📖 Go 101: https://go101.org/article/101.html
@golang_google
#golang #freebook #education #book #go
• 🚀 Go Optimizations 101: https://go101.org/optimizations/101.html
• 💡 Go Details & Tips 101: https://go101.org/details-and-tips/101.html
• 🔧 Go Generics 101: https://go101.org/generics/101.html
• 📖 Go 101: https://go101.org/article/101.html
@golang_google
#golang #freebook #education #book #go
❤12👍9🔥3🥰1
Forwarded from Golang
💥 Необычное поведение структур
В недавнем блоге Мэтта Холла поднята важная деталь, о которой некоторые забывают.
Автор показывает, что при встраивании (`embedding`) структур Go может выбрать неочевидное поле, даже если кажется, что это вызовет ошибку.
Пример:
Вы думаете, тут компиляция не пройдёт из-за неоднозначности?
Но, она завершится успешна — и начпечатает abc.com.
Go выбирает наименее вложенное поле URL, в данном случае FooService.URL.
⚠ Урок: будьте осторожны с struct embedding! Переиспользование полей может скрывать баги, особенно когда поля именованы одинаково, а уровни вложенности различны.
📌 Пост
@golang_google
#golang #go
В недавнем блоге Мэтта Холла поднята важная деталь, о которой некоторые забывают.
Автор показывает, что при встраивании (`embedding`) структур Go может выбрать неочевидное поле, даже если кажется, что это вызовет ошибку.
Пример:
type FooService struct { URL string }
type BarConnectionOptions struct { URL string }
type BarService struct { BarConnectionOptions }
type Options struct {
FooService
BarService
}
opts := Options{
FooService: FooService{URL: "abc.com"},
BarService: BarService{
BarConnectionOptions: BarConnectionOptions{URL: "xyz.com"},
},
}
fmt.Println(opts.URL)
Вы думаете, тут компиляция не пройдёт из-за неоднозначности?
Но, она завершится успешна — и начпечатает abc.com.
Go выбирает наименее вложенное поле URL, в данном случае FooService.URL.
⚠ Урок: будьте осторожны с struct embedding! Переиспользование полей может скрывать баги, особенно когда поля именованы одинаково, а уровни вложенности различны.
📌 Пост
@golang_google
#golang #go
👍11😁4❤3
Описание:
Эта книга написана опытным разработчиком и экспертом по машинному обучению и содержит практические рекомендации, основанные на реальном опыте. Прочитав эту книгу, вы получите знания и инструменты для создания надежных и производительных моделей без ущерба для ясности и удобства обслуживания.
Книга
#eng #Go
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍7🔥1
📊 Высокопроизводительная библиотека логирования для Go 🚀
mtlog — это библиотека структурированного логирования для Go, вдохновленная Serilog. Она обеспечивает нулевые аллокации для простых операций логирования и поддерживает мощные функции для сложных сценариев, включая шаблоны сообщений и совместимость с OpenTelemetry.
🚀Основные моменты:
- Нулевые аллокации для простых сообщений
- Поддержка шаблонов сообщений и Go синтаксиса
- Интеграция с Kubernetes и OpenTelemetry
- Многофреймворковая поддержка для HTTP
- Расширенные стратегии выборки и маршрутизации логов
📌 GitHub: https://github.com/willibrandon/mtlog
#go
mtlog — это библиотека структурированного логирования для Go, вдохновленная Serilog. Она обеспечивает нулевые аллокации для простых операций логирования и поддерживает мощные функции для сложных сценариев, включая шаблоны сообщений и совместимость с OpenTelemetry.
🚀Основные моменты:
- Нулевые аллокации для простых сообщений
- Поддержка шаблонов сообщений и Go синтаксиса
- Интеграция с Kubernetes и OpenTelemetry
- Многофреймворковая поддержка для HTTP
- Расширенные стратегии выборки и маршрутизации логов
📌 GitHub: https://github.com/willibrandon/mtlog
#go
GitHub
GitHub - willibrandon/mtlog: Serilog-inspired structured logging for Go with message templates, rich formatting, and native Seq…
Serilog-inspired structured logging for Go with message templates, rich formatting, and native Seq support - willibrandon/mtlog
❤7👍6🔥2