Обзор Ruby Actor (RActor) | Ruby 3.0
Как и обещал, новое видео посвящено весьма интересной фиче, появившейся в Ruby 3 - она называется RActor и позволяет гораздо более удобно писать приложения с параллельно выполняющимися задачами.
Хотя данный функционал и является экспериментальным, это серьёзный шаг вперёд, и я надеюсь, что скоро RActor доведут до ума и он будет активно использоваться в самых разных проектах Ruby.
Станьте спонсором канала, и вы получите доступ к эксклюзивным бонусам: / @ilyabodrovkrukowski
Аккаунт Ethereum (ETH): 0x719C2d2bcC155c85190f20E1Cc3710F90FAFDa16
Boosty: boosty.to/bodrovis
Patreon: / bodrovis
DonationAlerts: www.donationalerts.com/r/bodr...
Документация и примеры: docs.ruby-lang.org/en/3.0.0/d...
Мой сайт: bodrovis.tech
Пікірлер: 39
Спасибо за видео, очень хорошая, простая и понятная подача, приятно слушать, пожалуйста продолжайте выкладывать видео о руби, очень мало последнее время качественного контента по нему)
@IlyaBodrovKrukowski
3 жыл бұрын
Благодарю, такие отзывы очень важны для понимания того, о чём вообще было бы интересно послушать! На днях будет новое видео про метапрограммирование
👏🏻👏🏻👏🏻
@IlyaBodrovKrukowski
Жыл бұрын
Супер ! Спасибо большое, подписался на канал !
@IlyaBodrovKrukowski
3 жыл бұрын
Благодарю за отзыв и постараюсь радовать контентом почаще!
Спасибо, главное не бросайте делать видосы, очень хорошо получается) Порой сложно найти хоть что-то, а тут еще и такая подача классная.
@IlyaBodrovKrukowski
3 жыл бұрын
Спасибо, новое видео по Ruby будет на днях :)
Спасибо огромное за видео !! Хотелось бы увидеть видео по темам: RSpec & Circle CI (настройка, подключение, фишки), Rack, Actioncable, и как можно больше по метапрограммированию c часто встречающимися ситуациями... и много много много всего чего угодно по руби и рельсах в вашем авторстве !!!! Спасибо Вам за ваш труд !!!!!!
@IlyaBodrovKrukowski
3 жыл бұрын
Рад, что понравилось! Да, постараюсь рассказать эти темы, идея хорошая :)
Подписка без разбору
@IlyaBodrovKrukowski
2 жыл бұрын
:D
Ruby!!!!!) Подписка однозначно, буду следить за вашим каналом.
@IlyaBodrovKrukowski
3 жыл бұрын
Большое спасибо! Ну, у меня и про другие технологии будет, конечно. :)
Спасибо. все доступно.
@IlyaBodrovKrukowski
2 жыл бұрын
На здоровье!
Больше руби! Подхватывайте упавшее знамя!
@IlyaBodrovKrukowski
2 жыл бұрын
Партия говорит надо - мы отвечаем есть!
класс. не ожидал на русском увидеть видосик по ractor :)
@IlyaBodrovKrukowski
3 жыл бұрын
Спасибо, подсказали вот подписчики идейку ;)
отлично объяснили!
@IlyaBodrovKrukowski
2 жыл бұрын
Спасибо!
годный видос, не останавливайся
@IlyaBodrovKrukowski
2 жыл бұрын
Ок, по Ruby ещё много чего на канале имеется ;)
К примеру, если мы ввели 12 чисел разом скажем, и создалось 12 ракторов и они обрабатываются (увеличили sleep на 5 мин), и в этот момент введем 13 число, получается 13 рактор не создастся или упадет с ошибкой? Что пройдет? Спасибо
@IlyaBodrovKrukowski
Жыл бұрын
Он должен создаться, тк всё равно ракторы совсем параллельно работать не могут, насколько я помню
В пайтон есть asyncio и синтаксис async-await для сознания корутин. А что предлагает руби для асинхронности?
@IlyaBodrovKrukowski
2 жыл бұрын
Ну, что-то типа github.com/socketry/async
Это как в Go гоурутины?
@IlyaBodrovKrukowski
3 жыл бұрын
Да, в принципе. Насколько технически они похожи, правда, не скажу, так как специалистом Go себя не считаю, но, судя по документации, суть та же
@ongrustit
3 жыл бұрын
@@IlyaBodrovKrukowski извините за наглость а вы можете привести простой пример как можно сделать совместную работу ractor и методы? К приму один метод выполняет свою работу первый а второй через 3 секунды? Буду благодарен вам за пример.
@IlyaBodrovKrukowski
3 жыл бұрын
Как раз суть в том, чтобы код выполнялся параллельно. Например, есть метод, который принимает как аргумент адрес web-страницы, с которой нужно скачать картинки. Можно создать три рактора и запустить в них этот метод, передав три разных адреса web-страниц. Так три рактора будут выполняться параллельно, то и картинки с трёх страниц должны качаться параллельно. Ну, или есть метод, который читает и обрабатывает файл, и другой метод, который читает и обрабатывает web-страницу. Запускаем их в двух разных ракторах и выполняем обе задачи параллельно, а не одну за другой. Потом уже где-то дальше есть точка синхронизации, которая ждёт завершения этих задач, после чего мы что-то делаем с обработанными данными. Хотя скажу честно - работает рактор не идеально, мягко говоря. Я хотел пример с загрузкой изображений добавить в видео, но там стали вылезать весьма странные баги, поэтому пришлось отказаться. Этот функционал сырой, но, надеюсь, его доведут до ума :)
@ongrustit
3 жыл бұрын
@@IlyaBodrovKrukowski жаль что вы не привели простой пример ((( а я так хотел увидеть (((
@glexx9094
10 ай бұрын
@@IlyaBodrovKrukowski , за 2.5 года изменений нет, не следите? Тема очень интересная, а на практике пока широко не используется?
Если ракторов больше, чем ядер? Процессы плюсуются по уже готовым потокам?
@IlyaBodrovKrukowski
3 жыл бұрын
Если больше, то тогда они должны вставать в очередь на выполнение (выполняться последовательно)
чем это отличается от ruby-thread? require 'thread/pool' pool = Thread.pool(4) 10.times { pool.process { sleep 2 puts 'lol' } } pool.shutdown
@IlyaBodrovKrukowski
2 жыл бұрын
В теории это должно дать большую гибкость, изолированность процессов, плюс процессы более лёгкие. Пока, однако, это только альфа-версия, которую ещё дорабатывать и дорабатывать