读软件设计的要素02概念的意图
1. 要素
1.1. 概念的界说包含称号、意图、状况、操作和操作准则
1.2. 操作准则(operational principle)
-
1.2.1. 操作准则用于展现怎么经过操作完成意图,这是了解概念的要害
-
1.2.2. 展现怎么经过操作的组合完成概念的意图,包含一个或多个典型的运用场景
-
1.2.3. 操作准则并没有添加任何信息,由于你彻底能够从操作规范中推理出任何运用场景
1.3. 每个概念都是某人在某个时刻出于某种意图而创造的
- 1.3.1. 跟着时刻的推移,大多数被广泛运用的概念都得到了进一步的扩展和完善
1.4. 大多数概念是通用的,能够应用于不同类型的数据以及场景中
- 1.4.1. 通用性有助于概念的重用,也有助于提炼概念的实质
1.5. 概念能够被彼此独登时规划和了解
- 1.5.1. 为了简化软件规划,能够将规划分解成不同的子问题,许多子问题都能够经过概念的重用来处理
1.6. 概念并不能处理一切的规划问题,可是的确能够经过找出特定的概念来协助咱们发现规划中的应战
1.7. 概念不只包含它标明的行为、关于其规划的一切现存常识、或许呈现的完成问题,还包含软件规划师处理这些问题的各种办法
1.8. 概念状况(state),将概念中触及的项目组织成各种结构
2. 废纸篓
2.1. 苹果公司的杀手级概念
2.2. 废纸篓概念是苹果公司在1982年为丽萨电脑创造的
2.3. 实在的立异并不是用户能够把东西拖进废纸篓,而是用户还能够康复它们
- 2.3.1. 废纸篓概念的意图并不是删去,而是吊销删去
2.4. 在废纸篓概念中,只要两种状况
-
2.4.1. 可拜访(accessible),标明仍在废纸篓以外、能够拜访的项目调集
-
2.4.2. 已删去(trashed),标明已删去但没有永久删去的项目调集
2.5. 废纸篓概念中有两种场景
-
2.5.1. 一种是康复场景:删去一个文件后再康复它
-
2.5.2. 一种是永久删去场景:删去一个文件后,再清空废纸篓,用户将再也无法拜访这个文件
2.6. 一种常见的变体便是,当删去某个文件一段时刻后,例如30天,体系就会主动永久删去这个文件
2.7. 规划缺点
-
2.7.1. 整个体系只要一个废纸篓
-
2.7.1.1. 当你刺进和移除外部驱动器时,假如从这些驱动器中删去文件,废纸篓的内容就会随之改动
-
2.7.1.2. 变通办法,只是添加了一个“当即删去”选项,答应用户一键永久删去废纸篓中指定的文件
-
2.7.2. 废纸篓的另一个规划缺点与已删去文件的显现方法有关
-
2.7.2.1. 用户一向没有办法按删去日期对废纸篓中的文件进行排序
-
2.7.2.2. 2011年,苹果公司的OS X Lion操作体系开端答应用户按“创立日期”对文件夹中的文件进行排序,而这个日期关于废纸篓而言就应该是文件删去日期
3. 款式
3.1. 桌面出书背面的概念
3.2. 款式概念的状况的映射联系
-
3.2.1. 一种是指定(assigned),为元素指定一种款式
-
3.2.2. 另一种是界说(defined),为款式界说一种格局
3.3. 款式概念还在不断丰富,乃至触及一些格局的分层
4. 预定
4.1. 一个19世纪的概念
4.2. 预定概念有助于有限资源的有用运用
-
4.2.1. 资源供给者期望资源运用率尽或许高
-
4.2.2. 顾客期望有需求时就能够得到并运用资源
4.3. 预定概念要起效果,就需求盯梢与预定相关的内容,包含被预定的资源和预定资源的顾客
-
4.3.1. 顾客除进行预定并终究运用资源之外,还能够在他们决议不需求资源的时分撤销预定
-
4.3.2. 预定一般是免费的,资源供给者还需求防止用户总是预定资源却从不实在运用它
-
4.3.2.1. 假如客人有太屡次缺席,他的账户将被停用
4.4. 预定概念的意图是有用运用资源
4.5. 预定概念的操作准则是关于怎么预定并运用资源
4.6. 预定概念的状况是与预定相关的全部内容
4.7. 预定概念的操作:预定、运用资源和撤销预定
-
4.7.1. 预定概念中的操作包含由资源一切者(如餐厅)履行的用于供给和收回资源的行为
-
4.7.2. 资源在被预定的状况下不能收回,但实践上更好的规划是答应收回,比方隐式地撤销预定
4.8. 预定概念在许多不同的范畴都十分有用
-
4.8.1. 铁路运输要求列车在进入路段之前预定轨道来确保安全,这样体系就能够确保不会有两列火车一起占用同一路段
-
4.8.2. 在网络中,有一种资源预留协议(resource reservation protocol,RSVP),它答应路由器预定带宽,以便在某段时刻内确保必定水平的网络功能,即“服务质量”
5. 概念的意图
5.1. 以用户需求为中心
5.2. purpose
-
5.2.1. 意图关于日子的各个方面都很重要,由于意图能够协助咱们设定方向,向别人解说自己,并在协作中到达一致
-
5.2.2. 在意图这件事上,规划与其他活动没有什么不同,你不或许在自己都不知道想要什么的状况下就规划好一件东西
-
5.2.3. 关于软件规划师来说,意图能够标明他们对概念的规划和完成方法是合理的
-
5.2.4. 意图即将服务于谁?
-
5.2.4.1. 告诉概念声称是为用户供给实时的更新,让用户随时了解状况
> 5.2.4.1.1. 它的实在意图是进步“用户参加度“
- 5.2.4.2. 标签概念的意图好像很简略,便是协助人们更简单地找到特定人的帖子
> 5.2.4.2.1. 标签概念奇妙地添加了两组朋友间的交际联系
5.3. 概念规划首先要针对每个概念提出一个简略的问题:它是做什么用的?
5.4. 用户了解一个概念的意图是运用它的先决条件
- 5.4.1. 许多用户手册和协助攻略解说了操作的细节,但没有解说意图,这关于用户特别是新手来说很不友爱
5.5. 一个概念的意图应该是有说服力、以需求为中心、详细和可评价的
- 5.5.1. 概念的意图很少能够用比方解说清楚
5.6. 没有意图的概念是可疑的
- 5.6.1. 呈现这种状况一般是由于这个概念底子不是一个实在的概念,而是一种不想露出给用户的内部机制留下的痕迹
5.7. 对概念意图的混杂会导致误用,并或许导致用户做出令他们懊悔的行为
5.8. 规划缺点会导致概念无法完成其意图,但这是难以预料的,由于运用场景会跟着时刻而改动
-
5.8.1. 规划缺点一般是不行猜测的,这种缺点既或许是方法与运用场景不符,也或许是概念无法完成它们的意图
-
5.8.2. 概念并不能彻底消除规划缺点,但它的价值在于供给一个结构来削减规划缺点,结构增强了概念意图的效果,并给出了一种把概念规划和运用中堆集的经历和常识组织起来的结构
5.9. 只是知道为什么要规划软件也是不行的,你还需求为规划中的每个概念找到意图
-
5.9.1. 为概念确认意图其实是一项困难的作业,但它会带来处理问题的洞察力,并迫使咱们专心于重要的作业
-
5.9.2. 在软件规划方面,由于它有无限的杂乱性,人们很简单堕入细节并失掉对全局的把控
6. 过程
6.1. 说清楚
-
6.1.1. 一个概念有必要有清晰的意图才会易于运用
-
6.1.2. 软件规划师不能将概念视为自己的隐秘,有必要与用户同享意图
6.2. 确认意图的规范
-
6.2.1. 意图总是与必定场景中人的需求相关,因而难以用逻辑或数学的方法评价,而只能以非正式或粗线条的方法评价
-
6.2.2. 有说服力
-
6.2.2.1. 意图应该是对一个清晰的需求有说服力的表达,而不是对用户的某些希望或或许要履行的操作的一些含糊标明
-
6.2.3. 以需求为中心
-
6.2.3.1. 意图有必要表达用户的某个需求,而不是只是重复描绘含义不明的行为
-
6.2.4. 详细
-
6.2.4.1. 意图有必要满意详细,以便于概念规划
-
6.2.5. 可评价
-
6.2.5.1. 意图应该能供给衡量概念的规范
6.3. 深化了解意图
-
6.3.1. 了解呼叫搬运概念的两个不同意图
-
6.3.1.1. 一种意图是托付搬运,答应一个人将对自己的呼叫托付给其别人
-
6.3.1.2. 另一种意图是跟从搬运,当一个人在不同的当地作业时,答应将对他的呼叫搬运到不同的方位
-
6.3.1.3. 托付搬运概念和跟从搬运概念都服务于自己的意图
7. 没有意图的概念
7.1. 一个概念或许底子没有令人信服的意图,这会让人们对它的用途发生一些置疑
7.2. 概念缺少意图一般是由于没有针对用户实在的需求进行规划,而只是以一种更简单的方法规划
7.3. 无意图的概念是将底层机制露出给用户的成果
7.4. 概念需求一直面向用户,并且它的意图不只需求对程序员有含义,并且需求对用户有含义
7.5. 旧式的混水龙头
-
7.5.1. 假如你想进步温度,你能够开大热水水龙头,关小冷水水龙头,可是流量也会相应发生改动
-
7.5.2. 假如你只想添加流量,则需求翻开两个水龙头,细心调整它们以从头到达所需的温度
-
7.5.3. 在这两种状况下,用户一般都需求进行屡次调整
7.6. 新式的混水龙头
- 7.6.1. 龙头具有两个独立的控件,旋转把手能够调理温度,上下移动把手能够调理流量
7.7. 编辑器缓冲区(editor buffer)从前是一个常见的概念,满意了一些用户需求,但现在它不再引人注意
- 7.7.1. 无意图的编辑器缓冲区概念被筛选了
8. 意图不明的概念
8.1. 假如用户不清楚一个概念的意图,就很或许不按软件规划师规划的方法运用
8.2. Twitter
-
8.2.1. 事实证明,保藏概念的实践意图是记载用户对推文的认可,以供其别人检查,也便是一般所说的“喜爱”或“点赞”概念
-
8.2.2. 书签(bookmark)的新概念,该概念能够经过推文的“同享”菜单拜访
8.3. 一个意图不明的概念会发生紊乱
-
8.3.1. 图画的分辨率并不代表图画的质量,除非你知道图画的巨细
-
8.3.2. 像素阵列
-
8.3.2.1. 图画标明为五颜六色像素的二维阵列,这是一个现在遍及承受但从前急进的主意
-
8.3.3. 从头采样是一种更杂乱的操作,会改动像素的数量
-
8.3.4. 图画巨细
-
8.3.4.1. 它的意图是以物理尺度描绘图画,这很简略但也很古怪,由于咱们一般不认为数字图画具有物理尺度
-
8.3.5. 图画分辨率自身并不是一个概念,而是假定图画以给定的尺度打印时的打印质量
-
8.3.5.1. 果像素阵列为1000像素方阵,图画巨细为10英寸正方形,则分辨率为100像素/英寸
8.4. 不要运用令人困惑的概念
- 8.4.1. 误解概念的意图很或许会导致乱用概念
9. 欺骗性的意图
9.1. 一切问答网站都有用户概念,大约是为了阻挠废物信息和低质量答案
- 9.1.1. 网站会以此来约束拜访,以至于用户在没有登录的状况下无法检查问题和答案,更不用说发布新问题了
9.2. 推手民调是一个规范的民间查询,其意图是经过汇总民间的反响来取得一些有用的信息
-
9.2.1. 实在意图是赢得你的支撑
-
9.2.2. 推手民调一般是为了利益,经过问你一些暗示性的问题来改动你的观念
9.3. 直达航班概念是由航空公司创造的,以呼应前期的订票体系,这种体系更偏心只要一个航班号的航线
-
9.3.1. 直达航班概念能够使航空公司的这些航线愈加杰出,从而使顾客更有或许购票
-
9.3.2. 顾客不了解这个意图,没有意识到直达不必定是直飞
10. 防止缺点
10.1. 规划最好的成果是方法和场景之间完美符合,就像小朋友玩的木制拼图,一块块严密贴合
10.2. 你永久无法彻底猜测规划中或许存在的缺点,但你至少能够运用曾经发现缺点的经历
10.3. 将规划分解为多个概念,这样使规划适配的全体应战就能够简化为一组更易于办理的子问题
10.4. 概念是能够重复的,并能够供给跨场景的共性
10.5. 糟糕的规划导致的丧命过错
10.6. 由场景改动引起的规划缺点
10.7. 旧问题再次呈现