Golang Дайджест
7.76K subscribers
36 photos
1 file
165 links
Самое интересное из мира Go: новости, статьи, проекты, сервисы, изменения в языке и др.

Посты публикуются не часто - только самое важное, с чем я лично ознакомился.

Поэтому можно не мьютить канал =)

Обратная связь: @justskiv
Download Telegram
Forwarded from Go Update
Релиз Go 1.21

Вот и состоялся релиз новой версии Go. Кроме того, что указано здесь, у нас так-же появились:

- Довольной большой пакет slices: среди прочего содержит функции Min / Max, функцию сортировки и функцию поиска в сортированном слайсе. И больше не нужно писать страшные блоки вставки и удаления элементов из слайса.
- Пакет maps: по сравнению со слайсами как-то бедновато, но есть удобная функция копирования.
- Пакет cmp: содержит обьявление всех сравниваемых по порядку типов и две базовые функции для работы с ними. Нужно скорее для пакетов maps и slices, а так-же разработчикам библиотек с коллекциями.
- Profile-guide optimization (PGO - оптимизация основанная на данных профилировки) вышла из превью и теперь применяется всегда если присутствует файл default.pgo в директории main пакета. Говорят, что благодаря ей удалось ускорить компилятор примерно на 6%.
- Улучшение пакета context: теперь можно вешать функцию на отмену контекста (удобно когда вам нужно закрыть канал или прекратить чтение из сокета) и отвязать дочерний контекст от отмены родителя.
- При выводе очень глубоких стеков теперь показывают 50 самых верхних и 50 самых нижних фреймов (названий функции) вместо 100 самых верхних как это было ранее. Должно помочь с отладкой паник в рекурсивных функциях.
Анонимная сеть в 200 строк кода на Go

https://habr.com/ru/articles/745256/

Отличный пост для тех, кто хочет немного погрузиться в понятие анонимных сетей и не тратить на это много времени.

Всё как мы любим: краткий и интересный ликбез по теме, затем практика - реализация анонимной сети своими руками.

На мой взгляд, пример в статье не самый полезный в практическом смысле, зато отличный в образовательном.

#article #dyi #сети
Интересные блоги по Go

Чтение блогов часто может быть полезней чтения книг, особенно если у вас уже есть опыт разработки на Go. Это помогает быть в курсе текущих тенденций развития языка, понимать мотивацию авторов, узнавать новые тонкости внутреннего устройства и др.

- https://research.swtch.com - автор блога Russ Cox - ведущий разработчик Go. Регулярно пишет о планах развития языка, о мотивации различных решений и в целом про язык

- https://go.dev/blog - официальный блог авторов Go

- https://www.ardanlabs.com/categories/go-programing/ - ArdanLabs - отличные образовательные посты, разборы различных нюансов и тонкостей языка

- https://dave.cheney.net - контрибьютор Go. Блог перестал обновляться с 2021 года, но имеющиеся посты часто тоже очень интересны.

#blogs
Golang Дайджест
Интересные блоги по Go Чтение блогов часто может быть полезней чтения книг, особенно если у вас уже есть опыт разработки на Go. Это помогает быть в курсе текущих тенденций развития языка, понимать мотивацию авторов, узнавать новые тонкости внутреннего устройства…
Какие блоги по Go читаете вы?

Помимо приведенных выше

Можете просто скидывать ссылки, но краткий комментарий делает ссылку в разы ценнее - почему на этот блог стоит обратить внимание?

Можно также делиться блогами по разработке в целом, если они будут полезны именно Go-разработчикам.

#discussion #blogs
Авторы Go про slog и structured logs

https://go.dev/blog/slog

Свежий пост, в котором авторы языка рассказывают про structured logs и пакет slog:

- Краткое введение в slog
- Производительность
- Процесс дизайна пакета slog

#post #logs #slog
Серия постов про новый пакет slices от ArdanLabs

В статьях разбираются функции из нового пакета:

- Binary Search
- Clip, Clone, and Compact
- Compare
- Contains, Delete, and Equal

В случае постов ArdanLabs и конкретно от William Kennedy, мои комментарии излишни - он пишет хорошо, интересно, с кучей примеров.

#ardanlabs
Конференция по Go от Podlodka Crew

11 сентября состоится очередная конференция Podlodka Go Crew

Общая тема в этот раз - Highload на Go:

- заглянем под капот устройства памяти
- научимся превентивно находить потенциальные очаги чрезмерной нагрузки
- посмотрим на лучшие практики нагрузочного тестирования
- изучим масштабируемую технологию NATS JetStream для очередей и асинхронной коммуникации

Кроме того, каждый желающий сможет выступить на открытом микрофоне.

Подробности тут
————

Если решили купить билет, держите промокод на скидку в 500р: ntuzov_go2

