❤ Если у вас есть желание поддержать развитие канала: www.patreon.com/tuzov boosty.to/nikolay.tuzov - 👾 Мой канал в Telegram: t.me/ntuzov - 🗣 Чат в Telegram: t.me/+zsSZ63wEJDs3NGVi - 👀 Golang Digest: t.me/golang_digest - мои регулярные подборки интересных материалов по Go
Дуже якісне відео. Автор топчик, кожна деталь розгорнута, за ці 40 хвилин автор розкрив фундамент з яким можна вільно програмувати. Дуже дякую тобі авторе ❤
Невероятно крутой видос, много полезного материала, объясняемого не то что бы сложным языком. Сейчас как раз готовлюсь к собесу на го дева, очень помогло, спасибо!
Спасибо огромное за ролик! ❤ Вот это я понимаю разбор, вот это уровень! Отлично переплетённые части анимации, уточнений, ухода в самую маковку кодовой базы и ёмких лаконичных выводов! Как всегда достаточно полно, чтобы понять и главное понять куда двигаться и вовремя сокращено, чтобы не перезагрузить в усмерть - это талан, и я рад, что вы, Старший разработчик категории 2, им обладаете xD Жду ролик про Планировщик, уверен в качестве! ¡Buena suerte en México, amigo! ❤
Расскажи ещё про разницу string aka []byte. В чем преимущества той и другой структуры, в чем разница, когда использовать , и что происходит при обратной конвертации)
Схемы в основном тут делаю: excalidraw.com Но часть приходится рисовать прямо в PowerPoint, тогда меньше возни с анимацией. Гоферов просто в интернете нахожу.
Про select не расказано как паркуется горутина если ни один из кейсов не сработает, ведь каналов в select может быть несколько. И как тогда просыпается горутина если ее будят по любому каналу и как она защищает себя от того, что проснулась, а возможности писать/читать уже нет потому что конкурентная горутина прочитала.
Один момент не доконца понмаю, после парковки горутину, насколько я понимаю работу планировщика, она отправляется в глобальную очередь, соответственно после её пробуждения она возвращается в очередь (fifo/lifo?) на какой-либо процессор или там не все так просто?
Спасибо за видео! Каналы перестали казаться чем-то инопланетным :) Вот такой вопрос возник: если по сути дела каналы реализованы отдельной библиотекой, и эту структуру может повторить любой разработчик, то зачем в го отдельный синтаксис чтения/записи в канал (оператор
а что если в sendq несколько спящих горутин. Условно одна спящая горутина с нужными данными, а другая горутина с абсолютно другими данными, что в этом случае ? Или в качестве спящей горутины берется только самая последняя горутина.
@@nikolay_tuzov Спасибо! Николай, как вы считаете, должен ли голангер по-умолчанию уметь работать с PostgreSQL, ElasticSearch, Mongo при собесе? У меня 90% отказов из-за отсутствия опыта по базам, но я всегда юзал самописные в своих разработках, а впрок учить просто так нет желания, да и не запомнится без долгой практики.
Если канал заполнен и горутина пытается в неё что-то записать, то как именно горутина получает этот поток (переменную), чтобы потом завернуть в очередь sudog?
Это очень хороший вопрос. Если кратко - потому что пакет атомик не поддерживает bool. Хотя, с 1.19 поддерживает, но на самом деле, под капотом там всем равно int. Можешь также почитать обсуждение в комментах к моему посту на эту же тему: t.me/ntuzov/26 А если захочется еще глубже копнуть, добро пожаловать в наш чатик Gopher Club, там у нас есть знатоки, которые помогут разобраться даже в самых низкоуровневых вопросах.
как то странно прозвучало "если вы используете каналы вам не надо задумываться об элементах синхронизации" что-то не то с причинно-следственными связями точно также я могу сказать "используя мютекс, мне не надо задумываться о каналах, как и в каком порядке их открывать/закрывать, как избегать записи/чтения в/с нил каналами, как избежать паники при работе с каналами и т.д.и т .п.". Что звучит еще более страшно ))) стоит задача, организовать работу двух и более потоков/горутин и в каждом конретном случае ты выбираешь какой элемент синхронизации использовать мютекс или что-то другое, в том числе канал
А что не так с причинно-следственными связями? Давайте я задам несколько наводящих вопросов: Вот возьмём мапу - может ли несколько горутин одновременно добавлять в неё элементы? А в канал они могут одновременно писать? Почему? Если этого недостаточно, можем обсудить подробней в нашем чатике: t.me/+WyjmnP6la_QyYjAy Вести переписку в комментариях не очень удобно.
Если кратко - канал не является примитивом синхронизации. Канал сам использует примитив синхронизации, а именно - встроенный мьютекс. И благодаря этому, разработчику не требуется прикрывать канал внешним мьютексом. Надеюсь, так понятней.
❤ Если у вас есть желание поддержать развитие канала:
www.patreon.com/tuzov
boosty.to/nikolay.tuzov
- 👾 Мой канал в Telegram: t.me/ntuzov
- 🗣 Чат в Telegram: t.me/+zsSZ63wEJDs3NGVi
- 👀 Golang Digest: t.me/golang_digest - мои регулярные подборки интересных материалов по Go
"Сегодня я вам покажу, что каналы на деле устроены легко и просто"
Также видео: 41 минута)))
Просто шутка, не обижаемся)))
101% пушка.
Всё так))
Николай, спасибо за труд! очень круто - понятно, с нужными деталями и без ненужных упрощений!
Долго ждали ) Надеюсь оно того стоит, 40 минут😮 Спасибо!
Думаю, стоит 😚
Я постарался минимизировать количество воды, и очень долго работал над структурой.
Надеюсь, не зря)
Посмотрел на одном дыхании, все четко и без воды👍Еще раз благодарю за этот прекрасный разбор каналов.
Это самый подробный разбор внутренностей каналов, что я смог найти, но при это всё изложено понятным языком. Спасибо большое!
Дуже якісне відео. Автор топчик, кожна деталь розгорнута, за ці 40 хвилин автор розкрив фундамент з яким можна вільно програмувати. Дуже дякую тобі авторе ❤
Спасибо! У вас редкое умение, объяснять сложные вещи простыми словами.
лучшее что я видел по Go в ру туториалах, просто огонь!
Невероятно крутой видос, много полезного материала, объясняемого не то что бы сложным языком. Сейчас как раз готовлюсь к собесу на го дева, очень помогло, спасибо!
Круто, больше таких разборов про нюансы реализации. Это очень интересно и познавательно.
Отличное объяснение 😘 побольше бы таких видео про внутрянку Go!
Спасибо огромное за ролик! ❤
Вот это я понимаю разбор, вот это уровень!
Отлично переплетённые части анимации, уточнений, ухода в самую маковку кодовой базы и ёмких лаконичных выводов!
Как всегда достаточно полно, чтобы понять и главное понять куда двигаться и вовремя сокращено, чтобы не перезагрузить в усмерть - это талан, и я рад, что вы, Старший разработчик категории 2, им обладаете xD
Жду ролик про Планировщик, уверен в качестве!
¡Buena suerte en México, amigo! ❤
Спасибо большое за очень качественный контент! Я еще даже не досмотрел, но уже понимаю, насколько это круто :)
Николай, у вас талант объяснять, и понятно, что требуется очень много времени на подготовку даже небольшого видео
Огромное спасибо за материал! Очень подробно и в то же время доступно объяснено.
Отличная подача материала! Спасибо автору
Это вам не "весь go за 20 минут"
Зато чертовски интересно 😊
Спасибо за столь подробную информацию
Спасибо за труд, Николай! Отличные видео.
Моё уважение! Очень классное объяснение!
Ура Видосик подъехал .Наконец-то каналы!!!
Вау, какое глубокое объяснение. Спасибо! Иллюстрации - моё почтение)
Николай, спасибо за труд! Очень интересно про атомики подробнее
Спасибо! Отличная подача материала. Сначала комиксы и объяснение, затем разбор кода. Респект!
лучшие разборы! огромное спасибо за ваш труд
P.S. еще есть 12-е поле timer, вероятно добавилось в более свежих версиях
Спасибо большое. Читал статьи, документацию, после твоего видео все встало на места.
Спасибо за Ваш труд, очень классное видео!
Спасибо большое, очень понравилось. Желаю успехов вам добрый человек☺️
Классное видео, спасибо! После этого видео стал лучше понимать материал про каналы из других источников, что улучшило понимание в целом
большое спасибо!
было очень полезно и интересно!
Очень находчиво объясняете, видео супер, только по визуалу в некоторых местах штриховка мешала читать буквы
Контент в кайф. Давай еще. Давай, давай, давай.
Очень качественный контент. Заочно поставил лайк!
Отличные видео про внутренности Go! Жаль, нет таких же про интерфейсы, или мне не удалось найти...
Спасибо за видео очень классное видео побольше бы таких
Про то как корутины или потоки работают
Уже думал читать статью, а тут видео вовремя
Очень интересно было бы послушать про concurrency в go простым языком. Не так много доступных ресурсов на эту тему и сама тема достаточно сложна)
большой труд - и очень понятно, благодарю!
Наконец-то понял каналы. Спасибо!
спасибо- у вас талант расказывать про иные измерения инопланетным языком)- вот ненашто даже возразить)
Спасибо большое за видео, это лучшие видео по устройству го что я видел 👍🏻👍🏻👍🏻👍🏻👍🏻
Великолепное объяснение, спасибо огромное!
Ждём видео про планировщик от Тузова 😊
Гениальнейшее видео, все понятно!
Николай, отличное видео.
Жду видео про атомики на разных архитектурах
Большое спасибо за отличные, подробные объяснения! 😍😍😍
Спасибо за огромню работу
Очень достойная обучалка-объяснялка, всё понятно и доступно, спасибо.
Редко я такое пишу.
Молодец! Все наглядно.
Спасибо за видео
Спасибо, крутое объяснение
отличная подача материала, а еще отличные подкасты с крутыми ребятами, не забрасывай, пожалуйста, это
Николай, про атомик очень интересно! Как это все устроено, почему работает именно так.
Большое спасибо!
всё понятно, большое спасибо!
Благодарю, лайк авансом!
Спасибо за лекцию.
Супер! Спасибо огромное!
Видео топ! Но у меня чуть глаза не вытекли, когда резко переключилась IDE на белый фон 😵💫
Блин, очень очень круто и понятно всё рассказал, делай свой курс по Го.)
Спасибо!
Расскажи ещё про разницу string aka []byte. В чем преимущества той и другой структуры, в чем разница, когда использовать , и что происходит при обратной конвертации)
я пока просмотрел только 3 минуты, но мне уже нравится
Так-с, интересно, подписался
Привет! Очень круто! Продолжай!
Вопрос, в какой проге делать такие красивые картинки и схемы?
Схемы в основном тут делаю: excalidraw.com
Но часть приходится рисовать прямо в PowerPoint, тогда меньше возни с анимацией.
Гоферов просто в интернете нахожу.
Очень круто!
Очень спасибо!
Спасибо 🙏🏻❤️
ролик бомба, наверно лучший гофер в рус ютубе
Spasibo!
Большое спасибо за видео, все очень понятно и интересно) Подскажите пожалуйста, где можно ознакомиться с такими подробностями о языке?
Наконец человек не делает вид, а на самом деле знает что такое го
Привет!
Классные у тебя разборы, разбери плз как работает планировщик go 1.20, а то я не нашел нормального урока
Такой ролик как раз в процессе сейчас
Николай, вы ах*eнны!Спасибо за детализацию!
Про select не расказано как паркуется горутина если ни один из кейсов не сработает, ведь каналов в select может быть несколько. И как тогда просыпается горутина если ее будят по любому каналу и как она защищает себя от того, что проснулась, а возможности писать/читать уже нет потому что конкурентная горутина прочитала.
Один момент не доконца понмаю, после парковки горутину, насколько я понимаю работу планировщика, она отправляется в глобальную очередь, соответственно после её пробуждения она возвращается в очередь (fifo/lifo?) на какой-либо процессор или там не все так просто?
Спасибо за видео! Каналы перестали казаться чем-то инопланетным :)
Вот такой вопрос возник: если по сути дела каналы реализованы отдельной библиотекой, и эту структуру может повторить любой разработчик, то зачем в го отдельный синтаксис чтения/записи в канал (оператор
контент - бомба
годно!)
Ооочень крутое видео!
7:40 Секундочку сами данные будут скопированны в канал или ссылки на данные?
Значения, конечно же. Но сами значения тоже могут быть указателями, тогда в канал будут скопированы указатели.
@@nikolay_tuzov Спасибо
а что если в sendq несколько спящих горутин. Условно одна спящая горутина с нужными данными, а другая горутина с абсолютно другими данными, что в этом случае ? Или в качестве спящей горутины берется только самая последняя горутина.
Скажите, в каком редакторе автор демонстрирует этот урок?
Тоже начал бы такой использовать, где столько информации внутренней и sandbox.
Это GoLand - IDE от JetBrains. Он платный, но есть еще VSCode - бесплатный и тоже хороший. Я думаю, там всё это тоже есть.
@@nikolay_tuzov Спасибо!
Николай, как вы считаете, должен ли голангер по-умолчанию уметь работать с PostgreSQL, ElasticSearch, Mongo при собесе?
У меня 90% отказов из-за отсутствия опыта по базам, но я всегда юзал самописные в своих разработках, а впрок учить просто так нет желания, да и не запомнится без долгой практики.
Если канал заполнен и горутина пытается в неё что-то записать, то как именно горутина получает этот поток (переменную), чтобы потом завернуть в очередь sudog?
Николай, какую IDE ты используешь?
GoLand от компании JetBrains
Это топ.
А как Reader-горутина прочитает данные из канала, если Sender перед тем как пойти спать не разблокировал мьютекс
В момент когда горутина блокируется, кто разблокирет мьютекс? Сама горутина перед блокировкой?
Запишите пожалуйста разъясняющий ролик про atomic, а то все дойти до них не могу. За ранее спасибо.
Осталось не понятным, почему isClosed это int32, а не bool или хотя бы int8
Это очень хороший вопрос. Если кратко - потому что пакет атомик не поддерживает bool. Хотя, с 1.19 поддерживает, но на самом деле, под капотом там всем равно int.
Можешь также почитать обсуждение в комментах к моему посту на эту же тему: t.me/ntuzov/26
А если захочется еще глубже копнуть, добро пожаловать в наш чатик Gopher Club, там у нас есть знатоки, которые помогут разобраться даже в самых низкоуровневых вопросах.
Про атомики 100% нужно. Тема сложная, емкая
Поделитесь первоисточником
Их много, я для ролика прорабатываю много статьей, видосов, докладов
thnx ))
топ контент !!!
незаслуженно мало подписчиков и просмотров. и лайков
про атомики интересно было бы
все супер кроме вступления: "каналы - это то что делает язык го таким привлекательным" - мне кажется, что каналы - это топ10 способов создать дэдлок
спасибо за простату) - ты умеешь довести человека до отчаяния)
Шрифт на картинках ужасен
как то странно прозвучало "если вы используете каналы вам не надо задумываться об элементах синхронизации"
что-то не то с причинно-следственными связями
точно также я могу сказать "используя мютекс, мне не надо задумываться о каналах, как и в каком порядке их открывать/закрывать, как избегать записи/чтения в/с нил каналами, как избежать паники при работе с каналами и т.д.и т .п.". Что звучит еще более страшно )))
стоит задача, организовать работу двух и более потоков/горутин
и в каждом конретном случае ты выбираешь какой элемент синхронизации использовать мютекс или что-то другое, в том числе канал
А что не так с причинно-следственными связями?
Давайте я задам несколько наводящих вопросов:
Вот возьмём мапу - может ли несколько горутин одновременно добавлять в неё элементы? А в канал они могут одновременно писать? Почему?
Если этого недостаточно, можем обсудить подробней в нашем чатике: t.me/+WyjmnP6la_QyYjAy
Вести переписку в комментариях не очень удобно.
Если кратко - канал не является примитивом синхронизации. Канал сам использует примитив синхронизации, а именно - встроенный мьютекс. И благодаря этому, разработчику не требуется прикрывать канал внешним мьютексом.
Надеюсь, так понятней.
Каналы без горутин - это что-то из серии велосипед с одним колесом