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



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

  

user avatar   wdhwg001 网友的相关建议: 
      

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

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

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

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

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

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

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

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




  

相关话题

  为什么这么多人吹wsl? 
  请问如何杜绝长辈电脑上的流氓软件? 
  Windows 单次运行时间久了为什么会卡? 
  Win10 将永久删除 FlashPlayer ,必须要 flash 时怎么办?可以用什么来替代它? 
  Linux 下 “一切皆文件” 思想的本质和好处在哪里?与 Windows 下的文件管理思想有啥差别? 
  Windows 单次运行时间久了为什么会卡? 
  为什么Windows 10 会发生全局性的Freeze? 
  微软在商业上要作出什么策略调整才能避免 Windows 被鸿蒙取代? 
  Windows 系统的笔记本可以安装 macOS 吗? 
  Windows 有哪些强烈不建议装的软件? 

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





© 2024-06-26 - tinynew.org. All Rights Reserved.
© 2024-06-26 - tinynew.org. 保留所有权利