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