TGViewer
Channel Public Channel
Go for Devs

Go for Devs

@go_for_devs

По сотрудничеству пишите в личные сообщения канала.
Subscribers
852
Photos
62
Videos
17
Links
76

Showing posts older than #11 · Back to latest

Older Posts 8 shown
Post #10 325
⏳ Как проверить время и асинхронный код в Go?

Команда Go for Devs подготовила перевод статьи о пакете synctest, который с Go 1.25 стал частью стандартной библиотеки.

Он позволяет писать быстрые и надёжные тесты для конкурентного кода, не усложняя сам код. Теперь асинхронные операции можно проверять без долгих ожиданий и флаки-тестов.

📚 Подробности на Хабр: https://habr.com/ru/articles/943412/
  • ❤ 3
  • 👍 3
  • 🔥 2
Post #9 361
🔥 Что нового в GoLand 2025.2?

В этом релизе — умное выявление ошибок с помощью анализа потоков данных, неблокирующий экран приветствия, улучшенный поиск HTTP-эндпоинтов и ускоренный AI-агент Junie.

А ещё — апгрейд JetBrains AI Assistant и свежие функции, унаследованные от IntelliJ IDEA, WebStorm и DataGrip.

📚 Подробности на Хабр: https://habr.com/ru/articles/942868/
  • 👍 4
  • ❤ 3
  • 🔥 2
Post #8 467
🛠 Generic интерфейсы в Go: просто, но сложно

Команда Go for Devs подготовила перевод статьи Акселя Вагнера о том, как generic интерфейсы в Go открывают новые возможности и новые сложности.

В статье разбираются паттерны, ограничения и компромиссы: от self reference интерфейсов до дилеммы с ресивер-указателями.

📚 Подробности на Хабр: https://habr.com/ru/articles/942634/
  • ❤ 5
  • 👍 4
  • 🔥 4
Post #6 423
🙈 Будьте осторожны с Struct Embedding в Go

В Go есть механизм встраивания структур (struct embedding), который позволяет составлять типы. Примерно это выглядит так:


type Position struct {
X int
Y int
}

type Colour struct {
R byte
G byte
B byte
}

type Rectangle struct {
Position
Colour

Width int
Height int
}

r := Rectangle{/* ... */}

// This works:
fmt.Printf("%d,%d\n", r.Position.X, r.Position.Y)

// but so does this:
fmt.Printf("%d,%d\n", r.X, r.Y)


А как вы думаете, что делает этот код?


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)


Я бы ожидал, что компиляция упадет из-за неоднозначности поля URL. На самом деле программа выводит abc.com, по всей видимости, выбирая наименее вложенную версию этого поля. Такое у нас случилось на работе, к счастью, это поймали тесты. Будьте внимательны при встраивании структур!
  • 👍 6
  • ❤ 4
  • 🔥 4
Post #5 376
🎬 What’s new in Go 1.24 (Google for Developers)

Нашли, чем заняться вечером — погрузитесь в нововведения Go 1.24: от пост‑квантовой криптографии до полной поддержки обобщённых типовых псевдонимов, от усовершенствований кеширования инструментов до новых возможностей стандартной библиотеки.

😉 СМОТРЕТЬ НА YOUTUBE
YouTube What's new in Go There’s a lot to love about Go 1.24, including support for post-quantum cryptography, full support for generic type aliases, and several performance improvements to the Go runtime that significantly decrease CPU overhead for most applications. Learn what’s…
  • ❤ 5
  • 👍 4
  • 🔥 4
Post #4 369
🔥 Go 1.24 – большое обновление для инструментов: go tools 🛠

В грядущем релизе Go 1.24 (ожидается уже в феврале 2025) появится новая команда go tool, которая значительно упростит работу с проектными инструментами. Это обновление убирает необходимость в обходных решениях вроде tools.go, снижает «раздувание» зависимостей и ускоряет работу за счёт кеширования.

То есть:
🟣 Больше никаких костылей с tools.go
🟣 Более быстрая работа благодаря кешу
🟣 Чище и эффективнее управление зависимостями

Как это работает? Всё очень просто!

Добавить инструмент:


go get -tool github.com/oapi-codegen/oapi-codegen/v2/cmd/oapi-codegen@v2.4.1


Запустить:


go tool github.com/oapi-codegen/oapi-codegen/v2/cmd/oapi-codegen --config=config.yaml openapi.yaml


Посмотреть список доступных инструментов:


go tool


Многие уже называют это одним из самых полезных обновлений для инструментов Go за последние годы: настройка проектов станет заметно проще и удобнее.

📚 Официальную документацию можно найти в заметках к релизу Go 1.24
  • 👍 5
  • ❤ 4
  • 🔥 4
Post #1
Channel created
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →