В этом уроке по Ruby on Rails 6 мы узнаем, как выполнять перевод приложения на несколько языков, то есть внедрять интернационализацию (i18n) и локализацию (l10n). Поговорим о том, как сохранять язык в маршруте, сохранять его при переходе между страницами, переключать язык и "угадывать" язык на основе предпочтений пользователя. Также узнаем, что такое TMS и рассмотрим в качестве примере сервис Lokalise. https://www.youtube.com/watch?v=mwEHVNZ1VLM
YouTube
Ruby on Rails 6/7, урок #13 | Перевод, интернационализация, локализация (i18n, l10n)
В этом уроке по Ruby on Rails 6/7 мы узнаем, как выполнять перевод приложения на несколько языков, то есть внедрять интернационализацию (i18n) и локализацию (l10n). Поговорим о том, как сохранять язык в маршруте, сохранять его при переходе между страницами…
Я сначала не очень понял, в чём прикол данного изображения https://i.imgur.com/JJL9U1j.png 😂
В этом видео мы поговорим о пяти принципах SOLID, которые частенько спрашивают на собеседовании. Принципы эти придумал известный разработчик Роберт Мартин ещё в 1995 году, и они актуальны до сих пор. Во-первых, мы обсудим их сущность, а, во-вторых, рассмотрим нарушение этих принципов на примерах и то, как ситуацию можно исправить. https://www.youtube.com/watch?v=SGS8i09mn7c
YouTube
Принципы SOLID | На примере Ruby
В этом видео мы поговорим о пяти принципах SOLID, которые частенько спрашивают на собеседовании. Принципы эти придумал известный разработчик Роберт Мартин ещё в 1995 году, и они актуальны до сих пор. Во-первых, мы обсудим их сущность, а, во-вторых, рассмотрим…
Полезный сайт, где рассказывается, как сделать некоторый типичный функционал типа слайдера без использования JS (только на CSS). http://youmightnotneedjs.com/
Youmightnotneedjs
You Might Not Need JavaScript
Examples of common UI elements and interactions with HTML and CSS alone.
А вы знаете, что не devise-ом единым богата область аутентификации в Rails? Существует ещё решение Сlearance - несколько более лёгкое и простое. Я как-то использовал его в паре проектов, в принципе, вполне прилично работает. Если не требуется чего-то сверх-навороченного, то как альтернатива devise сойдёт https://github.com/thoughtbot/clearance Да, между прочим аутентификация и авторизация - это разные вещи 🤓 Первое - это проверка учётных данных и идентификация с их помощью юзера, а второе - проверка, может ли юзер выполнять запрошенное действие
GitHub
GitHub - thoughtbot/clearance: Rails authentication with email & password.
Rails authentication with email & password. Contribute to thoughtbot/clearance development by creating an account on GitHub.
Всем отличной пятницы! 🤪 А какие "типичные" реплики в отношении вас как айтишника (неважно, сисадмина, программиста etc) вас раздражают больше всего? Ну, или не раздражают, а веселят, но всё же звучат при этом очень глупо.
Я начну: "Ты же программист, там принтеры привезли, помоги-ка разгрузить". И ещё: "Ну, раз ты программист, то можешь же мне ноутбук починить?" (хотя именно со сборкой стационарных компьютеров у меня как-то проблем никогда было).
Но это, скорее, шутки, но однажды была вполне реальная история. Прослышав, что я приехал помочь другу со сломавшимся компьютером, его бабушка попросила заодно перепаять радио - а чего там, это ведь то же самое. 😝
Я начну: "Ты же программист, там принтеры привезли, помоги-ка разгрузить". И ещё: "Ну, раз ты программист, то можешь же мне ноутбук починить?" (хотя именно со сборкой стационарных компьютеров у меня как-то проблем никогда было).
Но это, скорее, шутки, но однажды была вполне реальная история. Прослышав, что я приехал помочь другу со сломавшимся компьютером, его бабушка попросила заодно перепаять радио - а чего там, это ведь то же самое. 😝
Всем привет! Что ж, у меня был небольшой отпуск плюс, вроде как, отмечался ДР, так что по добрым традициям хоббитов я не получаю подарки, а дарю. Небольшой "клип", посвящённый всем моим друзьям, родственникам, студентам и зрителям. 😃 https://www.youtube.com/watch?v=EwKNZ0dXC9E
YouTube
Dog & Butterfly - Heart cover
"Dog & Butterfly" was originally recorded by the "Heart" rock band. We created this track as a tribute to this great band.
В этом видео мы обсудим пять принципов SOLID на примере языка Python и посмотрим, как переписать программный код с использованием этих принципов.
https://youtu.be/C8fhcHqnqyI
https://youtu.be/C8fhcHqnqyI
YouTube
Принципы SOLID | На примере Python
В этом видео мы обсудим пять принципов SOLID на примере языка Python и посмотрим, как переписать программный код с использованием этих принципов.
Таймкоды:
00:00 Введение
00:45 Кто придумал SOLID?
01:40 Принцип Single responsibility (SRP)
05:10 Принцип…
Таймкоды:
00:00 Введение
00:45 Кто придумал SOLID?
01:40 Принцип Single responsibility (SRP)
05:10 Принцип…
В этом видео мы поговорим о том, как привязать вопросы и ответы к конкретному пользователю с помощью отношения "один-ко-многим". Также ещё немного обсудим миграции и внедрим функционал отображения аватаров с помощью сервиса Gravatar. Помимо этого, поговорим про функции обратного вызова (callbacks), узнаем, зачем они нужны и как их создавать. https://www.youtube.com/watch?v=ax2aKNVjjto
YouTube
Ruby on Rails 6/7, урок #14 | Отношения, callbacks, gravatar
В этом видео мы поговорим о том, как привязать вопросы и ответы к конкретному пользователю с помощью отношения "один-ко-многим". Также ещё немного обсудим миграции и внедрим функционал отображения аватаров с помощью сервиса Gravatar. Помимо этого, поговорим…
В этом уроке по Ruby on Rails 6 мы поговорим о том, как создавать и работать с полиморфическими (полиморфными, polymorphic) отношениями. Мы позволим комментировать пользователям сразу и вопросы, и ответы. Кроме того, мы рассмотрим ситуацию, когда на странице отображается сразу множество форм для создания полиморфических ассоциаций и как сделать так, чтобы сообщения об ошибках не дублировались в каждой форме. Помимо этого затронем библиотеку Bullet для оптимизации ваших запросов к БД. https://www.youtube.com/watch?v=1b1JwoblpHQ
YouTube
Ruby on Rails 6/7, урок #15 | Полиморфические отношения и Bullet
В этом уроке по Ruby on Rails 6/7 мы поговорим о том, как создавать и работать с полиморфическими (полиморфными, polymorphic) отношениями. Мы позволим комментировать пользователям сразу и вопросы, и ответы. Кроме того, мы рассмотрим ситуацию, когда на странице…
И по мотивам изображения выше: https://i.imgur.com/pCp1zRQ.png Всем отличных выходных 🤟
Добавлю сюда для тех, кого нет в чате (хотя почему вас там до сих пор нет? 😄) https://devdocs.io/ Спасибо Илье Барицкому за ссылку 👍
devdocs.io
DevDocs API Documentation
Fast, offline, and free documentation browser for developers. Search 100+ docs in one web app: HTML, CSS, JavaScript, PHP, Ruby, Python, Go, C, C++…
Сегодня будет большой и важный урок по нескольким темам. Мы обсудим отношение многие-ко-многим (many-to-many, has_many through) и узнаем, как создавать такие записи в контроллере на примере тегов для вопросов. Также добавим Select2 для более удобного поиска тегов, сделаем этот поиск асинхронным (с помощью ajax, то есть по типу "search as you type") и добавим новое пространство имён Api, в котором задействуем библиотеку jBuilder.
Обратите внимание, что урок и так получился длинным, поэтому пару вещей я не показал. Советую самостоятельно изучить исходный код этого урока на GitHub для тегов - то есть создание/редактирование вопроов, модель Question и поиск.
https://www.youtube.com/watch?v=hKJKTcc7P9g
Обратите внимание, что урок и так получился длинным, поэтому пару вещей я не показал. Советую самостоятельно изучить исходный код этого урока на GitHub для тегов - то есть создание/редактирование вопроов, модель Question и поиск.
https://www.youtube.com/watch?v=hKJKTcc7P9g
YouTube
Ruby on Rails 6/7, урок #16 | Многие-ко-многим, теги, select2, ajax и поиск, jBuilder
Сегодня будет большой и важный урок по нескольким темам. Мы обсудим отношение многие-ко-многим (many-to-many, has_many through) и узнаем, как создавать такие записи в контроллере на примере тегов для вопросов. Также добавим Select2 для более удобного поиска…
По следам урока выше: было предложено использовать вместо select2 библиотеку https://github.com/orchidjs/tom-select Она появилась всего год назад, но выглядит очень круто. Честно сказать, я не следил за библиотеками JS последнее время и её упустил из виду. Так что спасибо Александру за совет, в следующем видео обязательно покажу это решение тоже (да, соответствующий комментарий я вернул, тк YT его опять удалил)
GitHub
GitHub - orchidjs/tom-select: Tom Select is a lightweight (~16kb gzipped) hybrid of a textbox and select box. Forked from selectize.js…
Tom Select is a lightweight (~16kb gzipped) hybrid of a textbox and select box. Forked from selectize.js to provide a framework agnostic autocomplete widget with native-feeling keyboard navigation....
Как говорится, вместо тысячи слов. Почему переменные класса - это зло? Есть простой код:
class AnimalЧто он вернёт? Внезапно, 101. Почему? Потому что
@@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
@@count затирается в потомке. Surprise! Кстати, этот тест имеется на одном сайте как часть собеседования в Сбербанк. Я бы очень не хотел работать в компании, которая спрашивает вот такое (и ещё интересуется, можно ли вызвать лямбду через ->() {}() и ->(){}[]). Это называется "месье знают толк в извращениях". Я не припомню ни одного случая за много лет, когда подобные знания мне потребовалисьИ ещё немного о переменных класса. История выше повторится, если, например, мы сделаем два разных файла animal.rb и cat.rb с кодом:
Далее сделаем файл main.rb:
На экран опять-таки будет выдано 101 🤓
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
Далее сделаем файл main.rb:
require_relative 'animal'
require_relative 'cat'
Animal.inc
puts Animal.count
На экран опять-таки будет выдано 101 🤓
Моя новая статья о тестировании локализации (обзор) https://lokalise.com/blog/localization-testing/
Lokalise
Localization testing: What is it & how to do it (+sample project)
In this article we will discuss what localization testing is, what steps it involves, and what important things you should consider.