Держит прод
Присоединился: 26 августа 2022 18:54
Последний визит: 30 октября 2026 16:24
Темы: 4 / Ответы: 69
Ответ
RE: Команда на Hanami, а бизнес просит админку за месяц. Тащить Rails рядом?

Делали похожее: отдельное Rails-приложение для внутренних людей на общей базе. Работает, если договориться о двух вещах. Первое: схемой владеет одно ...

1 неделя назад
Форум
Ответ
RE: Миграция ждала блокировку и на 4 минуты повесила все запросы к таблице

Правильно понимаете. `ALTER TABLE` берёт ACCESS EXCLUSIVE и ждал, пока закончится долгая транзакция с отчётом. А все новые запросы, даже SELECT, встаю...

1 месяц назад
Ответ
RE: Active Storage: превью аватарок создаются по две секунды при первом открытии

Оставшиеся 0,8 это в основном сеть: скачать оригинал из облака, обработать, залить вариант обратно. Чтобы пользователь этого не ждал, вариант надо дел...

7 месяцев назад
Форум
Ответ
RE: Таблица событий на 600 млн строк: партиции в Postgres или увозить в ClickHouse?

Партиционирование на живой таблице делается без простоя, но не одним ALTER. Создаёте новую партиционированную таблицу, пишете в обе, переносите истори...

7 месяцев назад
Ответ
RE: Фильтры каталога: в index восемь if по params. Как это пишут нормально?

А сортировку из параметров в `order` напрямую не пропускай, даже если Rails сейчас и отсекает откровенный SQL. Белый список: [code=ruby] SORTS = { "...

8 месяцев назад
Ответ
RE: Параметры отчёта ходят хэшем через пять классов. Data или Struct?

Я бы в том же `initialize` ещё проверял, что `from` не позже `to`, это самая частая ошибка в отчётах. А строки из формы в даты пусть приводит контролл...

9 месяцев назад
Ответ
RE: Реплика для чтения в Rails 8.1: как он решает, куда идти?

Только задержку подбирайте по реальному отставанию, а не берите по умолчанию. Посмотрите `now() - pg_last_xact_replay_timestamp()` на реплике в час пи...

9 месяцев назад
Ответ
RE: Включили rubocop-rails-omakase в старом проекте: 2300 замечаний

Большой PR с автоисправлениями не страшен, если положить его хеш в `.git-blame-ignore-revs` и прописать `git config blame.ignoreRevsFile .git-blame-ig...

9 месяцев назад
Ответ
RE: Джоба новогодней рассылки упала по памяти на 300 тысячах пользователей

И уникальный индекс на `deliveries (campaign_id, user_id)`. Без него проверка `sent` не спасёт, если одна пачка вдруг выполнится дважды параллельно.

9 месяцев назад
Ответ
RE: После праздников обновились на Rails 8.1 и Ruby 4.0: заметки

config/ci.rb я бы сразу подрезал под себя, у генератора шагов многовато. Примерно так: [code=ruby] CI.run do step "Setup", "bin/setup --skip-server"...

10 месяцев назад
Форум
Ответ
RE: Выгрузка CSV на 2 млн строк раздувает воркер до 3 ГБ

Про `in_batches` одна мелочь: он ходит по первичному ключу, каждый раз `WHERE id > последний`, это быстро. А если добавить свой `order`, он его про...

11 месяцев назад
Ответ
RE: Заявка: обновили основной сервис до Rails 8.1 за два спринта, что ломалось

Про schema.rb с колонками по алфавиту обязательно пару минут: многие увидят этот диф в первом же PR и испугаются, что миграция что-то поломала. И я бы...

12 месяцев назад
Ответ
RE: UUID или bigint для первичных ключей в новом сервисе

Я за bigint внутри и отдельный публичный идентификатор наружу, если надо прятать. Случайный UUIDv4 как первичный ключ плох для B-tree: вставки летят в...

1 год назад
Ответ
RE: Копейки в счетах расходятся: НДС считаем во Float. Как правильно?

Во Float копейки и не сойдутся: `0.1 + 0.2` там честно даёт `0.30000000000000004`. Из decimal-колонки Active Record и так отдаёт BigDecimal, достаточн...

1 год назад
Ответ
RE: Отчёт по выручке считается 14 секунд. Я аналитик, на Ruby пишу мало

Если отчёт смотрят в основном за прошлые месяцы, а они уже не меняются, считайте итоги раз в сутки в отдельную таблицу и показывайте оттуда. Текущий м...

1 год назад
Страница 1 / 5