bro*_*hip 1 javascript rest enums backend angularjs
今天我和一位java后端开发人员进行了一次相当激烈的讨论。我用 jsangular 做前端。他的休息服务向我发送了一个包含枚举的对象。我将其作为字符串获取,并需要在角度网格中显示它。
枚举是非常容易解释的。
我得到的例子:
Person = {gender: "MAN", position: "IS_EMPLOYED"}
在视图中我必须显示以下内容:
man is employed
所以我用一种简单而通用的方式解决了这个问题:
Person.gender.toLowerCase () + ' ' + Person.position.toLowerCase ().replace ('_', ' ')
他发现这个糟糕的编程并要求我用 if else 或 switch 制作一个映射器所以:If(Person.gender==="MAN") return "man"
Else if....
标签名称始终与枚举名称相同(只有小写和空格而不是下划线)
他大发雷霆,认为这是糟糕的编码,基本上很糟糕,是对上帝的犯罪……
所以我的问题是这种不好/好的做法(所以 ab/w 故事)或者在某些情况下是可以接受和辩护的?
在我的手机上输入,所以我无法将代码示例放在正确的标签中。
小智 5
有几种方法可以看待这个问题:
映射更加健壮:
他说得对,应该有一个完整的映射函数。这允许您处理错误(即,如果您得到的响应position是“香蕉”,您可能不应该只是将其扔在那里)。当您可能使用严格的模式时,这在后端开发中尤其重要。
规模很重要:您的方法在技术上 没有任何问题。如果条目数量较少或者用户群或应用范围较小,则可能没有多大关系。它并不真正符合最佳实践,但它有效,如果这就是最重要的,那么它可能就足够了。尽管您应该始终努力寻求最佳实践,但您需要牢记大局。
效率: 一种方法可能比另一种更有效。差异可能可以忽略不计。在网络开发中,速度是重中之重,如果两种方法得到相同的结果,但其中一种方法更快,请选择其中一种。
| 归档时间: |
|
| 查看次数: |
9426 次 |
| 最近记录: |