Внутреннее устройство Rails/Rack-приложения
Мастер-класс для желающих познакомится с внутренним устройством рельс, но не знающих с чего начать. Разберем взаимодействие частей фреймворка между собой, с веб-сервером и с операционной системой. Это поможет проще разбираться с новыми гемами, библиотеками и находить проблемы в проекте.
28 февраля (вт) 19:00 мск
Живое участие в эфире - бесплатно
https://thinknetica.com/pro/mk_rails_inside
Мастер-класс для желающих познакомится с внутренним устройством рельс, но не знающих с чего начать. Разберем взаимодействие частей фреймворка между собой, с веб-сервером и с операционной системой. Это поможет проще разбираться с новыми гемами, библиотеками и находить проблемы в проекте.
28 февраля (вт) 19:00 мск
Живое участие в эфире - бесплатно
https://thinknetica.com/pro/mk_rails_inside
ActionText в Ruby on Rails. Обзор первого знакомства
Action Text - модуль в Ruby on Rails, дающий возможность работать с текстом. Он включает в себя WYSIWYG редактор Trix. Можно писать и редактировать текст, ссылки, цитаты, списки, сохранять изображения и файлы.
https://habr.com/ru/post/720462/
Action Text - модуль в Ruby on Rails, дающий возможность работать с текстом. Он включает в себя WYSIWYG редактор Trix. Можно писать и редактировать текст, ссылки, цитаты, списки, сохранять изображения и файлы.
https://habr.com/ru/post/720462/
Forwarded from Ruby & Elixir Job | Jooby.dev
Отчет по рынку труда 2022-2023 гг.
@jooby_analytics
Онлайн презентация https://docs.google.com/presentation/d/1jpw2P62IpGU3OgFzoD8h6r96fETW0HoSCK3Wj04Exww/edit?usp=sharing
Обсуждение в чате - https://t.me/joinchat/AAAAAElBokyJQXBkb19D-w
@jooby_analytics
Онлайн презентация https://docs.google.com/presentation/d/1jpw2P62IpGU3OgFzoD8h6r96fETW0HoSCK3Wj04Exww/edit?usp=sharing
Обсуждение в чате - https://t.me/joinchat/AAAAAElBokyJQXBkb19D-w
Курс по Ruby+Rails. Часть 7. Модели и ActiveRecord
На одной из прошлых лекций вы познакомились с паттерном MVC – Model, View, Controller. И сегодня пришло время подробней разобраться в том, что прячется за первой буквой этой аббревиатуры.
https://habr.com/ru/company/evrone/blog/722858/
На одной из прошлых лекций вы познакомились с паттерном MVC – Model, View, Controller. И сегодня пришло время подробней разобраться в том, что прячется за первой буквой этой аббревиатуры.
https://habr.com/ru/company/evrone/blog/722858/
Хабр
Курс по Ruby+Rails. Часть 7. Модели и ActiveRecord
На одной из прошлых лекций вы познакомились с паттерном MVC – Model, View, Controller. И сегодня пришло время подробней разобраться в том, что прячется за первой буквой этой аббревиатуры. M – это...
Forwarded from Evil Martians
Практически каждый рубист знает RuboCop — это линтер и инструмент для форматирования в Ruby. Но есть множество проектов, в которых единый стиль не был внедрен с самого начала (обычно это крупные и долгоживущие проекты). Исправить это будет сложно.
В этом посте-римейке Head of Backend Владимир Дементьев показывает, как мы добавляем стилизацию кода в такие Ruby/Rails-проекты с помощью RuboCop и Standard.
https://evilmartians.com/chronicles/rubocoping-with-legacy-bring-your-ruby-code-up-to-standard
В этом посте-римейке Head of Backend Владимир Дементьев показывает, как мы добавляем стилизацию кода в такие Ruby/Rails-проекты с помощью RuboCop и Standard.
https://evilmartians.com/chronicles/rubocoping-with-legacy-bring-your-ruby-code-up-to-standard
Docker для приложения Rails 7
Широкое распространение развертывания приложений с использованием Docker стало причиной написания этой статьи.
Попробуем подойти к этому вопросу с практической стороны и решить задачу без наличия каких либо специфичных знаний в этой области.
https://habr.com/ru/post/726438/
Широкое распространение развертывания приложений с использованием Docker стало причиной написания этой статьи.
Попробуем подойти к этому вопросу с практической стороны и решить задачу без наличия каких либо специфичных знаний в этой области.
https://habr.com/ru/post/726438/
Forwarded from Evrone IT meetups
Ruby meetup (Online)
1. Что такое distroless-образы, как их использовать в современной разработке и зачем понадобилось их применять в Самокате - Артем Соломатин, Samokat.tech
Расскажем в докладе: что такое distroless-образы, зачем нужны, плюсы/минусы, как сработали для нас в Самокате (примеры). Такой подход мы встречали не так часто у коллег из индустрии, хотим подсветить потенциальную пользу от его применения в продакшн-окружении.
2. RoR vs Go 2022 - Александр Елистратов, BGaming
Анализ Ruby on Rails vs GoLang: подход к разработке, библиотеки, фреймворки, личный опыт использования на коммерческих проектах. Раскрытие данной темы может помочь людям лучше понять различия данных технологий: их зоны применения, простоту перехода с Ruby на Go, особенности ООП на Go.
➖➖➖
🗓 19 апреля, начало в 19:00 мск, Среда
🌐 ОНЛАЙН
✅ Регистрация на мероприятие
1. Что такое distroless-образы, как их использовать в современной разработке и зачем понадобилось их применять в Самокате - Артем Соломатин, Samokat.tech
Расскажем в докладе: что такое distroless-образы, зачем нужны, плюсы/минусы, как сработали для нас в Самокате (примеры). Такой подход мы встречали не так часто у коллег из индустрии, хотим подсветить потенциальную пользу от его применения в продакшн-окружении.
2. RoR vs Go 2022 - Александр Елистратов, BGaming
Анализ Ruby on Rails vs GoLang: подход к разработке, библиотеки, фреймворки, личный опыт использования на коммерческих проектах. Раскрытие данной темы может помочь людям лучше понять различия данных технологий: их зоны применения, простоту перехода с Ruby на Go, особенности ООП на Go.
➖➖➖
🗓 19 апреля, начало в 19:00 мск, Среда
🌐 ОНЛАЙН
✅ Регистрация на мероприятие
Build a Blog with Rails Part 18: How to Upgrade Ruby Versions in your Rails app
https://youtu.be/hDBgPPmd8fk
https://youtu.be/hDBgPPmd8fk
YouTube
Build a Blog with Rails Part 18: How to Upgrade Ruby Versions in your Rails app
► Check out https://gorails.com for Pro episodes and more!
► SaaS business template for Ruby on Rails with built-in features like Payments, Teams, and much more: https://jumpstartrails.com
► Ruby on Rails hosting with Hatchbox.io: https://hatchbox.io
…
► SaaS business template for Ruby on Rails with built-in features like Payments, Teams, and much more: https://jumpstartrails.com
► Ruby on Rails hosting with Hatchbox.io: https://hatchbox.io
…
Forwarded from Evil Martians
Head of Backend Владимир Дементьев снова на RailsConf! Теперь с докладом про слоистый подход в кулинарии и… Rails.
Базовый архитектурный рецепт Rails — MVC, три ингредиента или слоя, чтобы «приготовить» веб-приложение. Чем больше и тяжелее становятся слои, тем сложнее с таким «блюдом» работать. Нужно усовершенствовать наш рецепт, но как? Узнаем на RailsConf, 24–26 апреля, Атланта, США
https://evilmartians.com/events/rails-as-a-piece-of-birthday-cake
Базовый архитектурный рецепт Rails — MVC, три ингредиента или слоя, чтобы «приготовить» веб-приложение. Чем больше и тяжелее становятся слои, тем сложнее с таким «блюдом» работать. Нужно усовершенствовать наш рецепт, но как? Узнаем на RailsConf, 24–26 апреля, Атланта, США
https://evilmartians.com/events/rails-as-a-piece-of-birthday-cake
evilmartians.com
Rails as a piece of birthday cake by Evil Martians
How to extract from, or add new layers to a Rails application? What considerations should be taken into account? Why is rainbow cake the king of layered cakes? Join my talk to learn about the layering Rails approach to keep applications healthy and maintainable.
Стучим по рельсам
- Улучшение custom namespaces в Rails 7.1
- Байка про nil
- Rails и Falcon на OpenBSD
https://digest.evrone.ru/20230403
- Улучшение custom namespaces в Rails 7.1
- Байка про nil
- Rails и Falcon на OpenBSD
https://digest.evrone.ru/20230403
Сложнее, чем кажется
В майском выпуске мы разберёмся, почему тесты в CI глючат чаще, чем при локальных прогонах. Также расскажем о подводных камнях при парсинге CSV-файлов и предупреждениях об устаревании.
- Почему тесты в CI глючат чаще
- Обманчиво простой парсинг CSV
- Не привыкайте к deprecation warnings
https://digest.evrone.ru/20230502
В майском выпуске мы разберёмся, почему тесты в CI глючат чаще, чем при локальных прогонах. Также расскажем о подводных камнях при парсинге CSV-файлов и предупреждениях об устаревании.
- Почему тесты в CI глючат чаще
- Обманчиво простой парсинг CSV
- Не привыкайте к deprecation warnings
https://digest.evrone.ru/20230502
Под капотом Ruby on Rails
Онлайн воркшоп для разработчиков, которые хотят быстрее пилить фичи и находить ошибки в приложениях на Ruby on Rails.
Пошагово разберем работу фреймворка, в том числе:
- как обрабатывается http запрос;
- как формируется html с ответом;
- как собираются ассеты для фронтенда;
- как на рельсах можно сделать современное веб-приложение с динамическим контентом.
А ещё посмотрим как устроены популярные гемы, которыми вы пользуетесь каждый день.
3 дня по 2 часа
- 15 мая (пн) 19:00 мск
- 18 мая (чт) 19:00 мск
- 22 мая (пн) 19:00 мск
https://thinknetica.com/pro/workshop_rails_under_hood
Онлайн воркшоп для разработчиков, которые хотят быстрее пилить фичи и находить ошибки в приложениях на Ruby on Rails.
Пошагово разберем работу фреймворка, в том числе:
- как обрабатывается http запрос;
- как формируется html с ответом;
- как собираются ассеты для фронтенда;
- как на рельсах можно сделать современное веб-приложение с динамическим контентом.
А ещё посмотрим как устроены популярные гемы, которыми вы пользуетесь каждый день.
3 дня по 2 часа
- 15 мая (пн) 19:00 мск
- 18 мая (чт) 19:00 мск
- 22 мая (пн) 19:00 мск
https://thinknetica.com/pro/workshop_rails_under_hood
Курс по Ruby+Rails. Часть 8. Модели и первые шаги
Миграции — это механизм ActiveRecord, который позволяет вносить изменения в структуру базы данных: создавать и удалять таблицы, переименовывать, добавлять и удалять поля. Так как в них описываются все изменения, они обеспечивают консистентность структуры БД. Они, как и модели, представляют собой классы, написанные на Ruby и хранящиеся в папке db/migrate. Каждая миграция определяется временной меткой, с которой начинается имя файла. Эти метки должны быть уникальны, так как используются для контроля миграций в таблице schema_migrations, которая хранит все выполненные миграции. Эти метки указывают на момент создания миграции и позволяют отслеживать хронологию их применения, что необходимо, например, в случае разворачивания приложения на новом сервере.
https://habr.com/ru/companies/evrone/articles/735250/
Миграции — это механизм ActiveRecord, который позволяет вносить изменения в структуру базы данных: создавать и удалять таблицы, переименовывать, добавлять и удалять поля. Так как в них описываются все изменения, они обеспечивают консистентность структуры БД. Они, как и модели, представляют собой классы, написанные на Ruby и хранящиеся в папке db/migrate. Каждая миграция определяется временной меткой, с которой начинается имя файла. Эти метки должны быть уникальны, так как используются для контроля миграций в таблице schema_migrations, которая хранит все выполненные миграции. Эти метки указывают на момент создания миграции и позволяют отслеживать хронологию их применения, что необходимо, например, в случае разворачивания приложения на новом сервере.
https://habr.com/ru/companies/evrone/articles/735250/
Хабр
Курс по Ruby+Rails. Часть 8. Модели и первые шаги
Миграции — это механизм ActiveRecord, который позволяет вносить изменения в структуру базы данных: создавать и удалять таблицы, переименовывать, добавлять и удалять поля. Так как в них описываются все...
Подключаем RuStore оплаты для вашего Ruby-приложения
Всем привет! В этой статье я и мой коллега Рустем расскажем о том, как мы реализуем оплаты в наших проектах на Ruby On Rails на примере платформы RuStore, а также поделимся разработанной библиотекой для взаимодействия с её API.
https://habr.com/ru/companies/joydev/articles/736756/
Всем привет! В этой статье я и мой коллега Рустем расскажем о том, как мы реализуем оплаты в наших проектах на Ruby On Rails на примере платформы RuStore, а также поделимся разработанной библиотекой для взаимодействия с её API.
https://habr.com/ru/companies/joydev/articles/736756/
Forwarded from Metaprogramming
Хроники смерти Ruby: первоисточник (1/6)
Сейчас можно считать сложившимся мнением среди настоящих софтверных инженеров, привыкших получать информацию из третьих рук и доверять экспертному мнению профессиональных IT-журналистов, что Ruby умирает (вариант: уже умер).
Интересно проследить историческую перспективу развития вопроса.
Впервые поднял тему, взявши сразу быка за рога, некий Jeff Cogswell в статье от 2014 года с недвусмысленным названием "5 языков программирования, назначенных умереть" ("5 Programming Languages Marked for Death").
Раздел про Ruby начинается с предложения, пытающегося подчеркнуть для читателей, насколько автор в теме: "всего десять лет назад, Руби был на пике моды [по Руби все сходили с ума]". Напомню, десять лет назад от момента написания статьи был 2004 год. Два года до выхода первой версии Ruby on Rails. Ruby вообще никто не знал, это был хоббийный проект нескольких неизвестных японских разработчиков из академических кругов.
Но всё же за что Джефф приговорил Ruby?
Утверждает, что, мол, "мы, люди, которые выросли на С-подобном синтаксисе, путаемся и спотыкаемся при изучении того, как работает Ruby". Дальше приводит два примера, в чём профессиональные С-программисты путаются: "hello, world" и функция для вычисления факториала:
Дальше в статье приводится типовой аргумент "про Твиттер": "все любят язык, а вот Твиттер переписал весь проект с Ruby, т.к. не хватило производительности".
Для динамического языка, вообще говоря, нет ничего позорного в эволюции проекта вида "быстро написали, потом переписали на статическом языке". Это нормальное и даже целевое применение технологии. Благодаря этому Твиттер смог получить первых пользователей и, не застряв в болоте Java-разработки, заработать денег на дальнейшее развитие. Закономерный ход типовой эволюции стартапа. Но примечательно здесь то, что второго примера, кроме Твиттера, такой эволюции для Ruby никогда не приводят. Проектов на Rails сколько угодно любых размеров, а вот примеров отказа от технологии единицы. То есть в плане производительности Ruby/Rails всех, по большому счёту, устраивает.
Итак, Джефф пишет, с лёгкой иронией и играя словами, что в 2011 году Ruby уже, в мыслях автора, умер. В тот же год в реальном мире разработчик языка, Юкихиро Матсумото, был принят на руководящую техническую позицию в Heroku, недавно закрывшего сделку по продаже компании (2010) за $200 млн.
Heroku начал свой путь как система развёртывания и хостинга Ruby-приложений. Так сказать, от Ruby-разработчиков для Ruby-разработчиков. И так лихо сделал и реализовал ставку на умирающий язык, что за три года из "гаражного стартапа" превратился в одного из лидеров начавшейся индустрии "контейнерных-облачных хостингов".
В то время крупнейшие компании практически одновременно начали "гонку вооружений" за раздел только начавшего появляться (но уже заранее понятно, что сулящего огромные прибыли) рынка "цифровых облаков". Amazon запускает AWS (2006); Google – Cloud Platform (2008); Microsoft, спохватившись позднее всех, Azure (2010). В разгар битвы слона, кита и бегемота без лишнего шума и пыли откусывает значительную часть пирога Heroku (2007-2010), который практически сразу выкупает разработчик CRM-систем Salesforce (2010). Актив не совсем профильный, но Salesforce верно рассчитала, что дело того стоит, да и цена сделки, в масштабе разворачивающихся событий, копеечная. Благодаря своей прозорливости Salesforce до сих пор борется с "облачными конкурентами" более чем на равных. Heroku остаётся обособленным подразделением, продолжающим развивать платформу под крылом материнской компании.
#programming #ruby
Сейчас можно считать сложившимся мнением среди настоящих софтверных инженеров, привыкших получать информацию из третьих рук и доверять экспертному мнению профессиональных IT-журналистов, что Ruby умирает (вариант: уже умер).
Интересно проследить историческую перспективу развития вопроса.
Впервые поднял тему, взявши сразу быка за рога, некий Jeff Cogswell в статье от 2014 года с недвусмысленным названием "5 языков программирования, назначенных умереть" ("5 Programming Languages Marked for Death").
Раздел про Ruby начинается с предложения, пытающегося подчеркнуть для читателей, насколько автор в теме: "всего десять лет назад, Руби был на пике моды [по Руби все сходили с ума]". Напомню, десять лет назад от момента написания статьи был 2004 год. Два года до выхода первой версии Ruby on Rails. Ruby вообще никто не знал, это был хоббийный проект нескольких неизвестных японских разработчиков из академических кругов.
Но всё же за что Джефф приговорил Ruby?
Утверждает, что, мол, "мы, люди, которые выросли на С-подобном синтаксисе, путаемся и спотыкаемся при изучении того, как работает Ruby". Дальше приводит два примера, в чём профессиональные С-программисты путаются: "hello, world" и функция для вычисления факториала:
puts 'Bye bye, Miss American Ruby! Drove my Chevy to the Levie…'Текст примеров понятен даже человеку, который вообще не умеет программировать.
puts '2011 was the day that Ruby died, yeah…'
def fact(n)
if n == 0
1
else
n * fact(n-1)
end
end
puts fact(ARGV[0].to_i)
Дальше в статье приводится типовой аргумент "про Твиттер": "все любят язык, а вот Твиттер переписал весь проект с Ruby, т.к. не хватило производительности".
Для динамического языка, вообще говоря, нет ничего позорного в эволюции проекта вида "быстро написали, потом переписали на статическом языке". Это нормальное и даже целевое применение технологии. Благодаря этому Твиттер смог получить первых пользователей и, не застряв в болоте Java-разработки, заработать денег на дальнейшее развитие. Закономерный ход типовой эволюции стартапа. Но примечательно здесь то, что второго примера, кроме Твиттера, такой эволюции для Ruby никогда не приводят. Проектов на Rails сколько угодно любых размеров, а вот примеров отказа от технологии единицы. То есть в плане производительности Ruby/Rails всех, по большому счёту, устраивает.
Итак, Джефф пишет, с лёгкой иронией и играя словами, что в 2011 году Ruby уже, в мыслях автора, умер. В тот же год в реальном мире разработчик языка, Юкихиро Матсумото, был принят на руководящую техническую позицию в Heroku, недавно закрывшего сделку по продаже компании (2010) за $200 млн.
Heroku начал свой путь как система развёртывания и хостинга Ruby-приложений. Так сказать, от Ruby-разработчиков для Ruby-разработчиков. И так лихо сделал и реализовал ставку на умирающий язык, что за три года из "гаражного стартапа" превратился в одного из лидеров начавшейся индустрии "контейнерных-облачных хостингов".
В то время крупнейшие компании практически одновременно начали "гонку вооружений" за раздел только начавшего появляться (но уже заранее понятно, что сулящего огромные прибыли) рынка "цифровых облаков". Amazon запускает AWS (2006); Google – Cloud Platform (2008); Microsoft, спохватившись позднее всех, Azure (2010). В разгар битвы слона, кита и бегемота без лишнего шума и пыли откусывает значительную часть пирога Heroku (2007-2010), который практически сразу выкупает разработчик CRM-систем Salesforce (2010). Актив не совсем профильный, но Salesforce верно рассчитала, что дело того стоит, да и цена сделки, в масштабе разворачивающихся событий, копеечная. Благодаря своей прозорливости Salesforce до сих пор борется с "облачными конкурентами" более чем на равных. Heroku остаётся обособленным подразделением, продолжающим развивать платформу под крылом материнской компании.
#programming #ruby
Монолит вместо микросервисов
Идти против тренда непросто, но это иногда приносит хороший результат. Расскажем, почему в одном из сервисов Amazon полностью отказалась от микросервисной архитектуры в пользу монолита. Ещё обсудим обновления полезных библиотек и экспериментальный JIT-компилятор, включённый в первое превью Ruby 3.3.0.
https://digest.evrone.ru/20230601
Идти против тренда непросто, но это иногда приносит хороший результат. Расскажем, почему в одном из сервисов Amazon полностью отказалась от микросервисной архитектуры в пользу монолита. Ещё обсудим обновления полезных библиотек и экспериментальный JIT-компилятор, включённый в первое превью Ruby 3.3.0.
https://digest.evrone.ru/20230601
Ruby on Rails: жив и будет жить
Рассказываем, почему Ruby on Rails до сих пор актуален. Мы уверены, что и язык, и фреймворк живы и будут жить. Все аргументы — внутри статьи.
https://tproger.ru/articles/ruby-on-rails-zhiv-i-budet-zhit-241602
Рассказываем, почему Ruby on Rails до сих пор актуален. Мы уверены, что и язык, и фреймворк живы и будут жить. Все аргументы — внутри статьи.
https://tproger.ru/articles/ruby-on-rails-zhiv-i-budet-zhit-241602
Решился — и стал бэкенд-разработчиком. Как Хекслет помог мне сменить профессию и справиться с трудностями
Привет! Меня зовут Сергей, и я хочу поделиться своей историей. Мне 33 года, живу в городе Фетхие в Турции и работаю бэкенд-разработчиком на Ruby. Буквально год назад я практически ничего не знал о программировании и веб-разработке, но желание сменить профессию и попробовать себя в чем-то новом привело меня в эту точку. Как говорится, «You only live once!»
https://ru.hexlet.io/blog/posts/reshilsya-i-stal-backend-razrabotchikom
Привет! Меня зовут Сергей, и я хочу поделиться своей историей. Мне 33 года, живу в городе Фетхие в Турции и работаю бэкенд-разработчиком на Ruby. Буквально год назад я практически ничего не знал о программировании и веб-разработке, но желание сменить профессию и попробовать себя в чем-то новом привело меня в эту точку. Как говорится, «You only live once!»
https://ru.hexlet.io/blog/posts/reshilsya-i-stal-backend-razrabotchikom
Плохие тесты: кто виноват и что делать?
Тестирование — один из самых больных, если не самый больной вопрос в современной разработке программного обеспечения. Поговаривают, что разработчики не любят писать тесты, что написать правильные тесты зачастую сложнее, чем сам код, что «зеленое — не значит работает», а типовые экстремисты даже утверждают, что АДТ с лихвой эти самые тесты заменяют.
https://habr.com/ru/articles/740216/
Тестирование — один из самых больных, если не самый больной вопрос в современной разработке программного обеспечения. Поговаривают, что разработчики не любят писать тесты, что написать правильные тесты зачастую сложнее, чем сам код, что «зеленое — не значит работает», а типовые экстремисты даже утверждают, что АДТ с лихвой эти самые тесты заменяют.
https://habr.com/ru/articles/740216/