2013-06-27 2 views
0

Я создал приложение для веб-опроса с использованием рельсов. Администратор определяет каждый раздел обзора, вопросы, проверки и возможные ответы/типы ответов в файлах конфигурации yaml.Способы оптимизации приложения с использованием файлов конфигурации yaml

На данный момент я загружаю файлы конфигурации yaml для разделов и вопросов по каждому запросу (на каждой странице). Я знаю, что могу использовать кеш для оптимизации запросов к базе данных, но будет ли быстрее использовать кеш для чтения файлов конфигурации yaml? И какой кеш вы бы предложили? memcache, двоичный файл, другой?

Спасибо за любую помощь по этой проблеме!

ответ

2

Я думаю, Кнут сказал, что лучше всего с ...

«Мы должны забыть о небольших эффективности, скажем, около 97% времени: преждевременная оптимизация есть корень всех зол»

ЕСЛИ ЕЕ проблемы, продолжайте со своей жизнью. Однако, чтобы не быть ранжированным для snarkyness ...

В этом случае вы можете прочитать ваши файлы конфигурации в константах класса, чтобы избежать ввода/вывода файлов, когда вам нужно получить информацию, если вы действительно думаете, что это будет проблема.

Однако, исходя из вашей проблемы, то, что вы, вероятно, пытаетесь сделать, может быть сделано лучше с Backbone Forms, но тогда вы добавите сложности с JavaScript.

+0

Ну, спасибо! Я думаю, что я могу попытаться поместить данные в константы класса, так как я думаю, что я читал где-то, что они кэшируются в рабочей среде по умолчанию. – kaligrafy

+0

также ознакомьтесь с этой статьей, если вы хотите, чтобы они были неизменными [Постоянная заморозка] (http://www.ruby-forum.com/topic/153861) – engineerDave

1

Я бы порекомендовал не использовать файлы yaml на самом деле, если у него нет веских оснований. Вместо этого вы должны использовать свою БД. Это было бы гораздо удобнее и удобнее в использовании, если бы вы использовали вложенные модели с правильными ассоциациями. Этот railscast фактически почти идентичен вашей ситуации.

+0

Вот что я хочу создать позже, но пока я не может этого сделать из-за ограниченного времени для разработки форм администратора (бэкэнд) – kaligrafy