Главное в обновлении: Go стал умнее в контейнерах. Теперь сам ограничивает потоки под лимиты CPU (больше никаких 20 goroutines на 0.5 CPU в Kubernetes 😅).
Завезли супер-быстрый JSON v2 (пока экспериментально). Обещают куда шустрое распарсивание JSON и новые удобные API для маршалинга.
Появился экспериментальный GC "Green Tea", который в тестах на 10-40% снижает накладные расходы сборщика мусора.
Из мелочей: добавили метод
WaitGroup.Go (минус шаблон Add(1)+go+Done, ура удобству!), пакет testing/synctest для тестов с синтетическим временем (прощай time.Sleep в тестах 🎉), новый net/http-защитник от CSRF и пачку оптимизаций в crypto (прощай SHA-1).Мне больше всего понравилась авто-настройка GOMAXPROCS и новый JSON - я уже побежали бенчмаркать его в своих сервисах.
А вот что немного раскритиковали - так это отсутствие шагов по сокращению шаблона
if err != nil 🙈 (Go как был консервативен в error handling, так и остался). Впрочем, релиз получился очень полезным: быстрее, безопаснее, удобнее. Лично мне не терпится включить JSON/v2 и "зелёный" GC в парочке проектов и посмотреть на результат.
Попробуйте и вы, поделитесь впечатлениями! 😉
