Приветствую, уважаемые хабравчане.
Уже некоторое время вынашиваю идею написания гема, который мог бы находить типичные ошибки при разработке приложений на Ruby On Rails.
Больше всего меня достали:
1. Отсутствие индексов в базе данных на ключи ассоциаций
2. Нахождение дублирующих ключей в файлах локализации
3. Поиск отсутствующих переводов
4. Строки — одинарные и двойные кавычки
При желании можно будет автоматически добавить недостающие индексы сгенерировав миграцию
config/locales/ru.yml
Если мы вызовем данный перевод
Что может вызвать недоумение, так как ищем мы обычно сверху-вниз и менять будем только первый перевод, который никак не будет влиять на вывод I18n и даже перезапуск сервера нам не поможет :)
Или же можно добавлять в файл локали переводы с текстом TODO для того, чтобы можно было за один раз добавить все отсутствующие переводы.
Вывод статистики и автоматическое исправление строк с двойными кавычками на одинарные, которые работают быстрее, так как при выполнении кода не происходит поиск специальных символов внутри строки.
Экспорт отчета в html формат, по умолчанию будет использоваться текстовый режим. Для генерации будет использоваться дополнительный gem, который будет генератором красивого html.
Интересно было бы услышать ваше мнение.
Уже некоторое время вынашиваю идею написания гема, который мог бы находить типичные ошибки при разработке приложений на Ruby On Rails.
Больше всего меня достали:
1. Отсутствие индексов в базе данных на ключи ассоциаций
2. Нахождение дублирующих ключей в файлах локализации
3. Поиск отсутствующих переводов
4. Строки — одинарные и двойные кавычки
Отсутствие индексов в базе данных на ключи ассоциаций
class User < ActiveRecord::Base
has_many :comments # без индекса на ключ user_id в модели Comment ассоциация будет работать медленнее
...
end
При желании можно будет автоматически добавить недостающие индексы сгенерировав миграцию
def AddIndexToComments < ActiveRecord::Migration
def change
add_index :comments, :user_id
end
end
Нахождение дублирующих ключей в файлах локализации
config/locales/ru.yml
welcome:
user: Добро пожаловать
...
# ближе к концу файла
welcome:
user: Здравствуйте
Если мы вызовем данный перевод
I18n.t('welcome.user')
# то получим
"Здравсвуйте"
Что может вызвать недоумение, так как ищем мы обычно сверху-вниз и менять будем только первый перевод, который никак не будет влиять на вывод I18n и даже перезапуск сервера нам не поможет :)
Поиск отсутствующих переводов
%title= t('title') # в файле локализации данный перевод отсутствует, сверху при получении подтверждения от пользователя добавим TODO
Или же можно добавлять в файл локали переводы с текстом TODO для того, чтобы можно было за один раз добавить все отсутствующие переводы.
Строки — одинарные и двойные кавычки
Вывод статистики и автоматическое исправление строк с двойными кавычками на одинарные, которые работают быстрее, так как при выполнении кода не происходит поиск специальных символов внутри строки.
"Welcome" # Превратится в
'Welcome'
# Эта строка останется нетронутой
"Welcome #{name}"
Экспорт
Экспорт отчета в html формат, по умолчанию будет использоваться текстовый режим. Для генерации будет использоваться дополнительный gem, который будет генератором красивого html.
Интересно было бы услышать ваше мнение.