18. Простота 1
# The famous Hello World
# Program is trivial in
# Ruby. Superfluous:
#
# * A "main" method
# * Newline
# * Semicolons
#
# Here is the Code:
puts "Hello World!"
1
https://ruby-lang.org
26. Быстрая разработка
$> heroku run rails console
# Copy + Paste
> class User
def buggy_method
# fixed implementation goes here
end
end
> User.where(buggy: true).each(&:buggy_method)
27. Свойства Ruby
→ Простота
→ Договоренности
→ Приятный, читабельный код
→ Истина в Runtime
→ Быстрая разработка
51. Ruby, который я люблю
хорошо документирован
→ манкипатчинг
→ хаки
→ "...я бы обыкновенно написал XXX, но тут такое дело,
что я лучше напишу YYY..."
→ напиши это комментарием!
52. Ruby, который я люблю
→ Свято следует рубокопу
→ Состоит из небольших модулей
→ Использует dependency injection
→ Не использует состояния
→ Простые (благодаря DI) тесты
→ Не злоупотребляет паттернами
→ Не злоупотребляет метапрограммированием
→ Мутирующий код изолирован и легко читабелен
→ Манкипатчинг четко задокументирован
61. Rails, которые я люблю
Доступ к базе из одного места
class User < ApplicationRecord
has_many :posts
has_one :latest_post,
class_name: 'Post',
-> { order('created_at DESC') }
end
User.limit(10).includes(:latest_post)
67. Rails, которые я люблю
Capybara+Chrome
→ самый "надежный" современный вариант
→ headless mode
68. Rails, которые я люблю
→ Минимум кода в моделях
→ Минимум кода в контроллерах
→ Доступ к базе из одного места
→ Бизнес-логика в модулях
→ Вьюха на React
→ Тесты на RSpec
→ Capybara+Chrome
69. Что бы я хотел в видеть в Ruby
→ Автоформатирование кода
→ Статическую типизацию