DEV: Рубиновые тона – Telegram
DEV: Рубиновые тона
3.21K subscribers
145 photos
2 videos
8 files
981 links
Анонсы новых видео о программировании (Ruby/Rails, Solidity/Ethereum, Python, JS и не только), практические советы, обзор полезных инструментов и новости из мира IT
Download Telegram
Что ж, пока готовится новое видео (а также один музыкальный сюрприз, о котором чуть позже), я стал перебирать свои старые записи в блоге (который, конечно же, тоже сделан на Ruby on Rails, пусть и с весьма допотопным дизайном на плавающих элементах, который мне лень обновить уже лет пять), я набрёл на отчёт о поездке своим ходом на остров Валаам. Возможно, кому-нибудь покажется полезным. 🚶‍♀️Скоро увидимся! http://bodrovis.tech/en/categories/puteshestviya/posts/na-valaam-s-palatkami-ch-1
Забавная тема для Bootstrap в стиле Web 1.0 (осторожно, глаза!) https://code.divshot.com/geo-bootstrap/ 😂
В этом уроке по Ruby on Rails 6 мы узнаем, как выполнять перевод приложения на несколько языков, то есть внедрять интернационализацию (i18n) и локализацию (l10n). Поговорим о том, как сохранять язык в маршруте, сохранять его при переходе между страницами, переключать язык и "угадывать" язык на основе предпочтений пользователя. Также узнаем, что такое TMS и рассмотрим в качестве примере сервис Lokalise. https://www.youtube.com/watch?v=mwEHVNZ1VLM
Я сначала не очень понял, в чём прикол данного изображения https://i.imgur.com/JJL9U1j.png 😂
В этом видео мы поговорим о пяти принципах SOLID, которые частенько спрашивают на собеседовании. Принципы эти придумал известный разработчик Роберт Мартин ещё в 1995 году, и они актуальны до сих пор. Во-первых, мы обсудим их сущность, а, во-вторых, рассмотрим нарушение этих принципов на примерах и то, как ситуацию можно исправить. https://www.youtube.com/watch?v=SGS8i09mn7c
Полезный сайт, где рассказывается, как сделать некоторый типичный функционал типа слайдера без использования JS (только на CSS). http://youmightnotneedjs.com/
А вы знаете, что не devise-ом единым богата область аутентификации в Rails? Существует ещё решение Сlearance - несколько более лёгкое и простое. Я как-то использовал его в паре проектов, в принципе, вполне прилично работает. Если не требуется чего-то сверх-навороченного, то как альтернатива devise сойдёт https://github.com/thoughtbot/clearance Да, между прочим аутентификация и авторизация - это разные вещи 🤓 Первое - это проверка учётных данных и идентификация с их помощью юзера, а второе - проверка, может ли юзер выполнять запрошенное действие
Всем отличной пятницы! 🤪 А какие "типичные" реплики в отношении вас как айтишника (неважно, сисадмина, программиста etc) вас раздражают больше всего? Ну, или не раздражают, а веселят, но всё же звучат при этом очень глупо.

Я начну: "Ты же программист, там принтеры привезли, помоги-ка разгрузить". И ещё: "Ну, раз ты программист, то можешь же мне ноутбук починить?" (хотя именно со сборкой стационарных компьютеров у меня как-то проблем никогда было).

Но это, скорее, шутки, но однажды была вполне реальная история. Прослышав, что я приехал помочь другу со сломавшимся компьютером, его бабушка попросила заодно перепаять радио - а чего там, это ведь то же самое. 😝
Всем привет! Что ж, у меня был небольшой отпуск плюс, вроде как, отмечался ДР, так что по добрым традициям хоббитов я не получаю подарки, а дарю. Небольшой "клип", посвящённый всем моим друзьям, родственникам, студентам и зрителям. 😃 https://www.youtube.com/watch?v=EwKNZ0dXC9E
В этом видео мы поговорим о том, как привязать вопросы и ответы к конкретному пользователю с помощью отношения "один-ко-многим". Также ещё немного обсудим миграции и внедрим функционал отображения аватаров с помощью сервиса Gravatar. Помимо этого, поговорим про функции обратного вызова (callbacks), узнаем, зачем они нужны и как их создавать. https://www.youtube.com/watch?v=ax2aKNVjjto
В этом уроке по Ruby on Rails 6 мы поговорим о том, как создавать и работать с полиморфическими (полиморфными, polymorphic) отношениями. Мы позволим комментировать пользователям сразу и вопросы, и ответы. Кроме того, мы рассмотрим ситуацию, когда на странице отображается сразу множество форм для создания полиморфических ассоциаций и как сделать так, чтобы сообщения об ошибках не дублировались в каждой форме. Помимо этого затронем библиотеку Bullet для оптимизации ваших запросов к БД. https://www.youtube.com/watch?v=1b1JwoblpHQ
И по мотивам изображения выше: https://i.imgur.com/pCp1zRQ.png Всем отличных выходных 🤟
Добавлю сюда для тех, кого нет в чате (хотя почему вас там до сих пор нет? 😄) https://devdocs.io/ Спасибо Илье Барицкому за ссылку 👍
Сегодня будет большой и важный урок по нескольким темам. Мы обсудим отношение многие-ко-многим (many-to-many, has_many through) и узнаем, как создавать такие записи в контроллере на примере тегов для вопросов. Также добавим Select2 для более удобного поиска тегов, сделаем этот поиск асинхронным (с помощью ajax, то есть по типу "search as you type") и добавим новое пространство имён Api, в котором задействуем библиотеку jBuilder.

Обратите внимание, что урок и так получился длинным, поэтому пару вещей я не показал. Советую самостоятельно изучить исходный код этого урока на GitHub для тегов - то есть создание/редактирование вопроов, модель Question и поиск.
https://www.youtube.com/watch?v=hKJKTcc7P9g
По следам урока выше: было предложено использовать вместо select2 библиотеку https://github.com/orchidjs/tom-select Она появилась всего год назад, но выглядит очень круто. Честно сказать, я не следил за библиотеками JS последнее время и её упустил из виду. Так что спасибо Александру за совет, в следующем видео обязательно покажу это решение тоже (да, соответствующий комментарий я вернул, тк YT его опять удалил)
Как говорится, вместо тысячи слов. Почему переменные класса - это зло? Есть простой код:

class Animal
@@count = 0

def self.inc
@@count += 1
end

def self.count
@@count
end
end

class Cat < Animal
@@count = 100

def self.count
@@count
end
end

Animal.inc

puts Animal.count

Что он вернёт? Внезапно, 101. Почему? Потому что @@count затирается в потомке. Surprise! Кстати, этот тест имеется на одном сайте как часть собеседования в Сбербанк. Я бы очень не хотел работать в компании, которая спрашивает вот такое (и ещё интересуется, можно ли вызвать лямбду через ->() {}() и ->(){}[]). Это называется "месье знают толк в извращениях". Я не припомню ни одного случая за много лет, когда подобные знания мне потребовались