2

我正在开发一个从模板生成电子邮件的系统。模板已由业务部门提供,其中包含与此类似的一行代码:

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")

我们在该项目上有一组相当称职的技术架构师,但我很难说服他们有充分的理由这样做。

任何人都可以帮助我向架构师提出一个论点,以使后者的代码片段在前者之上实现 - 或者如果您不同意这种方法,为什么?

4

2 回答 2

1

对我来说,第二种方法更好,我推荐它,因为在软件工程模式中,您将学习的主要内容是尝试使事物隔离和专注,因此计算处理应该是分开的,因为如果项目规模大于分段和隔离良好的东西很容易维护,但是如果尺寸很小或个人使用,那么这只是练习。

于 2013-10-28T10:24:36.507 回答
1

比第一个更喜欢解决方案#2 的一个原因是,如果 - 由于某种原因 - 有人将无法解析为小数的文本交给模板,您将遇到麻烦。有多种可能性:

  1. 非数字文本。
  2. 针对不同文化格式化的数字。

所以类型安全在方法 2 中要好得多。从架构的角度来看,填写模板的人不需要知道实现细节,而在方法#1 中,他或她需要知道需要提供以特定方式格式化的字符串。

于 2013-10-28T10:30:02.027 回答