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