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



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

  

user avatar   wdhwg001 网友的相关建议: 
      

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

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

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

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

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

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

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

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




  

相关话题

  为什么我的windows7开始菜单只有一列? 
  Windows 11 有哪些反人类的设计? 
  windows系统的升级,做成自动升级的必要性在哪里,为什么没有做成插件式升级? 
  长期使用 macOS 的人再回来用 Windows 的时候会有什么不适应? 
  为什么 Windows XP 会有上海政府版,这其中有什么历史? 
  windows系统为什么不预留一点资源(cpu和内存占用),在执行繁重任务时以保证系统本身的流畅运行? 
  为什么 Windows 的音量调节弹出来很慢? 
  Windows 没有 mac OS 流畅吗,为什么? 
  如何优雅地给妹子优化电脑(Windows)? 
  打开Windows HDR之后颜色很诡异怎么办? 

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





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