配置文件格式的选择

经常会遇到实现一个东西, 需要使用配置文件的情况, 那么选择一个合适的配置文件格式的问题就摆在面前了, JSON? YAML? XML? HOCON?

选哪个? 举几个例子:

  • AWS IAM 使用 JSON 格式
  • Dropwizard 使用 YAML
  • Hadoop 全家桶都是用 XML
  • HOCON 是Lightbend 公司(原名 typessafe, scala 语言背后的公司)开发了一种新语法

什么? 你说 Java 中的 properties 格式? 那简直土得掉渣.....

总结几个配置文件格式选择的原则:

  1. 支持注释. 不支持注释的 JSON 是给机器读的, 不是给人读的
  2. Library 精简. 看到一堆读取 XML 的 jar 包就恶心
  3. 支持嵌套结构. 仅仅支持 KV 结构的 properties 文件表达能力简直弱到爆
  4. 最好支持定义 constants, 这样可以避免重复.
  5. 最好支持 include 其他配置文件, 方便配置模块化. 复杂的配置也是无奈之举, 但如果支持 include 语法, 可以方便的把配置文件模块化.

捋一遍几个格式, 发现 JSON 一定是最先淘汰的; XML 也不招人待见. 重点推荐一下 HOCON, 优点全占了, 很多语言都有 library 实现, 跨语言不成问题.

-- EOF --

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,009评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,974评论 6 342
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,641评论 25 708
  • 文章作者:Tyan博客:noahsnail.com | CSDN | 简书 24. Externalized Co...
    SnailTyan阅读 2,060评论 1 2
  • 我我是谁?你你又是谁?我想为你看日出我想携你赏夕阳 我的孤独你能懂? 我再说一次把剑放下 好像哭一场却没有泪水 是...
    一堕红尘阅读 193评论 0 0