金额和日期换个地方写法就变,格式化别各处各写
同一个数目,一处显示成一点二五,另一处成了逗号隔开的写法,用户以为是两个价。数字、日期、币种这些东西,换个地方写法就变,硬编码在页面里迟早要露馅。一、格式规则收在一处
把怎么显示收成一组规则,页面只管把值和规则编号传过去。各处自己拼字符串,改的时候得挨个页面找,漏一处就两种写法并存。审批流里给改小数位加一问,问已经发出的表还按不按老位数读,这一问能拦下历史数据忽然跟着变样的那类改动。
规则按地方分开存,别做成一长串条件判断。条件堆到几十行,加一处新市场就得从头读一遍,还容易把前一处的分支带歪。排期表上把格式规则归拢归到哪个团队写清,后面加一处新市场该找谁改,照着表就能答,不用每回从几个页面倒着找。
二、小数位按币种定
有的币种习惯留两位,有的压根不带小数,写死两位就会多出个没意义的零。位数跟着币种走,展示和计算分开,算的时候用原始值,别拿显示过的字符串再算。季度盘点数一数还有几处页面在自己拼字符串,收一处少一处,清单摆着,比每次口头提醒谁别硬编码管用。
换算时的舍入也要说定在哪一步做。先舍再求和、先求和再舍,差出来的那一点在汇总里会被放大,对账时又得回头翻明细。预算里给几种常见屏宽的试算留一份工时,量不大,可省下的是上线后一屏一屏回头补样式的那几天。
三、千分位别自己拼
分组符号有的用逗号、有的用点、有的按三位一隔有的按两位一隔,自己写替换很难全顾到。交给现成的格式化规则,传值和地方进去就行。和做报表的几位约好排序一律用原始值,写进模板说明里,省得每回表头点一下升降序,都要重新解释十为什么排在二前面。
负数、零值、很大的数也各试一遍。零值常常被写成空,很大的数又可能折行,这类小毛病单看一条不明显,列在表里一排就显出来。值班交接时把还没验过的几种写法列上,接手的人照着单子往下试,不至于等到有人截了图发过来才想起零值那一档没看。
四、日期顺序要能换
年月日的先后顺序各地不同,写死一种,另一处的人看着就要愣一下。把顺序做成规则的一部分,展示时按规则拼,别在代码里排好再传出去。排期表上给逐屏过版留一格,别挤在译文交回来那天,几处挤在一起,看的人翻两屏就累了,余量的问题反而看不见。
月份用字还是用数字也一并定。纯数字的写法在不同地方含义可能反过来,配上月份名或者统一用名称,读的人不用猜。复盘会上把显示错的那几回按原因归成几类,是规则漏了还是调用方自己拼了串,两类改法不同,混着说容易只治一半。
五、排序按数值不按文本
把格式化后的字符串拿去排序,十会排在二前面。排序用原始数值,展示时才套格式,这两步分开了,表头点一下升降序才不会看着奇怪。预算里按语言份数给图素材留一份,图里压着字的那几张要另做,事先算进去,比上线后临时找设计补图从容。
日期同理,用时间戳排,别用显示出来的那串。带时区换算的更要小心,显示成同一天的两条,实际时刻可能差着半天。新人上手先给他一张对照表,几种地方各显示成什么样摆在一排,看过一遍之后,再写页面就不容易顺手把格式写死。
六、输入解析放宽一点
让用户填数目时,常见写法都接得住,空格、分组符号、全角数字,先清干净再转成数值。只认一种写法,填的人改来改去还过不去,索性就不填了。值班交接时把反复出问题的那几个控件列上,接手的人先照着改通用样式,不用一屏一屏继续打补丁。
解析失败别静默当成零,给一句明白的提示。零是有效值,混淆了之后下游算出来的东西看着正常,其实少了一份输入。归档时把规则版本和当时的样例结果放在一处,过半年有人问起某个数为什么那样显示,翻出来连依据一起看得到。
格式化看着是小事,可它夹在计算和用户之间,错一点两头都跟着歪。规则、位数、分组、顺序、排序、解析,六处收在一处管,换地方时才只是换一组规则;各处各写,就得一屏一屏地找。 感谢楼主带来这么好的内容,在论坛里能学到东西真的很开心。 虽然篇幅不长,但句句都是重点,简洁又有深度,非常不错。 观点很成熟,分析也很理性,值得大家静下心来认真看一看。 每一条都很实用,已经记下来了,以后遇到类似问题就能用上。 观点很新颖,角度也很独特,打破了我之前的固有认知,很有启发。
页:
[1]