Go v1.21 - Обсуждаем важные изменения | GoGetPodcast №10
Vložit
- čas přidán 7. 06. 2024
- Новый релиз выдался очень интересным, добавился ряд крутых фич. Подробно обсуждаем - что добавилось, зачем оно нужно, как с этим работать и др.
Состав:
- Николай Тузов
- Глеб Яльчик - тех. директор компании Gaijin
- Дмтрий Матрёничев - Talos OS Developer, ведёт отличный ТГ-канал по Go: t.me/go_update
👾 Мой Телеграм-Канал с анонсами подкастов, роликов и др.: t.me/ntuzov
🗣️ Наш чат - Gopher Club: t.me/+RfalcB42UspmMDdi
Все гости наших выпусков там присутствуют.
-----
Go 1.21 Release Notes: tip.golang.org/doc/go1.21
Примеры, связанные с изменениями поведения переменной цикла: github.com/golang/go/wiki/Loo...
Тайм-коды:
00:00 Вступление
02:14 Улучшенная обратная и восходящая совместимость
08:16 Изменений вывода stack trace
15:12 Изменение работы с циклами - Loopvar Experiment
18:58 Версия компилятора и его поведение на основе go.mod
22:24 Почему собседования станут немного проще
23:46 Новый пакет - slices
27:18 Про итераторы в Go
28:16 Почему убрали keys / values для map
30:42 Интересные функции нового пакета slices
31:40 builtin функции min / max
32:45 Связь новых функций с типом Float
36:02 Зачем нужна функция clear для слайсов?
39:28 sort.Ints() vs slices.Sort()
43:57 Новый пакет maps и его функции
46:22 Почему min / max принимают произвольное количество аргументов?
49:55 Улучшение пакета context
01:02:03 slog - новый пакет для логирования
01:08:04 Profile-guide optimization - оптимизация компилятора
01:13:29 Связь новых фич с финтехом
01:16:25 go build превращается в GCC с кучей конфигураций?
01:17:58 Новый пакет - cmp
01:20:11 Зачем чистить мапу в финтехе? :)
01:22:38 Связь новых фич с Machine Learning и статистикой
01:23:25 ОФФТОП ДО КОНЦА ВЫПУСКА / Go умирает? Умирают ли другие языки?
01:30:24 Про язык V
01:33:39 Важность ядра языка
01:34:45 Важность идеи языка
01:35:14 Идеи различных языков
01:40:36 Go и Rust
01:46:58 СОВСЕМ ОФФТОП - про игры и Baldurs Gate
01:49:33 Про SteamDeck
01:53:20 Заключение
#gogetpodcast
👾Если не хотите пропускать наши трансляции, подписывайтесь на мой Телеграм-канал: t.me/ntuzov
Пишу в нём новости, анонсы разных своих активностей и просто интересные мысли
И это один из лучших способов поддержки моего творчества
❤ Другие способы поддержать развитие канала:
Секретный телеграм-канал:
- В рублях: t.me/+1UPXV_DGnG1mODJi
- В евро: t.me/+hedI8LevYTc5MDM6
boosty.to/nikolay.tuzov
www.patreon.com/tuzov
Эх, подписался ещё давно, но почему-то всё равно пропустил)))
Прекрасный формат! Отлично слышать от опытных и практикующих как сильно и в каком виде влияют изменения языка. Не бросайте это дело!!
Спасибо за видео!
Видео огонь! Кстати обрыл весь интернет и почти нигде нету информации о том, какое оптимальное количество горутин нужно использовать для максимальной эффективности, есть мысли по этому поводу?
С этим вопросом приходи в Gopher Club
Спасибо за видео!
Если у вас уже есть эксперименты с модулями, попрошу расшарить примеры.
А то аудиально без примеров сложно в голове вообразить
Все подобные вопросы лучше в Gopher Club задавать - там удобней, и его читают все гости выпусков
хотелось бы посмотреть пример кода для 1:01:00 пакет контекст + токен авторизации, а то на слух что-то не очень понятно. Можно такое устроить?
Приходи в чатик Gopher Club, там можно обсудить
@@nikolay_tuzov там сильно жизнь бурлит. Мне бы поспокойнее ))
Я недавно делал так в микросервисе, просто в миддлваре передаешь через context.WithValue() id юзера и используешь это значение в хендлере для проверки или ещё чего-то
не нужно смотреть на эти примеры. middleware должно делать проверку, посылать в сад или пробрасывать только userid(нужное подчеркнуть) в контесте
@@user-bb5xw8bd8w ну middleware тоже разные бывают: можно на базе http.Handler, но велик соблазн http.RoundTripper. А тут третий вариант - хотелось бы глянуть...
Так КОБОЛ тоже развивается, вон недавно новый стандарт вышел:)
спасибо за видео. Буду безумно благодарен за сравнение го и раст) как раз взгляд упал на эти два языка и стою перед выбором
На Rust очень мало проектов и трудновато найти работу. Разве что для пет проектов и для души, но тут я бы лучше глянул в стороны zig. Молодой и довольно интересный язык уровня rust, но без недостатков и сложности rust. Если речь про коммерческую разработку, то однозначно go.
@@deadhole зависит от направления. Я думал связать свое будущее с блокчейн разработкой, где раст был бы очень полезен благодаря своей модели памяти и скорости
@@user-uo1iw5ht5t блокчейн-разработка сейчас скатывается к крипто-скамам, которые перестают существовать спустя пару месяцев после создания. Именно в странах СНГ, про остальные не знаю, golang намного популярнее и намного быстрее растет количество проектов на нем и соответственно кол-во свободных вакансий.
Спасибо за подкаст. Да реально все языки ещё используется в своих нишах. Например в банках Java в основном и на это есть свои причины. На раст просто смотрю пока …
интересны кейсы в которых стоит использовать вызов паники
Упрощенная обработка ошибок - пишешь функцию с приставкой Must, которая вместо возврата ошибки генерирует панику с особым типом. Спорная тема, но так бывает)
1:40:30 это не правда, хотябы тот факт что в ранних версиях раста был gc намекает. Утечку памяти в расте тоже получить как два пальца (в сейф расте конечно), просто надо понимать что "утечка памяти" это много разных вещей от части раст статически защищает, от части нет.
1:43:00 что такое безопастность по памяти? Это отсутствие класса ошибок таких как dangling pointer, use after free, double free и тп. Естественно автоматическое управление памятью в го устраняет подмножество таких ошибок (не трогая к примеру null ptr deref). Точно так же как и раст у которого прямо в растбуке есть пример утечки с циклическими ссылками, а если знать чуть глубже то с сейфовыми интерфейсами по типу Box::leak можно спокойно корраптить память не выходя в unsafe. Семантика владения это вообще не панацея, она в расте для реализации RAII а не для мифической «безопастности по памяти».
а где старий состав?
Забавно, что это как раз и есть "старый состав". В самом первом выпуске были тоже я, Глеб и Дима: gogetpodcast.ru/post/2022/02/16/%D0%B2%D1%8B%D0%BF%D1%83%D1%81%D0%BA-1-%D0%BE%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B0%D0%B5%D0%BC-%D0%B4%D0%B6%D0%B5%D0%BD%D0%B5%D1%80%D0%B8%D0%BA%D0%B8/
Go поистине уникальный язык. Он как будто специально спроектирован так, чтобы буквально каждая деталь была "не как у людей". Причем авторы упорно - годами - отрицают любые недостатки (речь об авторах языка, к авторам видео претензий нет, им только спасибо). Затем, спустя годы, начинают недостатки фиксить. Но фиксят не по нормальному - к примеру, вводя полноценные дженерики или протокол итерации - а в стиле ad-hoc, лишь бы краткосрочно проблему убрать. При этом, по сути, только добавляя новых проблем, так как в будущем надо будет учитывать все эти N + M особенностей языка, и делать это каждый раз при написании кода. Вместо того, чтобы один раз пофиксить нормально, перейти на оптимальный вариант и забыть навсегда о всех тех "особенностях", которые есть не более чем костыли...
Николай у тебя на заднем фоне стойт флаг Казахстана ты в Астане?
Гугл разрабатывал го прежде всего для своей монструозной монорепы и для него существенно время сборки, а посему был выбран лапидарный вариант с линковщиком в один проход , это накладывает свои ограничения и ведет к куцости возможностей, где от дженериков только одно название и тд.
Во-вторых, как они сами заявляли, у них не программисты, а гугл-кодеры, которые занимаются копи-пастой без особого понимания, а чтобы они не косячили, все урезано по самый минимум языка Элочки-людоедки.
Для map с float должен быть особо одаренный финтех, до этого еще никто не додумался. Но с очисткой map есть проблемы, память выделенная под bucket не удаляется, наверняка, кто-то из такого же финтеха придумал
Критическая ошибка ведущих - утверждение о том,что если выходят новые версии языка, то он не умер.Технология умирает, когда на ней перестают появляться новые проекты. Много новых проектов на перле и коболе? Пробовали найти работу с такими скиллами без переучивания?
Жаль что игры гайджин из говна и палок, всё в багах (даже базовые механики), мачмейкинг ссанина, рейтинги в стиме не даудт соврать. 8 и 10 карт игр дисбалансные, баланса даже и рядом не было. Сервера разваливаются. Геймплей унылый. Просто очередные гриндилки =(
Но в каждом видео слышу какой гайджин классный. Может расскажите какая егочасть классная?