- 浏览: 175859 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (140)
- java (138)
- 佳能500d (1)
- 佳能 (1)
- Oracle数据库文档构造器--Oraschemadoc (1)
- EJB调用的原理分析 (1)
- 使用css3画"静音"icon (1)
- 张小庆,在路上(16)-给弟弟找工作 (1)
- Android短信编解码方式 (1)
- lua web 开发 (1)
- zk安装 (1)
- 菜单多国语言化遇到的问题 (1)
- 【转】纯文本配置还是注册表 (1)
- C++ delete删除动态分配的内存 (1)
- eclipse下修改项目名导致tomcat内发布名不一致的解决方法 (1)
- Lucene实现各种常见文档的全文检索 (1)
- 项目风险之人员流动风险 (1)
- 时空数据模型简介 (1)
- XSLT学习笔记 (1)
- 依然是计划 如果没有计划似乎就没有了动力 (1)
- How to Succeed in A Professional Career (1)
- 编程环境应该和讨论社区完美的进行结合 (1)
- C#坦克大战实现 (1)
- 电脑用户密码忘记了怎么办? (1)
- java.lang.NoClassDefFoundError: org/dom4j/DocumentException (1)
- 关于成立北京Android爱好者俱乐部的声明 (1)
- Android开发之初探音频的播放 (1)
- Struts标签循环List (1)
- CAP原理 (1)
- javabean的自动生成 (1)
- 打开CMD一闪就关的解决方案 (1)
- 我是项目经理,我的项目管理日记【20111202】 (1)
- Html5游戏开发入门笔记--<躲砖块> (1)
- mysql中查看和设置系统字符编码 (1)
- PhoneGap-Accelerometer (1)
- [Jetty]Jetty工作原理 (1)
- Ibatis+Spring整合实例Demo+源码 (1)
最新评论
-
u012985907:
dsdsdsdsd
FLASH上传与拍照 -头像-avatart -
a379933101:
?????????????????????????????
android listview 连续调用 getview问题分析及解决 -
151tmac:
拜托下次粘贴的时候,粘贴为纯文本
android listview 连续调用 getview问题分析及解决 -
liudezhong135:
...
Spring3MVC 在JSP中使用@ModelAttribute -
香飘飘2011:
要是不知道层次级别,如何退回到根目录呢
FTP退回到根目录
?转自http://coolshell.cn/articles/4077.html <span class="date">2011-03-28 陈皓</span>
?
我们知道Unix/Linux下的程序配置文件从来都是纯文本的,你可以自由地修改和查看,他们也没有什么什么XML之类的玩意(参看XML的这两篇文章:<a title="信XML,得永生!" href="http://coolshell.cn/articles/2504.html" target="_blank">一</a>
,<a title="信XML,得自信" href="http://coolshell.cn/articles/3498.html" target="_blank">二</a>
),这个最重要的Unix文化(参看<a title="Unix传奇(下篇)" href="http://coolshell.cn/articles/2324.html" target="_blank">Unix传奇下篇</a>
)40多年来就这么沿续下来了。我很佩服Microsoft的创新能力,一会儿用INI,一会儿用注册表,一会又是用XML,这就是<a title="Windows编程革命简史" href="http://coolshell.cn/articles/3008.html" target="_blank">Windows的编程中那“强大”的创新</a>
。在网上又看到有人在争论为什么用注册表而不是纯文本,所以,写下这篇文章。
<h4>引入注册表所谓的原因</h4>
首先,让我们来看一下为什么微软觉得要使用注册表而不是ini文件,下面是一些其列出来的ini方面的毛病:
- ini文件不支持Unicode
- ini文件的安全权限不够
- ini文件在多进程下存取会有问题
- 如果一个进程锁上了这个文件,另一个进程就无法获得,只能出错。
- ini文件只能包含字符串,无法使用二进制
- 解析ini文件相对来说性能比较慢,第一次读写都需要把整个文件读入内存,然后再写回去。
- ini文件最大只有32K
- ini文件的默认目录在Windows系统目录下,只能这个目录只能Windows管理员才能访问
- ini只能包含了两层,对于多层不支持。
- 把ini文件放在中央服务器上管理很困难。
而微软说,注册表可以完美地解决这些问题。居然微软只说到了ini文件,但我觉得不单单是ini,所有的以纯文本方式保存配置文件的方法都会出现上述这样的问题。
<h4>我的观点</h4>
那么,当你在看到这些言论时,你是怎么想的?你有没有经过自己的独立思考?还是你觉得注册表完美地解决了所有的一切?下面是我的一些观点:
?
<li>
<span style="color: #800000;">首先,我们要知道没有任何一件事是完美的,凡事必然有好的一面,也有不好的一面。</span>
</li>
<li>
<span style="color: #800000;">其次,当我们在改进一个东西时,不单单要解决其不好的东西,还要把其好的东西给传承下来。</span>
</li>
所以,当你看到一些只说好或是只说坏的东西时,这往往意味着“宗教”或“洗脑”,这正是需要你独立思考的时候。
<h4>纯文本配置文件的好处</h4>
下面,是我觉得纯文本配置文件的好处(我用Unix下的纯文本配置文件来举例):
- 很容易进行版本管理(配置文件和程序代码一样都需要版本控制)
- 很容易移植到别的平台
- 很容易自定义文本文件的格式和语法,已也有相关的库支持(ini只支持ANSI字符,只有32K,只支持两级,那是ini的问题,解决这些问题不需要引入注册表)
- 可以在配置文本中写注释信息
- 你要很容易的使用grep,awk,sed等等以及来和脚本集成。
- 你就不用整个文件都读入内存,
- 你也可以分别设置上不同的存取权限,
- 同样可以减小多个进程同时存取的问题
- 同样可以引用别的二进制配置的文件
<li>你可以很容易地拆分配置文件把其放到conf.d中,这样一来,你就非常灵活
[list]
</li>
[/list]
<h4>真正的原因</h4>
可见,Windows 的注册表并没有把纯文本配置文件的这些好处都带过来,所以,经过这样的独立思考,我们可以知道,微软引入注册表的真正原因是——
- 让你的程序不具移植性,让你的软件永远运行在Windows上。
- 增加你编程的复杂度和你维护配置文件的复杂度,让你在痛苦之后,苦苦哀求微软再发布下一个“创新”。
各位程序员——Windows是很危险的,你们还是回火星去吧。
?
?转自http://coolshell.cn/articles/4077.html <span class="date">2011-03-28 陈皓</span>
发表评论
-
Ibatis+Spring整合实例Demo+源码
2012-02-08 12:58 1403<span style="color: ... -
[Jetty]Jetty工作原理
2012-02-07 17:29 993http://www.ibm.com/develo ... -
PhoneGap-Accelerometer
2012-02-07 14:23 1207采集设备在x、y、z方向上的动作。 acce ... -
mysql中查看和设置系统字符编码
2012-02-04 14:28 1707--查看数据库的字符集 show variables ... -
Html5游戏开发入门笔记--<躲砖块>
2012-02-03 12:04 1168学习了html5中的canvas画布元素,自己写了一个 ... -
我是项目经理,我的项目管理日记【20111202】
2012-02-03 10:19 994其实前段时间项目 ... -
打开CMD一闪就关的解决方案
2012-02-02 12:14 1386转:http://blog.163.com/cumt_ ... -
javabean的自动生成
2012-02-02 11:59 1400在jcreator pro中自动生成 在j ... -
CAP原理
2012-02-01 09:00 1152作者:NinGoo 原文链接:ht ... -
Struts标签循环List
2012-01-31 14:18 966<pre name="code&quo ... -
Android开发之初探音频的播放
2012-01-11 16:29 1087<h1>Android开发之初探音频的播放 ... -
关于成立北京Android爱好者俱乐部的声明
2012-01-11 14:33 860<blockquote dir="lt ... -
java.lang.NoClassDefFoundError: org/dom4j/DocumentException
2011-12-28 13:03 15096<span style="font-f ... -
电脑用户密码忘记了怎么办?
2011-12-28 12:14 981<span style="fon ... -
C#坦克大战实现
2011-12-20 13:29 1121记得在大学学java ... -
编程环境应该和讨论社区完美的进行结合
2011-12-19 11:54 761在学习.NET过程中,经常会遇到很多问题,有的时候会找 ... -
How to Succeed in A Professional Career
2011-12-19 10:29 731(From Microsoft)<br>& ... -
依然是计划 如果没有计划似乎就没有了动力
2011-12-15 10:39 879</span></span>& ... -
XSLT学习笔记
2011-12-14 14:04 668<p class="MsoNorma ... -
时空数据模型简介
2011-12-14 13:59 1483<p class="MsoNo ...
相关推荐
为实现将IE浏览器的纯文本字体修改为微软雅黑,我们可以通过修改注册表来实现。 知识点1:注册表的作用 注册表(Registry)是Windows操作系统的一种配置数据库,用于存储系统和应用程序的设置信息。在本文中,我们...
txt格式文件是一种纯文本文件,它可以使用文本编辑器打开和编辑。txt格式文件通常用于存储文本信息,例如文本文件、配置文件、日志文件等。 bat文件是什么? ---------------- bat文件是一种批处理文件,它可以在...
◆ 支持自由选择配置是存储在本地文件还是在注册表中 ◆ 支持建立和自由切换多个 ftp 帐户,支持上传下载(使用“打开”命令),支持ftp和本地列表混合输入和操作 ◆ 支持内置内容查看,查看内容包括媒体文件(wmp...
取纯数字时间文本模块 取非系统进程全路径文件名 取功能键状态 取汉字笔画 取汉字笔画模块-寒风 取汉字代码 取控件或窗口的标题 取拼音带声调1.2 取拼音首个字母 取声调拼音模块1.0 取十进制 取图片尺寸 取...
十六进制文本转十进制文本(1.0).zip 十进制转为十六进制1.1(1.0).zip 双功能自动编号模块(1.0).zip 四则混合运算(1.1).zip 世恒软件-登陆确认(1.0).zip 属性列静态控件(1.0).zip 搜索邮件(1.0).zip 数字的单双判断...
7:程序无需安装无写入注册表纯绿色软件,程序所作修改全保存在 Notepad.ini 配置文件中,不想用了随时Del删除就可以了..方便无残留 8:增加工具快捷栏 9:增加文字前景色和背景色 软件用法: 拷贝 Notepad.ini 到 C:\...
取纯数字时间文本模块.ec 取非系统进程全路径文件名.ec 取功能键状态.ec 取汉字笔画.ec 取汉字笔画模块-寒风.ec 取汉字代码.ec 取控件或窗口的标题.ec 取拼音带声调1.2.ec 取拼音首个字母.ec 取声调拼音...
取纯数字时间文本模块.ec 取非系统进程全路径文件名.ec 取功能键状态.ec 取汉字笔画.ec 取汉字笔画模块-寒风.ec 取汉字代码.ec 取控件或窗口的标题.ec 取拼音带声调1.2.ec 取拼音首个字母.ec 取声调拼音...
取纯数字时间文本模块.ec 取网卡参数.ec 取网页元素.ec 取腾讯TT浏览器的地址栏文本模块.ec 取非系统进程全路径文件名.ec 变速模块(1.0).EC 变速模块.ec 同步目录.ec 同步缩放控件.ec 同步缩放控件1.0.ec ...
取纯数字时间文本模块.ec 取非系统进程全路径文件名.ec 取功能键状态.ec 取汉字笔画.ec 取汉字笔画模块-寒风.ec 取汉字代码.ec 取控件或窗口的标题.ec 取拼音带声调1.2.ec 取拼音首个字母.ec 取声调拼音...
取纯数字时间文本模块.ec 磁性窗口2.0.ec 超级表达式计算.ec Excel功能模块.ec 隐藏进程.ec 隐藏进程模块(1).ec ODBC方式填充树型框.ec ADO方式填充树型框.ec 软件注册模块.ec 软件注册算号器模块.ec 超级列表框操作...
8、修正“时间_时间戳转文本”代码不严谨出现数组错误的BUG,感谢易友[455275321]反馈。 MD5:3E66BFA15806DEAFBCF11806EB99CC11 精易模块 V5.13 what’s new:(20150202) 1、修正“编码_ansi到usc2”当末尾出现10...
取纯数字时间文本模块.ec 取网卡MAC.ec 取网卡参数.ec 取网络文件尺寸.ec 取网页元素.ec 取 腾讯TT浏览器的地址栏文本模块.ec 取节气模块.ec 取试用数据.ec 取非系统进程全路径文件名.ec 变身_超级编辑 框.ec 变速...
取纯数字时间文本模块.ec 取网卡MAC.ec 取网卡参数.ec 取网络文件尺寸.ec 取网页元素.ec 取 腾讯TT浏览器的地址栏文本模块.ec 取节气模块.ec 取试用数据.ec 取非系统进程全路径文件名.ec 变身_超级编辑 框.ec 变速...
取纯数字时间模块(1.0).zip 取网卡参数(1.0).zip 取浏览器信息(1.1).zip 取数字型组合时间(1.0).zip 求真函数动态调用类(1.0).zip 求真文件对话框模块(1.0).zip 求真文件拖放模块(1.0).zip 求真树型框操作类...
提供纯文本,SSL,SASL_SSL和Kerberos的配置选项。 可以从此存储库安装的服务是: 动物园管理员 卡夫卡 架构注册表 REST代理 融合控制中心 Kafka Connect(分布式模式) KSQL服务器 文献资料 您可以在找到运行CP...
该程序使您可以从纯文本文件中导入带有域名的列表,或直接在主面板中键入主机名。此外,您还可以阻止,删除和解析域名,启用或禁用所选域以及使用默认的网络浏览器启动当前域。 BlueLife Hosts Editor 使您能够将...