• 配置文件格式用哪个?文件夹+纯文本文件,XML,SQLite


    稍具规模的软件都会须要一个配置文件来支持软件的执行。眼下常见的配置文件格式有纯文本。XML。SQLite。自己定义二进制格式,怎样进行选择呢?
    

    1 纯文本——永远不会失效的文件格式

    文本化是传统Unix哲学的教条之中的一个,可见其巨大威力。大多数类Unix系统的软件配置文件都是採用了纯文本格式。

    比如/etc/inittab, /etc/fstab, httpd.conf等等。

    1.1 长处

    (1)可读性强
    配置文件不仅须要让机器理解,也须要让人理解。

    纯文本就很easy让人理解。
    (2)存在大量纯文本编辑工具
    能够使用不论什么编辑器改动。

    可别小看这个长处,它的影响是巨大的。存在大量很好用的针对纯文本的搜索,编辑工具(如grep,sed,awk),想想正則表達式,就知道为啥纯文本这么重要了。
    (3)可永久保存
    过去的几十年中。各种文件格式层出不穷。但细致想想。十几年前留下来的文件,今天还能查看并使用的确实不多了,纯文本格式就是当中之中的一个。

    不管到了什么年代。总能很easy的找到一个文本编辑器来查看改动纯文本文件。


    (4)跨平台
    字符编码跨越不论什么计算机平台。什么32位系统,64位系统。什么Linux,Windows,Mac,iOS, Android,对待纯文本的方式是一致的。

    1.2 缺点

    (1)解析繁琐,无现成库可用
    不同的配置文件往往自己定义了详细的实现格式。这就须要定制化的解析代码。稍具复杂度的配置文件往往导致解析代码繁琐。

    (2)明文不安全
    有些程序的配置文件也是知识产权的一部分,须要对外隐蔽。

    纯文本不具有这个功能。

    2 XML——互联网时代的宠儿

    借助Internet之风。XML大型其道。很多大型软件開始採用xml格式的配置文件,如Tomcat。

    2.1 长处

    (1)纯文本的全部长处
    XML本身也是纯文本,仅仅是在纯文本的基础上。定义了统一的文档结构布局。

    所以,纯文本的长处,XML也都有。不再叙述。


    (2)尤其适合树形层次数据存储
    很多模型数据都是树状的。XML本身就是针对树状数据而设计的。
    (3)统一的布局,现成解析库可用
    眼下差点儿全部语言都有支持XML解析的库可用。这样就省去了解析代码,不easy出现错误。

    2.2 缺点

    (1)元数据反复。浪费空间
    与纯文本相比,XML配置文件往往更大,看看tomcat下的大量配置文件就知道了。
    (2)可读性、可编辑性不如纯文本
    XML便于机器识别与分析。可是并不太适合人来阅读。尤其是结构复杂的XML文档。


    (3)须要主要的DOM基础,才干使用
    并非全部的程序猿都具有DOM基础,所以有一定的入门门槛

    3 SQLite——最好用的单文件数据库

    著名的CentOS包管理系统yum的库管理数据使用SQLite。

    3.1 长处

    (1)仅仅有一个文件。包括一切
    这个优势是很明显的。SQLite仅仅须要一个文件就包括了全部配置数据,很利于备份和恢复。


    (2)支持SQL查询语言
    这是SQLite最大的优势了,程序猿无需关心详细的I/O,仅仅要使用sql就能够操作数据了。
    (3)数据量能够很大
    即时配置文件大小到了GB的级别,SQLite仍然能够良好的执行,并且占用内存不大。
    (4)开放源代码
    SQLite源代码採用了最宽松的授权–无需授权。

    能够在项目中直接使用其源文件。


    (5)SQLite库很稳定
    SQLite经历了十多年的发展。已经很稳定。
    (6)能够随时加入更改配置项。而无须更改使用代码
    这也是SQL语言带来的巨大优势
    (7)跨平台
    跨越不同架构。不同操作系统。

    3.2 缺点

    (1)不能使用文本编辑器查看
    尽管眼下SQLite软件很普及,但毕竟还是专用软件,不如文本编辑器那样人人都会用。并且多年以后。谁也不能保证SQLite还会继续良好的发展。
    (2)须要使用者掌握SQL语言
    并非全部的程序猿都熟悉SQL。
    (3)因为是在硬盘上操作数据,所以小文件时。速度不如XML。


    对于配置文件来说,这个不算什么问题,毕竟大部分配置文件仅仅是在程序启动时使用。

    4 自己定义二进制文件——被淘汰的垃圾

    自己定义二进制文件格式的配置文件在如今已经很不提倡了。仅仅有在极其特殊的场合和一些无知的程序猿还在使用。

    比如。systemd另一部分配置文件是这样的二进制格式,但迫于各方压力,慢慢也在向纯文本方式进化。

  • 相关阅读:
    如何提高软件可维护性
    UML系列 (二)四种关系
    软件工程
    软件工程需求规格说明书
    机房收费系统可行性分析报告
    ThreadStaticAttribute 的使用
    WPF:Border 控件
    几篇介绍在页面中引用脚本文件的技术文档
    收集两篇介绍 Fildder 的文章
    收集三篇关于数据库主键设计的文章
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/7301220.html
Copyright © 2020-2023  润新知