写代码注意了!打死都不要用 User 这个单词
当你意识到你在项目开始时做的轻量、简单的设想竟然完全错了时,你已经用了六个月的时间投入到这个项目上。 现在你需要解决这些问题,才能让这个系统继续运行下去,你发现你用在这个项目上的精力远远超出了你的预期,如果一开始就用正确的方式来做,就不会发生这样的事。 今天,我要告诉你的是一个经常犯的错误,一个会给你带来无穷无尽的问题的单词,那就是“users”。 这个单词有两个最基本的错误: 1、对你的需求来说 “User” 几乎从来都不是一个好的描述。 2、“User” 会导致一个基本的设计安全缺陷。 “user” 的概念是模糊不清的,使用更精准的术语几乎总是能起到更好的效果。 最开始,没有任何一个软件系统真的有使用者存在。乍一看“user”是一个好的描述,但是你稍微一想就会意识到你的业务逻辑实际上比这要复杂的多。 我会使用三个例子,从一个极端的情况出发。 我曾经给机票预订系统写过访问控制逻辑,下面只是一小部分需求: 不再一一列举。一些与人类相关的基本概念是“旅客”,“代理”(网站也可是看作代理)和“购买者”。 “user”这个概念根本没用,并且在许多请求中我根本不会使用这个单词,举个例子,我们的请求必须包括旅客和代理人的证件,而不是使用者的证件。 Unix 没有 “users” 我们看一个不太一样的例子。Unix (这些天被称为POSIX)有用户,他们可以登录并执行代码。这样看起来很不错吧