为什么有些软件设计得如何成功,而有些却很失败?为什么概念对伟大的设计很重要? 对于软件设计师而言,哪些设计原则有利于创造一个好软件? 我们常用的软件如苹果电脑中Mac系统的废纸篓,其本质是什么? 机票预订软件往往会用什么潜规则来牟取更多利益? 在《软件设计的要素》中,丹尼尔·杰克逊向读者展示了一些精彩和常见的软件案例,不管是软件架构师、程序员还是使用软件的普通读者,都可以从这本书中看到潜伏在日常软件界面之下的底层概念,从而更好地设计、使用软件。
售 价:¥
纸质售价:¥99.90购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
测一测 你了解爆款软件是如何诞生的吗?
推荐序 像工程师一样思考
中文版序 概念,一种全新的软件设计方式
概念与概念模型
分解概念
创新的简单性
概念模块化
大语言模型的影响
前言 为什么有些设计如此成功,而另一些却如此失败
如果你也对软件设计感兴趣
软件设计令人兴奋,也需要智力
如何选择适合自己的阅读方式
简洁之外
工作中的微狂者
引言 一场富有成效和愉快的对话
设计的热情
发散与收敛,设计的新思维
清晰和简洁的设计
概念模型,软件风靡的本质
这是对话的开始,而非结束
01 概念就像分子,成功的软件不可或缺
令人困惑的备份
Dropbox的“共享”错觉
Dropbox的文件夹概念
这是什么样的缺陷
设计的层次
心智模型,概念设计之源
02 掌握概念起作用的原则,做出更好的设计
概念可以表示单个软件
概念可以表示一类软件
概念可以区分软件
概念的复杂性是合理的
概念可以作为业务定义的核心
概念可以确定成本和收益
用概念分离关注点
概念都是以同样形式在各种软件中重复使用的
概念帮助识别软件的不可用性
概念可以确保设计的安全
概念可以回应对设计的评论
03 概念的结构,从样式概念到预订概念
废纸篓,苹果公司的杀手级概念
废纸篓的设计缺陷
样式,桌面出版背后的概念
似是而非的样式概念
预订,一个19世纪的概念
设计师的预订
04 概念的目的,以用户需求为中心
第一步是说清楚
第二步是确定目的的标准
第三步是深入理解目的
没有目的的概念
目的不明的概念
保姆骗局,不要使用令人困惑的概念
图像大小的故事
我的目的还是你的目的
欺骗性的目的
当目的没有实现时,我们如何用两招避免缺陷
糟糕的设计导致的致命错误
由场景变化引起的设计缺陷
旧问题再次出现
05 概念的组合,造就意想不到的力量
为什么传统的组合方式不起作用
一种全新的组合形式
自由组合,松散但彼此独立
合作组合
协同组合,在自动化间建立连接
废纸篓与文件夹的美妙协同
难以完美的协同
同步过度或同步不足
06 概念的关系,让设计的顺序更合理
从概念到软件
建立概念清单
通用概念清单
概念依赖关系图
一些熟悉的软件结构
07 概念的映射,从底层概念到物理界面
如何让一个简单概念变复杂
在界面中提供用户手册
有意混淆的深色图案
Gmail标签的秘密
可理解但无用的Backblaze存储
一个实时查看的难题
解决模棱两可的操作
标准控件不够用的问题
08 概念的特性,概念与目的一一对应
无目的的概念
无概念的目的
概念冗余
概念过载,一个概念最多只能有一个目的
错误聚合导致的概念过载
被拒目的导致的过载
突发目的导致的概念过载
搭载导致的概念过载
目的的颗粒度和一致性原则
分解概念
09 概念熟悉性,好用的概念常常可以重用
概念的重用
避免发明新概念
当扩展破坏熟悉性时
概念实例的一致性
10 概念完整性,一旦违反需要努力修复
报复顾客的餐厅老板
字体格式,一个长期存在的设计问题
使用Google Drive丢失了毕生的工作文件
结语 厘清概念的迷思,让你的软件设计更出彩
如果你是战略家、分析师和技术顾问
如果你是交互设计师和产品经理
如果你是支持材料编写者、培训师和营销人员
如果你是程序员和架构师
如果你是研究人员和软件哲学家
致我们所有人
致谢
附录
Alloy建模语言
本书思想的起源
什么是软件设计
编程知识
软件工程研究中的设计
关于验证及其文化影响
消除缺陷与软件质量
概念如何利于设计思维
形式规约与设计
关于简单和清晰
概念模型的起源
更加通用的菲茨定律和“物理”能力
语言误解的风险
冗余功能、臃肿和可发现性
不同复杂程度的概念模型
可学习性的限制
段落概念的力量
对废纸篓概念的误解
苹果公司的歌曲概念
常旅客概念
Gmail标签划算吗
关注点分离
重用概念的实现
苹果公司落后的同步概念
双因素身份验证攻击
关键系统:安全与安保
医疗设备的设计缺陷
为设计评论奠定基础的设计原则
设计评论vs用户测试
诺曼书中的彩蛋
目的不是目标
名称在设计中的重要性
状态就是记忆
操作原则
概念形式化
数据建模中关系的力量
错误的冲突检测:航空公司的预订例子
概念特征
设计思维的目的:发现需求
有益的困难
概念比喻没有帮助
呼叫转移的秘密
神秘的戳一戳概念
诺曼的冰箱
Git中的无目的概念
编程语言中的无目的概念
如何在苹果系统的文件菜单中找到旧的“另存为”命令
星形、心形和Twitter游戏
图像尺寸的新概念
形式综合论
为什么验证不能防止不匹配
因事故责备用户
灾难性概念的相互作用
组合的语义
布鲁诺·拉图尔的铭写理论
基于先前动作的许可
连接分离的关注点:页面和段落
Gmail中废纸篓和标签协同组合的细微之处
MIT Moira软件中的协同权衡
Teabox、协同作用和有趣的不匹配
Photoshop中引人注目的协同
Windows中废纸篓的早期设计
更多组合问题:清空时没有移除垃圾项目
同步过度带来的谷歌之谜
Adobe撤回更新
谷歌Forms的同步不足
Zoom的另一个同步问题
从Therac-25中学到的教训
新概念必须解决实际问题
一个用概念进行区分的例子
帕纳斯的依赖图
依赖关系产生于详细设计
关于主要和次要依赖关系的说明
Facebook的概念
Safari概念中的悖论
Keynote的概念
黑暗模式
Gmail中的标签映射
小的设计缺陷带来更大的痛苦
更好的Backblaze策略
标志和标签
Lightroom中的实时过滤难题
选择的概念和单项目动作
谷歌不经意的幽默
为什么Zoom有一个冗余的概念
由于目的不同而明显冗余
机械设计中的过载
社会观念过载
更多关于爱普生过载的信息
Photoshop的裁剪功能的过载
推荐、投票和因果概念
常规和激进的设计
亚历山大的设计模式
为什么PowerPoint有光标
将必然性作为一个设计原则
更多关于Lightroom的非常规导出预设
在通信录中使用昵称
心智模型的鲁棒性
特征交互和完整性
苹果Pages中的字体魔力和其他格式切换的乐趣
Google Drive中没有备份
更多关于Google Drive事故的信息
参考文献
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