В проекте phoenix/elixir: что является хорошим местом для размещения вспомогательных функций. Например: я использую Timex для обработки дат, но мне нужно сделать некоторые преобразования в возвращаемой структуре, чтобы использовать ее с моим драйвером DB ( один использует ключ: мин, другой: минута и т.д.). Я не хочу повторять эту часть кода в каждой модели и писать простую функцию, которая это делает. Что было бы хорошим местом для этого? Просто в модуле в папке /lib? Есть ли какие-либо рекомендации по организации этого?
Где помещать вспомогательные функции в проект феникса?
Ответ 1
Я не думаю, что есть рекомендации. Вы можете создавать модули, сгруппированные по темам, например MyApp.TimexHelpers
, а затем импортировать их в тех местах, где вы действительно хотите использовать помощники.
Основное отличие между lib
и web
для Phoenix до 1.2 - это перезагрузка. Чтобы изменения в lib
вступили в силу, вам необходимо перезагрузить сервер. Поэтому я стараюсь добавить большинство вещей в web
, чтобы упростить разработку. Может быть, web/helpers
...
Так как Phoenix 1.2 "каталог lib/теперь перегружается по умолчанию вместе с web/in development". См. Changelog.