最近开发中遇到这种情况,某值是跟据单位进行换算的,假如有大小两种单位。换算方式是,大单位值*换算量 = 小单位值。服务器和数据库存储的是小单位值。
目前的一种开发方式是,模型的值 = 数据库或服务器中的存储值,即小单位值。
显示值根据单位,换算量和模型值进行计算得出。
修改单位或换算量时,显示值不变,修改模型值。
优点:方便修改,方便存储。
缺点:模型值根据状态修改的地方比较多。
还有一种开发方式是在存储和从数据库中读取的时候进行模型值和存储值的转换,使用的时候直接用。适用于存储值和显示值不一样,但是显示值变化比较少的情况。
现在回想下,阈值这种东西不随单位或换算量改变而改变,更适合用第二种开发方式。服务器要小单位阈值,存值的时候计算就好。取得时候也进行计算。只是因为看到取值的代码比较多,而放弃了在存取的位置进行换算的开发方式。而且显示值不随换算量改变的需求也是在改bug过程中才了解到。导致这次代码的不好看。以后遇到做选择的时候,首先了解每个选择的优缺点,然后考虑周全需求,再做选择就好。需求改变后,技术选型也要及时跟着调整。
这个问题的本质,就是需求决定了,开发过程中,模型值应该取显示值还是更接近存储值。当然显示值和存储值一致也就不存在这个问题了,但是一般后台时不会迁就模糊宜变的需求的。这种烦恼也就前端会遇到了。
网友评论