Как убрать расчет из презентации

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

Thank you for your payment of @((decimal.Parse(Model.PaymentAmount)/100).ToString("C"))

В этом случае PaymentAmount ожидается в виде строкового представления целого числа (например, требуемый результат £5.54 будет представлен как "554").

Теперь я придерживаюсь мнения, что в уровне представления не должно быть вычислений - в этом случае есть вычисление /100 и анализ. Я предложил несколько альтернатив для этого, где преобразование выполняется в коде перед шаблоном, чтобы дать измененное представление, такое как:

Thank you for your payment of @Model.PaymentAmount.ToString("C")

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

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

2 ответа

Решение

Одна из причин, по которой решение № 2 предпочтительнее первого, заключается в том, что у вас возникнут проблемы, если - по какой-то причине - кто-то передаст текст в шаблон, который не может быть проанализирован в десятичном виде. Есть несколько возможностей:

  1. Нечисловой текст.
  2. Номер отформатирован для другой культуры.

Так что безопасность типа намного лучше в подходе № 2. С архитектурной точки зрения тому, кто заполняет шаблон, не нужно знать подробности реализации, тогда как в подходе № 1 он или она должны знать, что требуется предоставить строку, которая отформатирована определенным образом.

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

Другие вопросы по тегам