Ruby/Rails expert

Description
Рабочие практики, советы, полезные инструменты из мира Ruby on Rails

Автор: @gambala
Advertising
We recommend to visit

Канал для поиска исполнителей для разных задач и организации мини конкурсов

Last updated 1 month, 2 weeks ago

🛒 Магазин сообществ в соц. сетях 24/7
⚡️ В наличии любые тематики и количества, связь в ЛС @timur_chik1


ac99e5f0c33c6df9805b

Last updated 7 months, 3 weeks ago

NN
NN
1,540,885 @naebnet

Медиа про интернет, технологии и безопасность

Сотрудничество: @nnmanager
Ютуб: https://youtube.com/naebnet

Last updated 21 hours ago

2 months, 3 weeks ago

Ruby on Rails получит прокси-сервис (написанный на Go)

Уже сейчас он работает в ONCE/Campfire и обеспечивает HTTP/2, public caching, X-Sendfile, gzip, SSL (Let's Encrypt). Обещают работу с любым Rails-приложением из коробки. Отличное дополнение для приложений, что деплоятся Kamal'ом в Docker. Сейчас всё это хорошо закрывает Cloudflare, но иметь hosted решение однозначно приятно.

https://github.com/rails/rails/issues/50479

GitHub

Add Thruster to Docker setup to get HTTP/2, X-Sendfile, Caching by default in Rails 8 · Issue #50479 · rails/rails

Puma does not support HTTP/2 out of the box, and there does not seem to be a short-term path to that changing. That means most people have to either stick nginx or a CDN in front of their app, whic...

1 year, 8 months ago

По Ruby on Rails 2.5 года существовал клевый чат и канал по бесплатному обучению и вкатыванию в веб-разработку и руби/рельсы – @LearnRubyForPikabuChat. Я был там все эти 2.5 года как ментор и эксперт со стороны

Сейчас чат меняет владельца, и я не знаю как он будет развиваться, но хочу взять эстафетную палочку и продолжить развивать бесплатное вкатывание в IT и веб-разработку

Благо сам давно подумываю о написании Roadmap по входу в IT в 2022 (приветствую ваши вопросы и интересующие темы в комментариях)

А план обучения с того канала сохранил здесь: https://gambala.pro/roadmap

1 year, 10 months ago
**Доклады с RailsConf 2022 доступны для …

Доклады с RailsConf 2022 доступны для просмотра онлайнКаждый раз жду и наслаждаюсь будто новый сезон любимого сериала, после каждой конференции – прим. редhttps://youtube.com/playlist?list=PLbHJudTY1K0f1WgIbKCc0_M-XMraWwCmk

1 year, 11 months ago

Офигенный материал по оптимизации скорости на бекеПолуторачасовой скринкаст (можно не смотреть целиком, ниже распишу как ускориться) и два примера (код на гитхабе) ДО и ПОСЛЕ оптимизаций.

Оптимизации наивкуснейшие и грамотно реализованные. Некоторые вещи могут быть слишком сложны (SQL портянка вместо ActiveRecord запросов) но даже взяв и внедрив лишь часть советов – можно получить прирост в производительности

Уверен, какие-то советы вы уже успешно применяете (асинк джобы те же), но все еще много мест и практик, которые можно почерпнуть и применить

– Статья: https://www.twnsnd.com/posts/how_i_100xd_bulk_import_speed_in_rails_with_some_gnarly_sql.html

– Скринкаст: https://www.youtube.com/watch?v=pOyvSxB9qFQ

– Пример ДО: https://github.com/ryantownsend/bulk-import-exercise

Точка входа – контроллер в API: https://github.com/ryantownsend/bulk-import-exercise/blob/main/app/controllers/movie_imports_controller.rb

От него можно (прям в гитхабе) ходить по другим классам и смотреть как выполняется запрос

– Пример ПОСЛЕ: https://github.com/ryantownsend/bulk-import-exercise-solution

Точка входа – тот же контроллер в API: https://github.com/ryantownsend/bulk-import-exercise-solution/blob/main/app/controllers/movie_imports_controller.rb

Список техник:ActionController::Metal – не триггерит и не тратит время на middleware, но params нужно пермиттить самостоятельно (отслеживая дыры в безопасности)

– jsonb поле в ActiveRecord автоматически сериализуется в ruby-object, для больших json-структур это долго и дорого по RAM. attribute :entries, :text отключает авто-сериализацию

– Асинк джобы, очевидно

MovieImport.where(id: movie_import_id).update_all("finished_at = now()") быстрее чем
MovieImport.find(movie_import_id).update(finished_at: Time.zone.now)

– Гигантские json структуры (речь про batch-bulk импорт данных) выгодно обрабатывать батчами, пусть даже в одном потоке – это делает лок БД не одним длинным, а серией коротких

– Гигантская SQL-простыня UPSERT_QUERY_TEMPLATE – спорно, т.к. усложняется поддержка, но жутко интересно. Насколько оказывается PG SQL богат возможностями и быстр

AfterCommitEverywhere гем позволяет объявлять коллбеки after_commit в любом месте программы внутри транзакции. Когда выполнится транзакция ApplicationRecord.transaction – выполнится коллбек

EventStream – офигенно используется концепт ActiveSupport::CurrentAttributes, чтобы в рамках реквеста накопить в синглтоне какие-то данные, а потом в самом конце реквеста, что-то с этими данными сделать

TWNSND

100x'ing bulk import speed in Rails with gnarly SQL

A presentation covering how I improved bulk import performance on a large-scale Rails application to less than 1% of it's original processing time.

**Офигенный материал по оптимизации скорости на беке**Полуторачасовой скринкаст (можно не смотреть целиком, ниже распишу как ускориться) и два примера (код …
2 years, 3 months ago

Как думаете, почему эта тема в Ruby/Rails канале? И как применима в руби/рельсах (и в разработке в целом)?

2 years, 3 months ago
**Simple ≠ Easy**Фраза популярная, но на …

Simple ≠ EasyФраза популярная, но на русском не всегда понятная. В переводе на русский оба слова кажутся синонимами:

Просто ≠ Легко

Но чтобы сохранить исходный смысл, Easy лучше переводить как «Привычно». И фраза трансформируется в:

Легко, потому что просто ≠ Легко, потому что привычноОб этом правиле важно помнить и носить с собой, делая тот или иной выбор

Бывает непонятно, какой из вариантов выбрать. Но если смотреть на варианты сквозь правило, часто выясняется, что один из вариантов кажется легким просто потому что он привычный – хотя на самом деле внутри сложнее другого

И совет в общем виде простой:

Выбирайте Simple, не Easy

2 years, 5 months ago
Ruby/Rails expert
2 years, 5 months ago
Ruby/Rails expert
2 years, 5 months ago
**Вышли Ruby on Rails 7.0**Помимо фронтенда …

Вышли Ruby on Rails 7.0Помимо фронтенда без сборки или со сборкой быстрым esbuild (уже обсуждали на этом канале) в новых рельсах есть еще пара клевых вещей, но важным я вижу не это

Важнее то, как DHH с командой изменили подачу рельс в публичном пространстве. Рельсы теперь не просто уютный фреймворк, на котором можно быстро начать пилить веб-сервисы. Теперь это мощный фреймворк с сильными примерами компаний, кода. DHH активно продает фреймворк

Даже уютную милую картинку с человечками при старте нового рельсового приложения убрали и заменили на лого фреймворка в новом фирменном стиле

Удастся ли лучше продавать такой фреймворк ребятам из Долины? Поживем – увидим

2 years, 7 months ago
**Снова попробовал мигрировать с turbolinks на …

Снова попробовал мигрировать с turbolinks на новый turbo в RailsBasecamp в своем репертуаре – ломают API, плюют на совместимость, сообщество своими силами поднимает upgrading guide'ы

Но ситуацию это пока не спасает – Rails UJS и формы в Devise не работают

Сохранил тикет на будущее, буду отслеживать https://github.com/hotwired/turbo-rails/issues/122

We recommend to visit

Канал для поиска исполнителей для разных задач и организации мини конкурсов

Last updated 1 month, 2 weeks ago

🛒 Магазин сообществ в соц. сетях 24/7
⚡️ В наличии любые тематики и количества, связь в ЛС @timur_chik1


ac99e5f0c33c6df9805b

Last updated 7 months, 3 weeks ago

NN
NN
1,540,885 @naebnet

Медиа про интернет, технологии и безопасность

Сотрудничество: @nnmanager
Ютуб: https://youtube.com/naebnet

Last updated 21 hours ago