Что должен знать каждый backend про N+1, lazy preload и производительность / Евгений Демин #83

Аватар автора
Организованное программирование | Кирилл Мокевнин
В этом выпуске у меня в гостях Евгений Дёмин — Ruby-разработчик и автор нескольких популярных open source библиотек, которые решают проблемы с базами данных, валидацией и производительностью. Женя начинал как математик в Калининграде, попал на западный рынок почти случайно — друг порекомендовал его британскому рекрутеру, а всё собеседование свелось к фразе «Yes, please» в телефонной трубке. Тем не менее его взяли. Разобрались, почему open source — это не просто код на GitHub, а полноценный продукт, который нужно продвигать, объяснять и защищать. Женины библиотеки приносят ему живые деньги каждый месяц — и это получилось не по плану, а как результат маленьких последовательных шагов. Полезные ссылки: Отдельно поговорили про schema.rb — файл, который Rails кладёт прямо в репозиторий и который даёт возможность строить инструменты автоматического анализа. В других экосистемах этого долго не было, а где-то нет до сих пор. Прошлись по конкретным инструментам. Выяснили, что расхождение между валидациями в коде и реальными ограничениями в базе данных — это не редкий edge case, а системная проблема, с которой сталкиваются даже крупные компании вроде 37signals. Подискутировали про N+1, что это не болезнь ORM, и вообще она существовала ещё когда люди писали запросы в циклах на чистом PHP. Обсудили, как можно пофиксить без ручного проставления includes — просто подключив нужную библиотеку. В конце разговор свернул в неожиданную сторону — обсудили, не станут ли все эти...

0/0


0/0

0/0

0/0

0/0