读软件设计的要素05概念的特性
1. 概念的特性
1.1. 专一性准则(specificity principle)以为概念与意图应该一一对应
-
1.1.1. 专一性准则已被证明是概念规划中最有用的准则之一
-
1.1.2. 一个概念最多只能满意一个意图
1.2. 很少有没有意图的概念
-
1.2.1. 假如本应躲藏的用户机制被露出,或许会发生没有意图的概念
-
1.2.2. 无意图的概念会打乱界面并利诱用户
-
1.2.3. 无意图的概念是古怪的
1.3. 没有概念来完成意图或许是由于规划者范畴之外的约束,有时或许仅仅由于严峻的遗漏
- 1.3.1. 概念缺失则会导致更为杂乱的交互
1.4. 概念冗余,即多个概念服务于同一意图,会导致用户困惑与资源糟蹋
-
1.4.1. 概念冗余在两个本应相同的概念之间引进了令人困惑的差异,并迫运用户用不同的办法来做相同的作业
-
1.4.2. 概念冗余一般是由于在概念规划时只考虑了某些特定状况(或许是由子团队担任开发),而没有对软件的中心概念给予满意重视
-
1.4.3. 每个意图都应该经过最多一个概念来完成并防止概念冗余
-
1.4.4. 防止概念冗余当然也是合理的,由于可以节约精力
1.5. 概念过载,即一个概念具有多个意图
-
1.5.1. 过错聚合,规划者过错地将多个意图当成一个意图
-
1.5.2. 意图被拒,即规划者有意疏忽用户意图
-
1.5.3. 突发意图,概念跟着时刻的推移演化出新的(一般是不兼容的)意图
-
1.5.4. 搭载现象,即规划者企图将新意图挂靠在旧概念上,以便削减规划和完成作业
-
1.5.5. 概念过载会由于不相关意图的耦合而引进额定的杂乱性
-
1.5.6. 概念过载会导致功用受限,由于第二个意图被强加到原有概念之上
1.6. 导致软件杂乱性的增加和清晰度的下降
1.7. 共同性准则有助于承认有多个组成部分的意图终究算一个意图仍是多个意图、是否或许整合为一个单一意图,各部分是否有一起的利益相关者、它们是否为一个一起的任务服务,以及它们之间是否有抵触
1.8. 在软件规划中,概念和意图应该一一对应
-
1.8.1. 每个概念都应该有一个激起它的意图
-
1.8.2. 软件的每一个意图也都应该有一个完好的概念
2. 无概念的意图
2.1. 假如对规划进行审视,你或许会发现有些根本意图并没有与之对应的概念来完成
2.2. 一切软件都会跟着时刻的推移而开展,新的需求总会呈现
2.3. 规划之初就显着短少概念的意图
2.4. 通讯人概念
-
2.4.1. 大多数电子邮件客户端都短少通讯人概念,该概念用于辨认邮件的发件人和收件人
-
2.4.2. Gmail这样的关闭电子邮件系统很简略完成通讯人概念,但要想在更广泛的范围内完成这个概念,则需求通用的身份验证作为基础
-
2.4.3. 有了通讯人概念,电子邮件的发件人字段就无法被假造,垃圾邮件也将更简略遭到操控
2.5. 备份中的删去正告
-
2.5.1. 从计算机中删去的文件会在一段时刻(比方30天)之后从备份中被删去
-
2.5.2. 意图很清晰:阻挠客户将备份服务当作无限期的云存储
-
2.5.3. 备份软件可以供给一个概念来盯梢删去操作,并在删去操作发生时给出正告,这样就可以确认用户是否有意删去,防止在他们还没注意到之前就从备份中删去了文件
2.6. 短少款式概念
- 2.6.1. 一个概念在某一类软件中常常运用,但在另一类软件中却常常不可用,即便这个概念关于后者而言也十分有用
2.7. 不完好的模板概念
-
2.7.1. 由于软件的办法有限,导致这个概念的惯例意图无法完成
-
2.7.2. 解耦规划的要害是网站制作者不需求一开始就确认模板,而是可以先试着参加一些内容,然后看看内容在模板里看起来怎么
2.8. 跟着技能的遍及,人们很简略以为软件规划中一切的中心问题都现已处理了
- 2.8.1. 这些没有概念的意图标明,即便在人们最了解的软件中,还有一些最根本的需求没有得到满意,软件规划师依然有重要的作业要做
3. 概念冗余
3.1. 假如存在另一个用于相同意图的概念,那么当时的概念便是冗余的
- 3.1.1. 规划师开始看到了两个天壤之别的意图,但终究却发现它们仅仅同一个更通用意图的变体
3.2. Gmail的分类概念
- 3.2.1. 分类概念遭到否定的根本原因在于它是冗余的
3.3. Zoom播送
-
3.3.1. 播送概念是一个冗余概念
-
3.3.2. 谈天概念和播送概念好像具有相同的意图,但又不尽相同
-
3.3.2.1. 播送音讯在屏幕上闪过,而谈天音讯则呈现在翻滚的音讯记载中
-
3.3.2.2. 播送音讯可以跨过会议室,谈天音讯则不能
-
3.3.2.3. 播送音讯会很快消失,谈天音讯则会保留在音讯记载中
-
3.3.2.4. 在抱负状况下,谈天概念应该包括这两个概念的特性
3.4. 消除概念冗余将削减开发人员的作业,并为用户供给更简略、更强壮的东西
4. 概念过载
4.1. 最风趣的软件规划准则是一个概念最多只能有一个意图
4.2. 一个概念不能很好地满意两个意图
-
4.2.1. 意图辅导着概念规划的各个方面
-
4.2.2. 假如软件有两个不同的意图,它们必然会向不同的方向开展,而概念规划也有必要在它们之间做出退让
-
4.2.3. 更有或许的是,这种规划终究连一个意图也无法彻底满意,由于这个意图原本朝着一个方向开展,却被拉向另一个方向
4.3. 过错聚合(False convergence)
-
4.3.1. 过错聚合是指一个概念针对两个不同的功用,而这两个功用被过错地假设为具有相同的意图
-
4.3.2. Facebook的老友概念
-
4.3.2.1. 答应两个用户树立一种联系,在这种联系中他们可以看到互相的帖子
-
4.3.2.2. 躲藏了两个天壤之别的意图
> 4.3.2.2.1. 过滤:经过展现老友的帖子,Facebook为用户省去了亲身挑选帖子的费事
> 4.3.2.2.2. 拜访操控:经过挑选老友,用户可以挑选谁可以看到自己的帖子
- 4.3.2.3. 2011年增加了重视概念,只用于过滤帖子,而非拜访操控
4.4. 被拒意图(Denied purposes)
-
4.4.1. 被拒意图是指被规划者疏忽的意图,虽然用户有相应的需求
-
4.4.2. 列出候选意图然后将之否定一般是令人钦佩的,这是防止软件规划胀大的要害战略
-
4.4.3. 最有用的告诫是“规划最简略的东西”,这既适用于挑选要到达的意图,也适用于规划完成这些意图的概念
-
4.4.4. 以坚持用户界面的简略性为名忽视用户需求,从而否定一个意图,这也或许是一种果断的行为
-
4.4.5. Twitter中的保藏概念
4.5. 突发意图(Emergent purposes)
-
4.5.1. 突发意图是原有旧概念新发生的意图,一般由用户自己发明
-
4.5.2. 一个概念在规划时或许只需一个单一的、引人注意的意图,但跟着用户发现该概念的新用处,其他意图或许会呈现
-
4.5.3. 电子邮件的主题行概念
4.6. 搭载(Piggybacking)
-
4.6.1. 搭载现象指现有概念被调整或扩展以习惯新意图
-
4.6.2. 导致概念过载最常见的原因是,规划师看到了运用现有概念来支撑新意图的或许,因而没有规划新概念,省去了规划和完成新概念的费事
-
4.6.2.1. 规划师也或许以为用户会赏识概念更少、内在却更丰厚带来的经济性,但这一般是过错的
-
4.6.2.2. 比较于数量较少可是杂乱和令人困惑的概念,较多但共同、有说服力的概念更好
-
4.6.3. 富士相机的长宽比
-
4.6.3.1. 长宽比概念在RAW格局的文件上十分有用
-
4.6.3.2. 由于长宽比概念经过重载与JPEG格局相关联导致过载,因而不能独自将之用于JPEG格局
-
4.6.3.3. 即便你只想以RAW格局保存图画,而且自定义长宽比,在设置图画质量时也有必要挑选一起包括RAW和JPEG格局的文件,然后再删去JPEG文件
-
4.6.3.4. 弥补办法是供给一个与图画巨细概念不同的长宽比概念,使自定义长宽比的操作与挑选文件类型的操作彼此独立
4.7. 弥补办法
-
4.7.1. 尽或许精确地说明单一意图,并查看概念的不同动机是否真实反映了同一意图,这样可以防止过错聚合
-
4.7.2. 认真对待用户的定见和经历,特别是那些技能水平较低和较不愿意选用新技能的用户,这样可以防止呈现被拒意图
-
4.7.3. 突发意图是最难防止的,由于没有人可以猜测规划将以何种办法影响其运用场景并发明新的用处
-
4.7.3.1. 只需意识到突发意图的呈现,就可以增加新概念来处理这种概念过载
-
4.7.4. 应该防止将概念用于彼此对立的意图来优化规划的激动,应认识到这样节约下来的尽力会导致状况愈加杂乱,终究支付昂扬的价值
-
4.7.4.1. 防止呈现搭载现象
5. 意图的颗粒度和共同性准则
5.1. 规划是否冗余或过载取决于意图
5.2. 需求经过共同性测验,提醒多重意图伪装成一个意图的状况
5.3. 在抱负状况下,意图的设定不应该随事例不同而改变,也便是说,意图需求坚持共同
5.4. 从头设定意图
5.5. 一起的利益相关者
5.6. 一起任务
5.7. 无抵触
6. 分化概念
6.1. 处理概念过载的办法是分化概念,然后为每个意图树立一个新的概念
6.2. 回应概念,其意图是传递对帖子的情绪反应
6.3. 引荐概念,其意图是办理推送内容
6.4. 特征剖析(profiling),其意图是定向投进广告
6.5. 极点状况是,这三个概念或许构成一个简直彻底不同步的自由组合
6.6. 另一个极点状况是,三个概念彻底同步,回应按键也作用于引荐和特征剖析
-
6.6.1. 过载问题现已转化为过度同步问题
-
6.6.2. 至少在概念别离的状况下,规划中有更清楚的痕迹标明这些概念现已耦合在一起,而且即便企图在彼此抵触的不同意图之间寻求平衡,概念自身被损坏的危险也比较小
6.7. 概念分化之所以很有价值,在很大程度上是由于它答应将一个特别的概念(比方Facebook的点赞概念)分化成更共同、更通用的概念,从而为用户供给更简明的体会,并为记载和保存规划常识供给更好的结构