#podlodka #конференция
Воспроизводимость и верификация тулчейна Go

https://go.dev/blog/rebuild

Russ Cox в статье для официального блога Go пишет про проблему supply chain attack, как она связана с воспроизводимостью билдов (reproducible builds), как это помогает верифицировать билды.

Также тут подробно разобрано, что было с воспроизводимостью в разных версия Go, и что в Go 1.21 она "идеальная":

> Go 1.21.0 is the first Go toolchain with perfectly reproducible builds

Думаю, девопсам эта статья будет особенно полезна и интересна

#статья #russ_cox
Как вы предпочитаете именовать подобные функции - вместо MyFunc? (см. опрос ниже)

Расскажите в комментариях, почему именно так. Считаете ли вы какой-то подход идиоматичным?
Garbage Collection: как работает и почему это важно знать

https://habr.com/ru/companies/avito/articles/753244/

Хорошая авторская статья про GC в Go - с кучей примеров и картинок(!) ☕️
Читается легко, интересно.

Ещё раз подчеркну - это в кои-то веки авторская статья, а не перевод. В последнее время это стало редкостью.

#post #habr #gc
Please open Telegram to view this post
VIEW IN TELEGRAM
Profile-guided optimization in Go 1.21

https://go.dev/blog/pgo

Michael Pratt в статье в официальном блоге Go рассказывает про PGO - что это и как пользоваться.
И самое интересное - он показывает конкретный пример оптимизации приложения.

Полная документация по PGO тут: https://go.dev/doc/pgo

#pgo #go_official
Forwarded from defer panic
Мне было сегодня лет, когда я узнал, что в GoLand встроен плейграунд, и больше не нужно идти в браузер, чтобы проверить какой-то маленький кусок кода. Он умеет как выполнять локально, так и загружать код на официальный плейграунд, после чего можно поделиться ссылкой. Но пожалуй самое крутое — внутри встроенного плейграунда можно использовать все те же фичи, что в обычном режиме, включая дебаг, Copilot и т.д.!

Чтобы открыть, нажимаете два раза Shift или вызываете «поиск по всему», вводите “playground”, вы прекрасны!

https://www.jetbrains.com/go/guide/tips/integrated-go-playground/

❤️ютуббустипатреонплатный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
Golang Дайджест
Мне было сегодня лет, когда я узнал, что в GoLand встроен плейграунд, и больше не нужно идти в браузер, чтобы проверить какой-то маленький кусок кода. Он умеет как выполнять локально, так и загружать код на официальный плейграунд, после чего можно поделиться…
Очень крутая фича, странно что я не знал о ней всё это время. Теперь сразу забиндил хоткей на неё.

Я редко пользовался плэйграундом в браузере, у меня просто всегда под рукой был проект - sandbox. Но для мелочей открывать отдельный проект лениво. Тем более, в этом плэйграунде я сразу заметил ещё одну интересную фичу - когда его открываешь, в нём по дефолту будет копия текущего открытого go-файла. То есть, можно быстро поиграться с кодом, не ломая при этом оригинальный файл.

Глвное - не пошэрить случайно рабочий код всеми миру 😁
Golang Дайджест pinned «💻 С чего начать изучать GoLang? - Ультимативный пост Оригинальный пост будет обновляться для сохранения актуальности. Репосты при этом не обновляются, поэтому не забывайте проверять оригинал. Must have, нестареющая классика: - A Tour of Go - ресурс, с которого…»
Третье издание книги "Golang для профи"

Golang для профи: Создаем профессиональные утилиты, параллельные серверы и сервисы, 3-е изд

Скажу честно, мне эта книга не очень зашла, но я знаю что многим она нравится. Поэтому делюсь этой новостью. Возможно, кто-то ждал обновлённое издание.

UPD: Статья с обзорм новой книги на хабре
————

Это не реклама, но всё же поделюсь мелкими плюшками при покупке книги на сайте издательства. Информацию взял из их почтовой рассылки:

По факту оплаты бумажной версии книги на e-mail высылается электронная книга.
Скидка 25% по купону —
Golang

#book
Fixing For Loops in Go 1.22

https://go.dev/blog/loopvar-preview

David Chase и Russ Cox в официальном блоге Go рассказывают про проблему LoopVar (переменной цикла) и приводят конкретные примеры, в том числе из реального кейса проекта - Lets Encrypt.

Затем рассказывают, как именно эта проблема решается. Если кратко:

> change for loops to make these variables have per-iteration scope instead of per-loop scope

Как вы помните, эта фича уже есть в Go v1.21, но её нужно включить:

GOEXPERIMENT=loopvar go test

А в версии 1.22 она уже будет работать по-умолчанию

#go_1_22 #go_official