DEV: Рубиновые тона – Telegram
DEV: Рубиновые тона
3.21K subscribers
145 photos
2 videos
8 files
981 links
Анонсы новых видео о программировании (Ruby/Rails, Solidity/Ethereum, Python, JS и не только), практические советы, обзор полезных инструментов и новости из мира IT
Download Telegram
Это видео продолжает серию уроков о регулярных выражениях (regular expressions). В нём мы поговорим о том, что такое квантификаторы (quantifiers) и зачем они нужны. Кроме того, мы узнаем, чем жадные квантификаторы (greedy) отличаются от ленивых (lazy) и сверхжадных (они же ревнивные, possessive). Звучат эти слова как какие-то оскорбления, но на самом деле это разные принципы работы квантификаторов, правильно используя которые, вы можете добиваться довольно впечатляющих результатов. https://www.youtube.com/watch?v=bAM2-e3hVKg
Blazer - это не только напиток из девяностых, но и инструмент для анализа данных с помощью SQL в приложениях Ruby on Rails 😄 https://github.com/ankane/blazer
Небольшой пост-рассуждение под вечер - это просто мысли вслух, а вовсе не руководство к действию. Скажу честно, я не очень люблю слэнг, в том числе и программистский (возможно, вы заметили, что в видео я стараюсь его по возможности избегать). Дело в том, что большинство терминов и понятий можно вполне адекватно передать нормальным русским языком, а не использовать странные слова-гибриды, заимствованные из других языков - в основном, из английского. При этом я ничего не имею против заимствований как таковых; больше того, это весьма важный аспект в развитии любого языка. Но заимствование, как мне кажется, происходит всё-таки тогда, когда некое понятие невозможно передать на своём языке, либо когда оно за долгие годы укореняется настолько прочно, что не использовать его уже невозможно.

Казалось бы, зачем вообще говорить грамотно, ведь все и так всё понимают? Безусловно, но грамотная речь, на мой взгляд, и мысли приводит в порядок, и держит в тонусе (не позволяет мыслить одними лишь шаблонами и взаимодействовать на неком "автопилоте"), и позволяет более точно доносить свою точку зрения. Можно, конечно, обходиться и 30-40 словами, как Эллочка-людоедочка (ещё и сдабривая их постоянными "это" и "типа"), но ведь такая речь звучит совершенно убого! Бездумное заимствование и обилие слэнговых слов тоже, как мне кажется, не делают речь красивее. Кто-то - в основном, конечно, подростки - использует слэнговые слова потому, что это "модно". Однако такая мода преходяща: никто уже не говорит "превед, кросавчег", хотя буквально 10-12 лет назад это был последний писк моды (возможно, пищала она в ужасе). Следует ли ей следовать? Никакого смысла, если вы постоянно не вращаетесь в соответствующих кругах. Это будет похоже на попытку прохилять за своего - кстати, и вот это слово "прохилять" давным-давно вышло из моды, а в СССР оно значило что-то вроде "пройти" или "быть подходящим".

Это подводит нас к логичному вопросу: надо ли следовать моде и использовать программисткий слэнг, если ты постоянно вращаешься в этой среде? На мой взгляд, нет, но с небольшим примечанием мелким текстом. Например, вместо "баг-репорт" можно сказать "сообщение об ошибке". Вместо "вьюха" (это слово меня убивает) - "представление". Вместо "заапрувил" - "подтвердил". Ну, и так далее. Не поверите, но вас прекрасно поймут; во всяком случае, меня обычно понимают без проблем. Однако (!) знать о существовании подобных слэнговых слов и понимать их значение всё-таки надо, дабы не казаться белой вороной. Но при этом никто не мешает говорить правильно лично вам, и потому в своих видео я буду стараться прививать зрителям подобную привычку. Ну, а следовать ей или нет - это уже ваше дело :)

P.S. Кстати, ведь и программистские слэнговые словечки тоже периодически выходят из моды благодаря быстрому развитию технологий. Кто-то уже и не вспомнит, что "багланд" - это компания "Борланд", которая делала разнообразное ПО, "блинница" - это привод для компакт-дисков, а "флоппи" - это такая дискета (разработчики помоложе их и не использовали).
🤝1
Продолжаем уроки по популярному web-фреймворку Ruby on Rails 6. Сегодня мы узнаем о том, зачем нужны миграции (migrations), как их создавать и применять/откатывать, что такое модели (models), как с ними работать, а также немного поработаем с представлениями в Rails. https://www.youtube.com/watch?v=XUBi7biNgCY
Хотел поделиться впечатлениями о работе с генератором статических сайтов Hugo (за последние пару лет, так скажем).

Что вообще генератор статических сайтов (static site generator, SSG)? Это фреймворк, который позволяет создать одну или несколько "базовых страниц" (layouts) на html/css/js, а также определённое количество материалов (например, статей в блоге), которые обычно написаны на markdown (что-то типа представлений в Rails или других фреймворках), иногда со вставками на html. Такие материалы может создавать и человек, не знакомый с программированием, что довольно удобно. Далее запуск специальной команды SSG собирает из этих "кирпичиков" набор обычных страниц html, которые можно разместить на любом хостинге - например, на firebase (в моём случае это было бесплатно).

Изначально стандартом де-факто для SSG был Jekyll, написанный на Ruby - собственно, GitHub Pages до сих пор его использует. Это хороший фреймворк, но не слишком шустрый, если нужно генерировать множество страниц. Поэтому для последнего проекта я решил задействовать Hugo, написанный на Go https://gohugo.io/, и в целом остался доволен. В Hugo используются все те же концепции, что и в Jekyll, но вот генерация страниц (и перезагрузка "на лету") происходит значительно быстрее, что не может не радовать. В общем, если вам потребуется сделать не слишком сложный проект в духе блога, сайта-визитки, информационного ресурса, то очень советую Hugo.

