少用數字來做爲參數標識含義

 

 

數字很難標明業務含義,大腦難記憶,前端的溝通成本增長,傳錯數字後,數據則插錯表,調試定位困難,消耗了精力。前端

 

解決方案是:   避開數字標識。客戶端使用字符串爲參數,告訴服務端,如微信的支付類型使用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難定位緣由、增長誤解、耗費溝通時間。開發人員陷入到沒必要要的麻煩中去。

 總之,有個原則,代碼中不管是函數、變量、類的命名,能準確表達業務含義的命名,就是好的命名。

相關文章
相關標籤/搜索