少用数字来做为参数标识含义

 

 

数字很难标明业务含义,大脑难记忆,前端的沟通成本增长,传错数字后,数据则插错表,调试定位困难,消耗了精力。前端

 

解决方案是:   避开数字标识。客户端使用字符串为参数,告诉服务端,如微信的支付类型使用trade_type=JSAPI|MWEB分别表示公众号支付和h5支付。这里若使用数字,确实难以理解业务意义。淘宝开放给商家的api查询指定订单状态,使用的为字符串status=WAIT_BUYER_PAY|WAIT_SELLER_SEND_GOODS。数据库存储的是数字,服务端作了一层转换成数字的操做。数据库

 

 

http://open.taobao.com/docs/doc.htm?articleId=102856&docType=1&treeId=1

交易状态    

                               

    •  

    • WAIT_BUYER_PAY:等待买家付款api

    •  

    • WAIT_SELLER_SEND_GOODS:等待卖家发货微信

    •  

    • SELLER_CONSIGNED_PART:卖家部分发货函数

    •  

    • WAIT_BUYER_CONFIRM_GOODS:等待买家确认收货性能

    •  

    • TRADE_BUYER_SIGNED:买家已签收(货到付款专用)设计

    •  

    • TRADE_FINISHED:交易成功调试

    •  

    • TRADE_CLOSED:交易关闭htm

    •  

    • TRADE_CLOSED_BY_TAOBAO:交易被淘宝关闭支付宝

    •  

    • TRADE_NO_CREATE_PAY:没有建立外部交易(支付宝交易)

    •  

    • WAIT_PRE_AUTH_CONFIRM:余额宝0元购合约中

    •  

    • PAY_PENDING:外卡支付付款确认中

    •  

    • ALL_WAIT_PAY:全部买家未付款的交易(包含:WAIT_BUYER_PAY、TRADE_NO_CREATE_PAY)

    •  

    • ALL_CLOSED:全部关闭的交易(包含:TRADE_CLOSED、TRADE_CLOSED_BY_TAOBAO)

    •  

    • PAID_FORBID_CONSIGN,该状态表明订单已付款可是处于禁止发货状态。

 

 什么状况下使用数字标识?

 

只有两种状态,0和1,开和关,容易使用数字来表示,超过2种,难记住数字表明的含义了。即使只有两种状态,使用字符串也比数字更加容易理解业务意义。

 

如使用on来表明开启,使用off来表明关闭。很是明确。若使用1和0来标识,1究竟是删除仍是不删除,若是没有注释说明,须要去猜想,每一个人设计习惯不同,增长误解。

 

 

 

 

 

 

给外部看使用字符。而数据库存储,使用数字存储

数据库之因此存储数字,有一些好处:

 

  • 数字减小存储空间,空间减小,表体积越小,性能越好。

 

  • 数字的查询性能更好:作比较判断和范围筛选)

     

  • 能够灵活适应变化。之后需求改变了,转成任意文字显示,作数字到文字之间的映射,会很方便。若是使用字符串存储

 

 

  在这方面,踩过一些坑,如代码调用出错、出现bug难定位缘由、增长误解、耗费沟通时间。开发人员陷入到没必要要的麻烦中去。

 总之,有个原则,代码中不管是函数、变量、类的命名,能准确表达业务含义的命名,就是好的命名。

相关文章
相关标签/搜索