Go v1.21 - Обсуждаем важные изменения | GoGetPodcast №10

  Рет қаралды 10,725

Николай Тузов — Golang

Николай Тузов — Golang

Күн бұрын

Новый релиз выдался очень интересным, добавился ряд крутых фич. Подробно обсуждаем - что добавилось, зачем оно нужно, как с этим работать и др.
Состав:
- Николай Тузов
- Глеб Яльчик - тех. директор компании 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

Пікірлер: 32
@nikolay_tuzov
@nikolay_tuzov 10 ай бұрын
👾Если не хотите пропускать наши трансляции, подписывайтесь на мой Телеграм-канал: t.me/ntuzov Пишу в нём новости, анонсы разных своих активностей и просто интересные мысли И это один из лучших способов поддержки моего творчества ❤ Другие способы поддержать развитие канала: Секретный телеграм-канал: - В рублях: t.me/+1UPXV_DGnG1mODJi - В евро: t.me/+hedI8LevYTc5MDM6 boosty.to/nikolay.tuzov www.patreon.com/tuzov
@roman_zh1
@roman_zh1 6 ай бұрын
Эх, подписался ещё давно, но почему-то всё равно пропустил)))
@pennypy
@pennypy 9 ай бұрын
Прекрасный формат! Отлично слышать от опытных и практикующих как сильно и в каком виде влияют изменения языка. Не бросайте это дело!!
@vladkorsak2163
@vladkorsak2163 10 ай бұрын
Спасибо за видео!
@vladimireliseev7602
@vladimireliseev7602 10 ай бұрын
Спасибо за видео! Если у вас уже есть эксперименты с модулями, попрошу расшарить примеры. А то аудиально без примеров сложно в голове вообразить
@nikolay_tuzov
@nikolay_tuzov 10 ай бұрын
Все подобные вопросы лучше в Gopher Club задавать - там удобней, и его читают все гости выпусков
@BobTT
@BobTT 9 ай бұрын
Видео огонь! Кстати обрыл весь интернет и почти нигде нету информации о том, какое оптимальное количество горутин нужно использовать для максимальной эффективности, есть мысли по этому поводу?
@nikolay_tuzov
@nikolay_tuzov 9 ай бұрын
С этим вопросом приходи в Gopher Club
@eamarc
@eamarc 10 ай бұрын
хотелось бы посмотреть пример кода для 1:01:00 пакет контекст + токен авторизации, а то на слух что-то не очень понятно. Можно такое устроить?
@nikolay_tuzov
@nikolay_tuzov 10 ай бұрын
Приходи в чатик Gopher Club, там можно обсудить
@eamarc
@eamarc 10 ай бұрын
@@nikolay_tuzov там сильно жизнь бурлит. Мне бы поспокойнее ))
@blaze2671
@blaze2671 10 ай бұрын
Я недавно делал так в микросервисе, просто в миддлваре передаешь через context.WithValue() id юзера и используешь это значение в хендлере для проверки или ещё чего-то
@user-bb5xw8bd8w
@user-bb5xw8bd8w 9 ай бұрын
не нужно смотреть на эти примеры. middleware должно делать проверку, посылать в сад или пробрасывать только userid(нужное подчеркнуть) в контесте
@eamarc
@eamarc 9 ай бұрын
@@user-bb5xw8bd8w ну middleware тоже разные бывают: можно на базе http.Handler, но велик соблазн http.RoundTripper. А тут третий вариант - хотелось бы глянуть...
@geoman666
@geoman666 6 ай бұрын
Так КОБОЛ тоже развивается, вон недавно новый стандарт вышел:)
@user-uo1iw5ht5t
@user-uo1iw5ht5t 10 ай бұрын
спасибо за видео. Буду безумно благодарен за сравнение го и раст) как раз взгляд упал на эти два языка и стою перед выбором
@deadhole
@deadhole 8 ай бұрын
На Rust очень мало проектов и трудновато найти работу. Разве что для пет проектов и для души, но тут я бы лучше глянул в стороны zig. Молодой и довольно интересный язык уровня rust, но без недостатков и сложности rust. Если речь про коммерческую разработку, то однозначно go.
@user-uo1iw5ht5t
@user-uo1iw5ht5t 8 ай бұрын
@@deadhole зависит от направления. Я думал связать свое будущее с блокчейн разработкой, где раст был бы очень полезен благодаря своей модели памяти и скорости
@user-ne1be6td2y
@user-ne1be6td2y 6 ай бұрын
@@user-uo1iw5ht5t блокчейн-разработка сейчас скатывается к крипто-скамам, которые перестают существовать спустя пару месяцев после создания. Именно в странах СНГ, про остальные не знаю, golang намного популярнее и намного быстрее растет количество проектов на нем и соответственно кол-во свободных вакансий.
@invisibleinvisible83
@invisibleinvisible83 10 ай бұрын
Спасибо за подкаст. Да реально все языки ещё используется в своих нишах. Например в банках Java в основном и на это есть свои причины. На раст просто смотрю пока …
@fess932
@fess932 10 ай бұрын
интересны кейсы в которых стоит использовать вызов паники
@nikolay_tuzov
@nikolay_tuzov 10 ай бұрын
Упрощенная обработка ошибок - пишешь функцию с приставкой Must, которая вместо возврата ошибки генерирует панику с особым типом. Спорная тема, но так бывает)
@dAfuckThePolice
@dAfuckThePolice 10 ай бұрын
1:40:30 это не правда, хотябы тот факт что в ранних версиях раста был gc намекает. Утечку памяти в расте тоже получить как два пальца (в сейф расте конечно), просто надо понимать что "утечка памяти" это много разных вещей от части раст статически защищает, от части нет. 1:43:00 что такое безопастность по памяти? Это отсутствие класса ошибок таких как dangling pointer, use after free, double free и тп. Естественно автоматическое управление памятью в го устраняет подмножество таких ошибок (не трогая к примеру null ptr deref). Точно так же как и раст у которого прямо в растбуке есть пример утечки с циклическими ссылками, а если знать чуть глубже то с сейфовыми интерфейсами по типу Box::leak можно спокойно корраптить память не выходя в unsafe. Семантика владения это вообще не панацея, она в расте для реализации RAII а не для мифической «безопастности по памяти».
@dimitrobest5293
@dimitrobest5293 10 ай бұрын
а где старий состав?
@nikolay_tuzov
@nikolay_tuzov 10 ай бұрын
Забавно, что это как раз и есть "старый состав". В самом первом выпуске были тоже я, Глеб и Дима: 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/
@AlexanderBorshak
@AlexanderBorshak 4 ай бұрын
Go поистине уникальный язык. Он как будто специально спроектирован так, чтобы буквально каждая деталь была "не как у людей". Причем авторы упорно - годами - отрицают любые недостатки (речь об авторах языка, к авторам видео претензий нет, им только спасибо). Затем, спустя годы, начинают недостатки фиксить. Но фиксят не по нормальному - к примеру, вводя полноценные дженерики или протокол итерации - а в стиле ad-hoc, лишь бы краткосрочно проблему убрать. При этом, по сути, только добавляя новых проблем, так как в будущем надо будет учитывать все эти N + M особенностей языка, и делать это каждый раз при написании кода. Вместо того, чтобы один раз пофиксить нормально, перейти на оптимальный вариант и забыть навсегда о всех тех "особенностях", которые есть не более чем костыли...
@firefizik9307
@firefizik9307 9 ай бұрын
Николай у тебя на заднем фоне стойт флаг Казахстана ты в Астане?
@user-bb5xw8bd8w
@user-bb5xw8bd8w 9 ай бұрын
Гугл разрабатывал го прежде всего для своей монструозной монорепы и для него существенно время сборки, а посему был выбран лапидарный вариант с линковщиком в один проход , это накладывает свои ограничения и ведет к куцости возможностей, где от дженериков только одно название и тд. Во-вторых, как они сами заявляли, у них не программисты, а гугл-кодеры, которые занимаются копи-пастой без особого понимания, а чтобы они не косячили, все урезано по самый минимум языка Элочки-людоедки. Для map с float должен быть особо одаренный финтех, до этого еще никто не додумался. Но с очисткой map есть проблемы, память выделенная под bucket не удаляется, наверняка, кто-то из такого же финтеха придумал
@vladislavrodin8036
@vladislavrodin8036 3 ай бұрын
Критическая ошибка ведущих - утверждение о том,что если выходят новые версии языка, то он не умер.Технология умирает, когда на ней перестают появляться новые проекты. Много новых проектов на перле и коболе? Пробовали найти работу с такими скиллами без переучивания?
@Smerrrtnik
@Smerrrtnik 4 ай бұрын
Жаль что игры гайджин из говна и палок, всё в багах (даже базовые механики), мачмейкинг ссанина, рейтинги в стиме не даудт соврать. 8 и 10 карт игр дисбалансные, баланса даже и рядом не было. Сервера разваливаются. Геймплей унылый. Просто очередные гриндилки =( Но в каждом видео слышу какой гайджин классный. Может расскажите какая егочасть классная?
Как развиваться GoLang разработчику? | GoGetPodcast №7
1:29:26
Николай Тузов — Golang
Рет қаралды 20 М.
В ДЕТСТВЕ СТРОИШЬ ДОМ ПОД СТОЛОМ
00:17
SIDELNIKOVVV
Рет қаралды 3,8 МЛН
Sigma Girl Education #sigma #viral #comedy
00:16
CRAZY GREAPA
Рет қаралды 123 МЛН
Её Старший Брат Настоящий Джентельмен ❤️
00:18
Глеб Рандалайнен
Рет қаралды 7 МЛН
Как на самом деле устроены каналы в Golang? | Golang channels internals
41:31
Как на самом деле устроен тип Map в Golang? | Golang под капотом
34:33
Самое полное интервью Golang Middle
3:08:32
Эйч Навыки — менторская программа
Рет қаралды 66 М.
В ДЕТСТВЕ СТРОИШЬ ДОМ ПОД СТОЛОМ
00:17
SIDELNIKOVVV
Рет қаралды 3,8 МЛН