回覆列表
  • 1 # 大浪不見風

    原因無非這幾個:

    1.歷史遺留原因,比如歷史已有的資料,配置等,總不能給拋棄了吧

    2.開發人員的使用習慣,以及歷史程式碼積累

    3.開放程度與普及度

    4. 在特定領域,特定環境下的優劣勢,或者說,是否有多大的必要性要去替換它?

  • 2 # 熙爸愛釣魚

    原因很簡單:

    1,json是JavaScript原生支援的,沒有外部依賴;

    2,json具有人眼可讀性;

    3,開發人員偷懶;

    關於序列化的協議和框架,估計都可以出一本百科全書了,熱門一點的如:

    xml、json、bson、Hessian、protocol buffers...

    還有很多小眾冷門的,排名不分先後。

    雖然有各種各樣的協議和框架,但序列化本質上可以分為兩種:

    二進位制協議,如 bson、Hessian、protocol buffers等,將資料轉換為二進位制形式。文字協議,如 xml,json 等,這類協議將資料轉換為文字(字串)的形式。

    二進位制協議的優點是體積小效率高,例如protocol buffers可以用將資料壓縮到位(bit),序列化和反序列化的效能也很好,非常適用於各種系統通訊和介面呼叫。

    但問題也在這裡,二進位制資料幾乎沒有可讀性,所以在開發和除錯程式時,對程式設計師來說就比較痛苦,尤其是頻繁變化的資料結構。

    文字協議則剛好相反,資料體積大,效能差,卻能滿足可讀性要求。例如我們可以輕鬆看懂一段json,或者人肉構造資料。 對於快速開發和web開發來說,可以提高開發效率,開發人員不用過多關注協議或者框架,專注業務。

    我的觀點是:

    1,對於業務穩定,效能要求極高的場景,優先使用 protocol buffers 等二進位制序列化協議;

    2,對於效能要求不高,業務變化頻繁的場景,優先使用 json、xml 等文字協議;

  • 中秋節和大豐收的關聯?
  • 公職人員可以剃光頭嗎?