Кстати, насколько мне известно, блог известного сайта Sitepoint, например, теперь тоже полностью переведён на Hugo. Возможно, в будущем сделаю серию видео по этой технологии, так как тема действительно довольно интересная. P.S. Был также опыт работы с Hexo, но он показался сыроватым, во всяком случае год назад. Да и документации на английском маловато, так как изначально это китайская поделка. Если у кого-то был опыт работы с другими SSG - поделитесь, интересно 🙌
А вы знали, что на Ruby можно писать игры, причём сравнительно сложные? 🎮 Конечно, этот язык не подходит для того, чтобы создать игру уровня Ведьмак 3 или хотя бы такую, в которой можно играть за стражу дворца или эльфов, грабить корованы и набигать (палец вверх, если помнишь этот мем). Однако создать двухмерную бродилку или какой-нибудь квиз вполне реально. Для этого можно использовать MiniGL - библиотеку, которая в свою очередь построена на Gosu (более низкоуровневое решение) https://github.com/victords/minigl Например, один товарищ заморочился так, что написал аналог Super Mario Bros с возможностью сохраняться и даже редактировать уровни (правда, по его словам, ушло на это больше двух лет) https://github.com/victords/super-bombinhas Тема разработки игры на Ruby предложена уже давно и я очень надеюсь, что смогу посвятить ей время в ближайшую неделю, тем более, что первые наработки уже готовы. Пусть это и будет, в основном, развлекательный проект 😃
Chartkick - это, пожалуй, лучшее решение для построения графиков в приложении RoR https://github.com/ankane/chartkick Пробовал использовать это решение сам в двух проектах и остался очень доволен. Кстати, в своё время мне даже довелось написать пару руководств по теме https://www.sitepoint.com/make-easy-graphs-and-charts-on-rails-with-chartkick/ (основы) и https://www.sitepoint.com/graphs-on-rails-chartkick-in-practice/ (более детальные примеры)
Создание разметки для e-mail - это не самый приятный процесс, так как существует множество ограничений и неочевидных моментов. Однако фреймворк MJML позволяет сделать этот процесс куда проще. Я использовал это решение в паре проектов и скажу честно: времени экономится весьма прилично. https://mjml.io/
Некоторое время назад мой коллега и я давали интервью для журнала BuiltIn, и оно наконец-то вышло. https://builtin.com/software-engineering-perspectives/website-localization Здесь мы отвечаем на некоторые общие вопросы, связанные с переводом приложений (неважно, каких) на разные языки 🤓
PaperTrail - это классное решение для отслеживания изменений в моделях. С его помощью можно хранить множество версий одной и той же записи и даже переключаться между этими версиями https://github.com/paper-trail-gem/paper_trail
Продолжаем наши уроки по Ruby on Rails 6! Сегодня поговорим о том, что такое CRUD (спойлер: create, read, update, delete) и узнаем, как позволить пользователю создавать, модифицировать и удалять данные. Также обсудим маршруты и немного затронем partials (частичные представления). https://youtu.be/5ntK2ssu1Ro
Всем привет! Если кто-то вдруг не слышал о решении Ransack, то самое время взять его на вооружение :) Данный gem позволяет создавать сложные формы поиска и определять разнообразные критерии . Это значительно проще, чем писать всю логику самостоятельно! https://github.com/activerecord-hackery/ransack
Всем неспящим посвящается :) Забавно, что этот трек я написал почти ровно год назад. Казалось бы, прошло совсем немного времени, а столько нового произошло. https://www.youtube.com/watch?v=AOO8BRJiVsM
Пока новое видео готовится к выходу (а выходит оно завтра), немного юмора: gem для написания "вежливого" кода на Ruby в канадском стиле (ведь, как все знают, канадцы - самые вежливые люди в мире, в чём и я лично сумел убедиться). Кстати, обратите внимание на исходный код этого решения - он совсем короткий и написан неидеально, но там есть интересные подходы, связанные с метапрограммированием https://github.com/notwaldorf/ruby-eh
В этом видео мы узнаем, как выдавать сообщения об ошибках, а также сообщения об успешных действиях с помощью flash. Также поговорим о стилизации приложения с помощью Bootstrap 5. Самостоятельно советую посмотреть, как flash работает с render. Подсказка: вам может помочь flash.now. https://www.youtube.com/watch?v=8Vej-cKPdKA
Вот буквально сегодня обсуждали разные препроцессоры для представлений, и я понял, что не все знают: ERb - это вовсе не единственный вариант для Rails. Есть, например, https://haml.info/ - он позволяет писать меньше разметки, а его философия напоминает CoffeeScript (важную роль играет вложенность, нет закрывающих ключевых слов и тп). Но лично мне кажется, что ERb несколько более предпочтителен, особенно если в команде есть отдельно верстальщик, который может просто не знать Haml. Хотя, безусловно, это решение тоже очень интересное. А вы как думаете? 🤓 P.S. Новое видео должно выйти завтра
Сегодня поговорим о том, что такое before_action, как обрабатывать ошибки в контроллерах с помощью rescue_from, как использовать concern, а также как выстраивать отношения "один-ко-многим" (one-to-many) с помощью has_many и belongs_to и управлять соответствующими записями. https://www.youtube.com/watch?v=1D_HUuWCamw
❤‍🔥1