DEV: Рубиновые тона – Telegram
DEV: Рубиновые тона
3.21K subscribers
145 photos
2 videos
8 files
981 links
Анонсы новых видео о программировании (Ruby/Rails, Solidity/Ethereum, Python, JS и не только), практические советы, обзор полезных инструментов и новости из мира IT
Download Telegram
Что ж, друзья, суббота (хотя у нас тут она рабочая) 😁 Пока готовится новое видео про фоновые задачи и Sidekiq, немного музыки. Саундтрек из фильма, который все прекрасно знают, исполняется в игре по этому же фильму (исполнено нашей небольшой группой). Скоро увидимся 🙌 https://www.youtube.com/watch?v=Ks5dajW2GsU
Очередной урок по Ruby on Rails, в котором мы узнаем, как использовать ActiveJob для обработки фоновых задач. В качестве адаптера будет задействовано популярное решение Sidekiq. Мы не только попробуем отправить письма в фоновом режиме, но и поговорим о вложениях, а также выполним обработку файлов ZIP и Excel в ActiveJob: в частности, реализуем импорт и экспорт пользователей. Также узнаем, как защитить админку Sidekiq с помощью route constraints. https://www.youtube.com/watch?v=NIZ7Am15byo
Небольшой тизер к одному из следующих уроков: хотелось бы поговорить о такой вещи, как pattern matching, обсудить, что это вообще такое, и как теперь этот функционал реализуется в Ruby. Хотя он всё ещё экспериментальный, он позволяет писать довольно элегантный код безо всяких if-elseif-else. Хотя, к сожалению, поддержка pattern matching в Ruby пока довольно ограниченна (c Erlang/Elixir в сравнение не идёт), но всё это большой шаг вперёд.

P.S. Это к вопросу о том, что такое выражения типа x = y + 1
Кстати, если кто не слышал, у всеми любимого fancybox вышла новая версия 4, которая теперь, похоже, не требует jquery. Также предлагается отдельно симпатичная карусель и зум https://fancyapps.com/docs/ui/quick-start
Сегодня поговорим о том, что такое Ruby pattern matching (сопоставление с образцом или сопоставление по образцу). Это будет большой урок, в котором мы узнаем множество интересных вещей. Обсудим, откуда пришла эта фича, как её использовать, какие есть подводные камни и неочевидные моменты, а также как реализовывать сопоставление с образцами собственных классов. Узнаем, как создавать методы deconstruct и deconstruct_keys, а также что такое guard clauses и как их использовать. 👨‍💻 https://www.youtube.com/watch?v=O5VnB_JPfLs
В этом видео мы обсудим сравнительно малоизвестный метод Ruby refine, который позволяет добавлять в существующие классы новые методы (или изменять имеющиеся), но при этом делать это не глобально, а точечно. Также узнаем, чем этот подход отличается от monkey patching и как с его помощью внедрять обратную совместимость для более старых версий Ruby. https://youtu.be/KzIi9TYUOP8
Любопытная аналогия https://i.imgur.com/IWWxRfi.png
В этом видео мы поговорим о модификаторах доступа в Ruby и узнаем, в чём же разница между private, public и protected. Посмотрим все три модификатора на примерах, а также узнаем, как получать списки методов с соответствующими модификаторами. https://www.youtube.com/watch?v=MSniy2jkQDo
Друзья, небольшой мотивирующий пост о том, что участвовать в проектах open source можно и нужно. Когда-то я тоже думал, что это сложно, а мои примитивные работы никому не нужны.

Однако теперь я оглядываюсь назад и понимаю, что решение публиковать собственные библиотеки было правильным. К примеру, недавно я перешёл отметку в 7 миллионов загруженных библиотек (по сравнению с мастодонтами типа Янко это вообще ничто) Ruby https://rubygems.org/profiles/bodrovis (хотя я скажу честно, что первые версии angular_csrf_rails публиковал Джеймс, и он является основателем этого проекта). На npmjs https://www.npmjs.com/~bodrovis на данный момент около миллиона, плюс по мелочи на pypi и hex.pm. Мораль сей басни такова: не нужно стесняться. Даже если какой-то проект окажется не слишком успешным, в этом нет абсолютно ничего страшного. Дерзайте! Скоро увидимся 🤟
Генератор эффекта "стекла" для CSS. Хотя, по факту, это просто обычный блюр (к сожалению, поддержки размытию по Гауссу и некоторые другие фишки пока так и не завезли) https://css.glass/
В этом стриме мы обсудим все вопросы, связанные с наследованием в Solidity и узнаем о некоторых ограничениях. Затронем ключевые слова virtual, override, constructor и ряд других вещей. https://youtu.be/6LgT7bs6T8w
Ну, на всякий случай поясню. Грубо говоря, всякие роботы-пылесосы и прочие автоматизированные сборщики каких-нибудь авто нам кажутся интересными и даже милыми (ну, кто не пытался катать своего кота на роботы-пылесосе). Робот, который идеально копирует движения и эмоции человека тоже будет восприниматься положительно, ведь он почти такой же как мы. Однако если мы видим некое существо, которое очень похоже на человека и двигается *почти* как человек, но при этом в его мимике и движениях заметны какие-то странные и незначительные особенности, то многих людей это подсознательно пугает и заставляет напрягаться. Грубо говоря, нам кажется, что кто-то надел маску человека и пытается нас обмануть. Это и есть эффект зловещей долины, который проще всего показать на графике https://ru.wikipedia.org/wiki/%D0%97%D0%BB%D0%BE%D0%B2%D0%B5%D1%89%D0%B0%D1%8F_%D0%B4%D0%BE%D0%BB%D0%B8%D0%BD%D0%B0#/media/%D0%A4%D0%B0%D0%B9%D0%BB:Mori_Uncanny_Valley_ru.noscript
Друзья, скоро выходит первая стабильная версия Rails 7, в которой появляются некоторые новые фичи, но, по большому счёту, никаких больших изменений нет. Единственное: иначе предлагается работать с JS. Если раньше задействовался Webpacker, то теперь по умолчанию он отсутствует, а установка Node.js более не требуется. Вместо этого используется importmap. Что из этого следует? А следует то, что все уже записанные уроки остаются актуальными. Единственный момент: если есть желание создать приложение Rails с такой же структурой, как и в первом уроке (то есть с подключенным Webpacker), нужно использовать команду rails new YourApp -j webpack --skip-hotwire. Про новый подход к JS мы ещё обязательно поговорим. Также в ближайшее время обсудим новые фичи Rails 7 и попробуем перейти на эту версию
Друзья, если вдруг кто-то всё ещё использует мою библиотеку jquery-slick-rails для подключения карусели, с сегодняшнего дня она официально считается устаревшей. Подробности здесь: https://github.com/bodrovis/jquery-slick-rails#deprecation-notice