首页 - 我们的头条 - 联想售后,小苏打是什么,bingo-踢足球网,足球青训信息,西班牙青训介绍

联想售后,小苏打是什么,bingo-踢足球网,足球青训信息,西班牙青训介绍

发布时间:2019-05-21  分类:我们的头条  作者:admin  浏览:219

点击蓝色“程序猿DD”重视我哟

加个“星标”,不忘报到哦

来历:21CTO社区



当你认识到你在项目开端时做的轻量、简略的想象居然彻底错了时,你现已用了六个月的时刻投入到这个项目上。现在你需求处理这些问题,才能让这个体系持续运转下去,你发现你用在这个项目上的精力远远超出了你的预期,假如一开端就用正确的方法来做,就不会发作这样的事。

今日,我要通知你的是一个常常犯的过错,一个会给你带来无穷无尽的问题的单词,那便是“users”。

这个单词有两个最底子的过错:

  1. 对你的需求来说 “User” 简直历来都不是一个好的描绘。

  2. “User” 会导致一个底子的规划安全缺点。

“user” 的概念是含糊不清的,运用更精准的术语简直总是能起到更好的作用。

你没有运用者

最开端,没有任何一个软件体系真的有运用者存在。乍一看“user”是一个好的描绘,可是你略微一想就会认识到你的事务逻辑实际上比这要杂乱的多。

我会运用三个比方,从一个极点的状况动身。

机票预定体系没有“users”

我从前给机票预定体系写过拜访操控逻辑,下面仅仅一小部分需求:

  • 旅客可以运用预定记载码经过网站检查预定信息。

  • 购买者可以经过信誉卡号后四位数在网站上修正预定信息。

  • 旅行社可以检查和修正他们的预定。

  • 航空公司的值机人员可以依据人物和航空公司来检查和修正预定信息,这需求旅客供给身份信息。

不再一一列举。一些与人类相关的底子概念是“旅客”,“署理”(网站也可是看作署理)和“购买者”。“user”这个概念底子没用,而且在许多恳求中我底子不会运用这个单词,举个比方,咱们的恳求有必要包含旅客和署理人的证件,而不是运用者的证件。

Unix 没有 “users”

咱们看一个不太相同的比方。Unix (这些天被称为POSIX)有用户,他们可以登录并履行代码。这样看起来很不错吧?咱们深化看一下。

假如咱们把一切都当作“users”的话,咱们将会有:运用终端或许图形界面登录的人

  • 像邮件或许web服务器这种体系服务也会以“users”的身份运转,例如nginx可以以httpd用户运转。

  • 在服务器上常常会有多人同享一个管理员账号用来SSH登录(例如,亚马逊的Ubuntu虚拟机默许SSH账号便是‘ubuntu’)

  • root 身份,和上面其他身份都不同。

上面四个是简直不同的概念,可是在POSIX上他们都是 “users”. 一瞬间咱们就会看到,把这些概念都称为‘user’会导致许多安全问题。

在操作上,由于POSIX的用户模型鸿沟存在,咱们乃至不能找到一种方法说“只能让 Alice 和 Bob 经过这个账号登录”。

SaaS 服务供给商没有 “users”

Jeremy Green 最近就用户模型在SaaS中的使用在推特上发文,它第一次提醒了我写下这篇文章,他的底子观念是SaaS 服务简直总是:

  1. 某个安排中的一个人付出服务费用。

  2. 一个或多个人一起运用这个服务。

假如你一开端就把这些人作为一个用户,你将会堕入一个苦楚的国际。你无法树立团队模型,你无法组成一起为多人付出的模型,然后你就会开端改造你的体系。现在你在SaaS事例中学到了一课,咱们来看一看你的日子。

可是这仅仅很多比方中的一个:“users”的概念太含糊了。假如你开端置疑“user”这个词,终究你或许发现终究你其实只需求两个概念:团队(用来安排关系和付出)和成员(实际运用服务的人)。

“Users” 是一个安全问题

“user” 这个单词不仅是事务逻辑的问题,它也导致了一系列安全问题。“user” 这个单词如此的含糊以至于从底子上将两个概念兼并了:

  • 一个人。

  • 他们在软件中的代表性。

为了阐明这个问题,假定你正在拜访一个居心不良的网站,在它服务器上的图片导致了你的浏览器内存溢出。长途网站操控着你的浏览器,而且开端将你的文件上传到他的服务上。为什么它能这样做?

由于浏览器是以体系用户的身份运转的,它被以为与人类身份的你相同,实际上你们是不同的。 你作为’user’,不想上传文件。可是体系的账号也是‘user’,可以上传文件,假如浏览器运转在你的账号之下,他一切的行为会被当作是你的目的,也便是说是你让它这么做的,实际上不是。

这便是被称为Confused Deputy的问题。假如你运用“用户”这个词来描绘两个底子不同的东西,那么这个问题就更有或许成为你规划的一部分。

前期规划的价值

花更少的功夫处理相同的问题是成为高产程序员的要害。运用含糊不清的概念比方“用户”来安排你的软件,将会话费很多时刻和精力来处理未来发作的问题。一上来就开端编码看起来是高产的,现实恰好相反。

下次你开端一个新的软件项目时,花几个小时预先确定你的术语和概念:你依然不会彻底正确,但你会做得更好。未来的你将感谢你所做的一切防备糟蹋的作业。

本文来自:21CTO社区 翻译链接:http://21cto.com/article/2093 原文链接:http://t.cn/Eau2d0h


引荐阅览


号外:最近整理了之前编写的一系列内容做成了PDF,重视我并回复相应口令获取:

001 :收取《Spring Boot基础教程》

002 :收取《Spring Cloud基础教程》



活动介绍自律到极致-人生才精美:第4期

活动奖赏:《高可用可弹性微服务架构》* 10  ,点击阅览原文直接购买

扫描下面二维码报到参加

重视我,加个星标,不忘报到哦~


2019

与我们聊聊技能人的斜杠日子

下一篇
快捷导航
最新发布
标签列表