初用vscode,手寫JSON的配置真的很蛋疼。。看了挺多關於JSON格式的問題,大家都說JSON設計出來不是為了讓人手寫的。那為什麼會有軟體用JSON做配置文件呢?


JSON 規範本身的確有一些不適合當配置的地方,包括不支持注釋和逗號問題。但是 VSCode 作為配置的格式是經過優化的,上述問題已經不存在了。

注意這裡的格式不是純粹的 JSON,是 JSON with Comments。

為什麼要用 JSON 作為配置,不只是誰好誰不好的問題,還要考慮其他因素。使用 JavaScript 作為開發語言的所有庫天然就支持 JSON,所有用戶都理解,互操作沒有問題,成本幾乎為0。而引入其他的配置,在設計、學習、第三方支持等各方面都會增加額外的工作。

至於說手寫配置蛋疼...現代的編輯器基本上都這樣,Sublime Text 是沒有設置界面的,純粹靠手寫,vscode 好歹還給你提供了一個 UI。要是隻接受界面的話,你更適合用 JetBrains 家的產品,但是那麼複雜的設置界面一樣會把你搞暈的。有時候還是文本編輯器來得簡單直接。


作為配置文件的幾種最常見形式

  • json
  • yaml
  • xml
  • ini這樣的特定格式文件
  • win的註冊表或mac plist這樣的二進位格式
  • 以行為單位的kv,如*nix常用的env或者java常用的properties
  • sqlite這種小型資料庫

這麼列下來,綜合簡單易用,表達能力強,跨平臺的話,json也許是最好的選擇吧。


這是因為JSON這個B的全稱是JavaScript Object Notation,他的格式和JavaScript的對象是一致的,可以直接被讀取和解析。JSON能成為主流的Web傳輸數據時所用的格式,一部分原因正是JavaScript可以絲滑地解析JSON。

而vscode使用了electron。electron基於chromium和node.js,這個B使得用前端技術棧來構建桌面應用程序成為可能。因此vscode裏跑的正是JavaScript代碼。對於JavaScript來說,解析JSON是非常方便與合適的。


主要是為了偷懶吧,因為vscode是用js開發的,用JSON當然是最簡單最自然的選擇,這符合開源項目快糙猛的風格。

不過JSON寫起來實在是不好用啊,所以vscode也做了些改進,加上了對注釋的支持。不過對配置文件來說,可以改進的餘地還很大,比如說用HJSON https://hjson.org/


我寧願寫json,以前寫過一段時間的java看到用xml配置就想吐


推薦閱讀:
相關文章