Forwarded from Go Update
🎉 Вышел Go 1.25! 🎉
Пока я не успел статью про новый сборщик мусора написать, поэтому быстро пробегусь по основным нововведениям которых не касался в прошлых записях.
— ♻️ Бинарей в комплекте теперь меньше. Разработчики компилятора активно использовать команду
— Новая директива
— Когда go команда обновляет
—
— 🍵 Новый экспериментальный сборщик мусора. О нем статья будет позже.
— 🔀️️️️️️ Новый тип
— 🛠 Компилятор теперь генерирует дебаг-инфу в формате DWARF5. Практический итог: бинари едят меньше места и быстрее комбинируются.
— 🏎️️️️️️ Новый экспериментальный пакет
— Тип
— 🏎️️️️️️ Функция
— Директива
—
— Новый метод
— 🔥
Читать про релиз вот тут.
Пока я не успел статью про новый сборщик мусора написать, поэтому быстро пробегусь по основным нововведениям которых не касался в прошлых записях.
— ♻️ Бинарей в комплекте теперь меньше. Разработчики компилятора активно использовать команду
go tool
у себя внутри, что убирает необходимость поставлять заготовки в комплекте. Но как минимум go build
и go test
бинари все еще на месте.— Новая директива
ignore
в go.mod. Подробное описание тут. Если в вкратце: для этого вы раньше использовали каталог testdata
и каталоги которые начинаются с точки.— Когда go команда обновляет
go
1.xx.y
директиву в go.mod
она больше не добавляет toolchain
директиву.—
go vet
теперь ругается на неправильное использование sync.WaitGroup.Add
и fmt.Sprintf("%s:%d", host, port)
ибо есть net.JoinHostPort
.— 🍵 Новый экспериментальный сборщик мусора. О нем статья будет позже.
— 🔀️️️️️️ Новый тип
runtime/trace.FlightRecorder
позволяет записывать только значимые события, а не всё подряд для tracing’га (под капотом используется циклический буфер, который помнит N последних секунд).— 🛠 Компилятор теперь генерирует дебаг-инфу в формате DWARF5. Практический итог: бинари едят меньше места и быстрее комбинируются.
— 🏎️️️️️️ Новый экспериментальный пакет
encoding/json/v2
. По хорошему про него тоже надо писать отдельную статью, но если в кратце — он намного быстрее того что было внутри encoding/json
. А другая хорошая новость заключается в том, что если вы включили GOEXPERIMENT=jsonv2
то больше ничего менять не надо, так как encoding/json
сам подключит новую внутряку.— Тип
os.Root
приобрел несколько новых методов.— 🏎️️️️️️ Функция
reflect.TypeAssert
позволяет приводить типы из reflect.Value в конкретный тип, минуя потенциально аллоцирующий вызов reflect.Value.Interface
.— Директива
GODEBUG=checkfinalizers=1
позволяет понять, как дела в вашей очереди cleanup’ов и finalizer’ов во время каждого GC.—
SetDefaultGOMAXPROCS
позволяет сбросить настройки GOMAXPROCS
если вдруг переменная прилетела через Env или через прошлый вызов GOMAXPROCS
.— Новый метод
sync.WaitGroup.Go
- больше нет необходимости тащить errgroup
если вам не нужен был возврат ошибок и отмена контекста.— 🔥
testing.T/B/F
теперь имеют метод Output() io.Writer
который позволяет правильно редиректить вывод внутри вызова теста.Читать про релиз вот тут.
go.dev
Go Modules Reference - The Go Programming Language
1🔥40👍21❤8🤯3
Год назад здесь была реклама нового, но уже довольно неплохого курса по API. За год его автор, тимлид команды аналитиков Глеб Учитель, проделал огромную работу: на курс записалось более 1300 человек. И сейчас его знают многие.
Если вы тоже хотите расти по хардам в IT —
добро пожаловать!
Курс стоит всего 13 990 рублей, размещён на платформе Stepik и имеет множество положительных отзывов (отзывы внизу страницы)
————
Начните с бесплатных уроков по архитектуре и интеграциям в чат-боте курса:
@studyit_help_bot
Скидка на курс от канала —
1 000₽ по промокоду TUZOV до конца августа.
#промо #текст_прислан
Если вы тоже хотите расти по хардам в IT —
добро пожаловать!
Курс стоит всего 13 990 рублей, размещён на платформе Stepik и имеет множество положительных отзывов (отзывы внизу страницы)
————
Начните с бесплатных уроков по архитектуре и интеграциям в чат-боте курса:
@studyit_help_bot
Скидка на курс от канала —
1 000₽ по промокоду TUZOV до конца августа.
#промо #текст_прислан
7🤯6👍5❤4🔥2
Ещё одна статья про Swiss Tables в Go
https://habr.com/ru/companies/oleg-bunin/articles/934906/
Если вам было мало статей на эту тему, то держите ещё один неплохой подробный разбор:
#article #swiss_map
https://habr.com/ru/companies/oleg-bunin/articles/934906/
Если вам было мало статей на эту тему, то держите ещё один неплохой подробный разбор:
Попробуем найти ответы на вопросы о том, почему мапы изменились, что лежит в основе новой реализации и как к ней пришли.
#article #swiss_map
Хабр
Швейцария в картах Go: путешествие по Swiss Tables
Golang продолжает развиваться. Изначальные проектные решения ставятся под сомнения, а новые вызовы заставляют язык меняться: дженерики, итераторы, новая имплементация мап. Однако, даже нововведения...
👍10❤3🔥3