百科问答小站 logo
百科问答小站 font logo



Windows 的注册表是个好的设计吗? 第1页

  

user avatar   wdhwg001 网友的相关建议: 
      

为啥我觉得都没答到点子上…注册表作为一个数据库,数据库的常见优势都是有的,但这并不能说明注册表设计是成功的——因为它有很显著的缺点。

首先是数据类型设计失败。注册表最大的问题就是“只有软件本身才知道这些项怎么改”,而这和注册表极其失败的数据类型设计是分不开的。

在人类的逻辑里,设置项首先要支持的是enum,因为enum可以清晰的看到有哪些可选项,枚举的名字也可以表达它的含义,但是注册表不支持enum,大家都是要么用字符串要么用数字代替的,前者让用户不知道有什么可选,后者让用户不知道选项是什么意思。

除了没有enum,注册表也不支持布尔型、路径和日期,甚至不支持单独的guid类型,大家同样只能hack,最终造成注册表里遍地都是不明所以的配置项,出了问题改注册表像是某种魔法操作一样。

另一个重大的失误是缺少应用级的注册表数据隔离。这个仿佛脑子进水一般的决定充满着geek对应用程序会乖乖遵守节操的幻想。而其结果,就是无论怎样都卸载不完整的应用程序和如同散沙一般的配置项存储位置了。

在已经犯下这么多严重设计失误的情况下,注册表还有另一败笔——层级设计极度失败。CurrentVersion是什么?正常的正确的搞个revision管理很难吗?HKCR里那一堆又是什么?扩展名和文件类型名分开成两个目录很难吗?Software里到底应该放厂名还是软件名?Windows是Software还是System?WindowsNT这么多年了还和Windows分开?

以上,虽然这些都完全不能改了,但依然忍不住想吐槽。

注册表就是个除了数据库的优势以外全是屎的屎山。




  

相关话题

  COM格式和EXE格式有什么区别? 
  如何评价 Windows 11 窗口 N 代同堂以及一个系统三个终端? 
  中了百度全家桶卸不掉怎么办? 
  为什么 Windows XP 会有上海政府版,这其中有什么历史? 
  为什么 Windows 是用 C 语言编写的,却默认对文件大小写不敏感? 
  mac里的Office使用宏时运行错误53,文件未找到user32,求解决办法,谢谢 ? 
  如果微软把 Windows 系统开源,允许第三方定制化,系统会更好用吗? 
  Windows安全策略里面有一个「登录之前需要按下CTRL+ALT+DEL」,这个策略有什么意义? 
  macOS 与 Windows 哪个更强,强在何处? 
  网传微软停止与华为合作 Windows 暂停供应新订单,对华为笔记本 Windows 授权会有何影响? 

前一个讨论
为什么虚数不能比大小?
下一个讨论
2022 年最适合写业务代码的编程语言是哪个?





© 2025-06-11 - tinynew.org. All Rights Reserved.
© 2025-06-11 - tinynew.org. 保留所有权利