DEV: Рубиновые тона – Telegram
DEV: Рубиновые тона
3.21K subscribers
145 photos
2 videos
8 files
981 links
Анонсы новых видео о программировании (Ruby/Rails, Solidity/Ethereum, Python, JS и не только), практические советы, обзор полезных инструментов и новости из мира IT
Download Telegram
Сегодня поговорим о том, что такое 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
Как вы наверное слышали, TravisCI прикрыл лавочку для проектов open source: теперь запускать автотесты бесплатно в любых количествах запрещено. Из-за того, что на их мощностях пытались майнить криптовалюту, они сильно ограничили количество бесплатных билдов, введя концепцию "кредитов". В моём случае (да и для многих других юзеров) это привело к тому, что буквально после нескольких билдов кредиты заканчивались, а затем по прошествии месяца не восполнялись. Поддержка молчит, что делать - неясно. В общем, в связи с этим я попробовать GitHub Actions и могу сказать, что это очень удобная штука, которая тоже позволяет запускать автотесты, выбирая интересующие вас платформы, версии языка и фреймворка. Получается примерно вот такое: https://github.com/bodrovis/lokalise_manager/actions Думаю, в будущем сделать более подробный обзор этого дела
Ruby on Rails 7 уже не за горами, поэтому самое время перейти на новую версию! В этом видео мы обсудим основные изменения в Rails 7, проведём непосредственный процесс миграции, а также обсудим новые интересные функции, которые доступны после обновления. https://www.youtube.com/watch?v=pbagOfP-__I
Друзья, уже несколько человек спрашивали, как реализовать настройки для пользователя в приложении Rails. Безусловно, это можно сделать самому с нуля, но я тут набрёл на вот такое решение (честно скажу, сам не пробовал, но выглядит интересно) https://github.com/ledermann/rails-settings
Забавно, нашёл в твиттере свою запись 2017 года о StimulusJS. Собственно да, сколько-нибудь серьёзной ниши фреймворк так и не занял, но для Rails решение хорошее, особенно если вместе с другими новыми фичами https://i.imgur.com/80NLBNZ.png
В общем, посмотрел тут более подробно, как создаётся новое приложение Rails 7.

По умолчанию для JS используется https://github.com/rails/importmap-rails - эта штука не требует NodeJS и просто подрубает модули напрямую из CDN (хотя может и локально их скачать). То есть не делается ни bundle, ни transpile. Но остаётся открытым вопрос, что тогда делать, если я хочу писать на TS или как обрабатывать Sass (видимо, никак - для sass придётся использовать sassc-rails). Кроме того, там неясно, как проверять наличие новых версий библиотек и их удобно скачивать - короче, пока importmap оставляет больше вопросов, чем ответов.

Но зато если сказать rails new MyApp -j esbuild то будет задействован собственно esbuild, который куда проще, чем Webpack и там можно нормально и Sass, и что угодно использовать. Да, если нужен Sass, то пишем rails new MyApp -j esbuild —css sass
В этот раз мы узнаем, как компилировать смарт-контракты через Hardhat, разворачивать их блокчейн, а также взаимодействовать с ними через библиотеку Ethers.js: отправлять и снимать деньги, а также вызывать другие функции из-под разных аккаунтов. https://youtu.be/K608okBC3L0
👍2