советы по рефакторингу рельсов - PullRequest
1 голос
/ 10 октября 2010

Я создавал крупномасштабное приложение для рельсов, и пришло время его реорганизовать.

Какие советы вы можете мне предложить, или какие ресурсы вы можете указать мне? Я особенно заинтересован в том, чтобы сделать мои звонки из базы данных более эффективными.

Ответы [ 2 ]

2 голосов
/ 10 октября 2010

«Повышение эффективности вызовов базы данных» - это не рефакторинг, а настройка производительности.

  • Проводите тесты производительности и внимательно просматривайте журналы, чтобы помочь вам.о том, над чем работать в первую очередь.

  • Узнайте, какие ваши самые медленные запросы, и работайте над ними.

Re: Советы по рефакторингу

  • Всегда сначала добавляйте тесты, а затем рефакторинг.Рефакторинг без тестов похож на провод без сети - возможно, и многие делают это, но также очень опасно.
1 голос
/ 11 октября 2010

Как правило, выполнение следующих действий даст вам некоторое повышение производительности.

  • Используйте индексы для столбцов базы данных, такие как внешние ключи и поля типа STI.В основном любое поле, которое используется для объединения или поиска.
  • Используйте аргумент include (метод в Rails 3), чтобы при необходимости вызывать ассоциации загрузки.Это может быть хорошим местом, где бенчмаркинг поможет вам определить, улучшаете ли вы производительность или снижаете ее.
  • Укажите, какие поля следует выбирать в запросах, используя аргумент select.По умолчанию загружаются все столбцы, но ограничение только нужными полями повысит производительность.Я бы рекомендовал это, только если у вас есть таблица с большим количеством столбцов и вы выбираете много записей одновременно.
...