Лайфхаки для кода без побочных эффектов: пишем на Go и красиво, и правильно

Поділитися
Вставка
  • Опубліковано 22 лис 2024

КОМЕНТАРІ • 11

  • @artmon2004
    @artmon2004 Рік тому +18

    Какой интересный дядя, спасибо много моментов открыл, очень структурно👍

    • @ultimate_engineer
      @ultimate_engineer  Рік тому

      Рады, что понравился доклад! Рекомендуем еще прочесть статью Владислава на нашем портале: engineer.yadro.com/article/tips-for-go/

  • @chasubavil
    @chasubavil Рік тому +1

    28:23 Здесь бы примерчик для наглядности... Пару таких структур со значениями. А до этого вообще шикарно, спасибо докладчику, очень живое выступление!

  • @evgeniysergeev9701
    @evgeniysergeev9701 Рік тому +11

    26:26 Идеоматично писать не type Animal interface{ Speak() }, а type Speaker interface{ Speak() } - если в интерфейсе один метод, то и называется он исходя из сигнатуры этого метода

  • @vladislav_artyukhov
    @vladislav_artyukhov 4 місяці тому +3

    20:40 Это вырез звука или лучший пролаг записи ever?

  • @nicolaep
    @nicolaep 6 місяців тому

    Спасибо, некоторые вещи стали понятнее.

  • @gooseman5578
    @gooseman5578 Рік тому

    20:55 почему стековое "копирование", там же ничего не копируется, просто адрес возвращает (в C++ так)

    • @vbelogrudov
      @vbelogrudov Рік тому

      Допустим, у нас автопеременная в стеке функции, мы возвращаемся из функции и хотим отдать содержимое этой переменной в вызывающую нас функцию. Если мы отдадим адрес в стеке, который при выходе из функции будет разрушен, мы в себя рано или поздно выстрелим (С/С++). Мы можем безопасно передавать адрес стековой переменной только дальше в вызываемые нами функции, так как стек все еще жив. Мы можем скопировать содержимое этой переменной в вызывающий нас стек - это так и в С и в С++ и в Го. Другое дело если отдаем стековую переменную обратно в вызывающую функцию в случае C/C++ - там есть дополнительные оптимизации в виде RVO/NRVO, habr.com/ru/companies/vk/articles/666330/, где мы не делаем никаких экстра копирований / созданий лишних переменных. Что касается Го, компилятор опасные вещи ввиде возврата адреса локальной / автоматической переменной превращает в безопасные - эта стековая переменная на самом деле перестает быть стековой (сразу создается в куче), если идет возврат ее адреса (адрес в куче). В любом случае мы не отдаем в вызывающую функцию адрес из стека.

  • @funky_hedgehog
    @funky_hedgehog 7 місяців тому

    Проще уж на Rust написать тогда

  • @UAStriker
    @UAStriker Рік тому +3

    Время от времени звук пропадает на пол секунды. Не ну е-мое, 2023 год на дворе, а звук пропадает🤯

  • @vechnonedovolen666
    @vechnonedovolen666 4 місяці тому

    Сначала делают автомтаическую работу с памятью, потом ищут как ее обойти