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

Sdílet
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

Komentáře • 32

  • @nikolay_tuzov
    @nikolay_tuzov  Před 9 měsíci +5

    👾Если не хотите пропускать наши трансляции, подписывайтесь на мой Телеграм-канал: t.me/ntuzov
    Пишу в нём новости, анонсы разных своих активностей и просто интересные мысли
    И это один из лучших способов поддержки моего творчества
    ❤ Другие способы поддержать развитие канала:
    Секретный телеграм-канал:
    - В рублях: t.me/+1UPXV_DGnG1mODJi
    - В евро: t.me/+hedI8LevYTc5MDM6
    boosty.to/nikolay.tuzov
    www.patreon.com/tuzov

    • @roman_zh1
      @roman_zh1 Před 6 měsíci

      Эх, подписался ещё давно, но почему-то всё равно пропустил)))

  • @pennypy
    @pennypy Před 9 měsíci +4

    Прекрасный формат! Отлично слышать от опытных и практикующих как сильно и в каком виде влияют изменения языка. Не бросайте это дело!!

  • @vladkorsak2163
    @vladkorsak2163 Před 9 měsíci

    Спасибо за видео!

  • @BobTT
    @BobTT Před 9 měsíci

    Видео огонь! Кстати обрыл весь интернет и почти нигде нету информации о том, какое оптимальное количество горутин нужно использовать для максимальной эффективности, есть мысли по этому поводу?

    • @nikolay_tuzov
      @nikolay_tuzov  Před 9 měsíci

      С этим вопросом приходи в Gopher Club

  • @vladimireliseev7602
    @vladimireliseev7602 Před 9 měsíci

    Спасибо за видео!
    Если у вас уже есть эксперименты с модулями, попрошу расшарить примеры.
    А то аудиально без примеров сложно в голове вообразить

    • @nikolay_tuzov
      @nikolay_tuzov  Před 9 měsíci +1

      Все подобные вопросы лучше в Gopher Club задавать - там удобней, и его читают все гости выпусков

  • @eamarc
    @eamarc Před 9 měsíci

    хотелось бы посмотреть пример кода для 1:01:00 пакет контекст + токен авторизации, а то на слух что-то не очень понятно. Можно такое устроить?

    • @nikolay_tuzov
      @nikolay_tuzov  Před 9 měsíci

      Приходи в чатик Gopher Club, там можно обсудить

    • @eamarc
      @eamarc Před 9 měsíci

      @@nikolay_tuzov там сильно жизнь бурлит. Мне бы поспокойнее ))

    • @blaze2671
      @blaze2671 Před 9 měsíci

      Я недавно делал так в микросервисе, просто в миддлваре передаешь через context.WithValue() id юзера и используешь это значение в хендлере для проверки или ещё чего-то

    • @user-bb5xw8bd8w
      @user-bb5xw8bd8w Před 9 měsíci

      не нужно смотреть на эти примеры. middleware должно делать проверку, посылать в сад или пробрасывать только userid(нужное подчеркнуть) в контесте

    • @eamarc
      @eamarc Před 9 měsíci

      @@user-bb5xw8bd8w ну middleware тоже разные бывают: можно на базе http.Handler, но велик соблазн http.RoundTripper. А тут третий вариант - хотелось бы глянуть...

  • @geoman666
    @geoman666 Před 5 měsíci

    Так КОБОЛ тоже развивается, вон недавно новый стандарт вышел:)

  • @user-uo1iw5ht5t
    @user-uo1iw5ht5t Před 9 měsíci

    спасибо за видео. Буду безумно благодарен за сравнение го и раст) как раз взгляд упал на эти два языка и стою перед выбором

    • @deadhole
      @deadhole Před 8 měsíci

      На Rust очень мало проектов и трудновато найти работу. Разве что для пет проектов и для души, но тут я бы лучше глянул в стороны zig. Молодой и довольно интересный язык уровня rust, но без недостатков и сложности rust. Если речь про коммерческую разработку, то однозначно go.

    • @user-uo1iw5ht5t
      @user-uo1iw5ht5t Před 8 měsíci

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

    • @user-ne1be6td2y
      @user-ne1be6td2y Před 6 měsíci

      @@user-uo1iw5ht5t блокчейн-разработка сейчас скатывается к крипто-скамам, которые перестают существовать спустя пару месяцев после создания. Именно в странах СНГ, про остальные не знаю, golang намного популярнее и намного быстрее растет количество проектов на нем и соответственно кол-во свободных вакансий.

  • @invisibleinvisible83
    @invisibleinvisible83 Před 9 měsíci

    Спасибо за подкаст. Да реально все языки ещё используется в своих нишах. Например в банках Java в основном и на это есть свои причины. На раст просто смотрю пока …

  • @fess932
    @fess932 Před 9 měsíci

    интересны кейсы в которых стоит использовать вызов паники

    • @nikolay_tuzov
      @nikolay_tuzov  Před 9 měsíci +2

      Упрощенная обработка ошибок - пишешь функцию с приставкой Must, которая вместо возврата ошибки генерирует панику с особым типом. Спорная тема, но так бывает)

  • @dAfuckThePolice
    @dAfuckThePolice Před 9 měsíci

    1:40:30 это не правда, хотябы тот факт что в ранних версиях раста был gc намекает. Утечку памяти в расте тоже получить как два пальца (в сейф расте конечно), просто надо понимать что "утечка памяти" это много разных вещей от части раст статически защищает, от части нет.
    1:43:00 что такое безопастность по памяти? Это отсутствие класса ошибок таких как dangling pointer, use after free, double free и тп. Естественно автоматическое управление памятью в го устраняет подмножество таких ошибок (не трогая к примеру null ptr deref). Точно так же как и раст у которого прямо в растбуке есть пример утечки с циклическими ссылками, а если знать чуть глубже то с сейфовыми интерфейсами по типу Box::leak можно спокойно корраптить память не выходя в unsafe. Семантика владения это вообще не панацея, она в расте для реализации RAII а не для мифической «безопастности по памяти».

  • @dimitrobest5293
    @dimitrobest5293 Před 9 měsíci

    а где старий состав?

    • @nikolay_tuzov
      @nikolay_tuzov  Před 9 měsíci +2

      Забавно, что это как раз и есть "старый состав". В самом первом выпуске были тоже я, Глеб и Дима: 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 Před 4 měsíci

    Go поистине уникальный язык. Он как будто специально спроектирован так, чтобы буквально каждая деталь была "не как у людей". Причем авторы упорно - годами - отрицают любые недостатки (речь об авторах языка, к авторам видео претензий нет, им только спасибо). Затем, спустя годы, начинают недостатки фиксить. Но фиксят не по нормальному - к примеру, вводя полноценные дженерики или протокол итерации - а в стиле ad-hoc, лишь бы краткосрочно проблему убрать. При этом, по сути, только добавляя новых проблем, так как в будущем надо будет учитывать все эти N + M особенностей языка, и делать это каждый раз при написании кода. Вместо того, чтобы один раз пофиксить нормально, перейти на оптимальный вариант и забыть навсегда о всех тех "особенностях", которые есть не более чем костыли...

  • @firefizik9307
    @firefizik9307 Před 9 měsíci

    Николай у тебя на заднем фоне стойт флаг Казахстана ты в Астане?

  • @user-bb5xw8bd8w
    @user-bb5xw8bd8w Před 9 měsíci

    Гугл разрабатывал го прежде всего для своей монструозной монорепы и для него существенно время сборки, а посему был выбран лапидарный вариант с линковщиком в один проход , это накладывает свои ограничения и ведет к куцости возможностей, где от дженериков только одно название и тд.
    Во-вторых, как они сами заявляли, у них не программисты, а гугл-кодеры, которые занимаются копи-пастой без особого понимания, а чтобы они не косячили, все урезано по самый минимум языка Элочки-людоедки.
    Для map с float должен быть особо одаренный финтех, до этого еще никто не додумался. Но с очисткой map есть проблемы, память выделенная под bucket не удаляется, наверняка, кто-то из такого же финтеха придумал

  • @vladislavrodin8036
    @vladislavrodin8036 Před 3 měsíci

    Критическая ошибка ведущих - утверждение о том,что если выходят новые версии языка, то он не умер.Технология умирает, когда на ней перестают появляться новые проекты. Много новых проектов на перле и коболе? Пробовали найти работу с такими скиллами без переучивания?

  • @Smerrrtnik
    @Smerrrtnik Před 4 měsíci

    Жаль что игры гайджин из говна и палок, всё в багах (даже базовые механики), мачмейкинг ссанина, рейтинги в стиме не даудт соврать. 8 и 10 карт игр дисбалансные, баланса даже и рядом не было. Сервера разваливаются. Геймплей унылый. Просто очередные гриндилки =(
    Но в каждом видео слышу какой гайджин классный. Может расскажите какая егочасть классная?