《iOS应用软件设计之道》—— 2.2 谈话中论设计

简介:

本节书摘来自华章出版社《iOS应用软件设计之道》一 书中的第2章,第2.2节,作者:(美)William Van Hecke ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.2 谈话中论设计

你在开会。会议已经开了半个小时。每个人都在谈论你关于Framistan应用软件设计的提议。他们都自认为清楚你提案的概念和分歧。有些人赞成你的想法,有些人则反对。
最后,为了阐明其中一些细节的要点,你把Framistan画到白板上。突然,房间里有一半人站了起来:“我没想到这里有个‘取消’按钮!”,“噢,这只是个消息框,而不是全屏窗口?”,“啊,但如果你旋转了iPad,结果会怎么样呢?”,等等。这说明每个人对Framistan都是各不相同、模糊不清的想象。一旦他们明白你对Framistan的外观是如何构思的,他们才能建设性地添加自己的主意。
用草图开启这样的会议,并在交谈过程中不断绘制草图,能够杜绝这种混乱。随着会谈地进行,草图也不断进化,体现出团队对你的思路的共同理解。删除一些东西,砍去某个东西,添加一些东西,让草图不停更新。由一至两个人负责绘制,以便让草图在更新时保持连贯性。如果有竞争性的思路,要把它们逐个画出来。完工后,你可以拍下白板(或纸张、iPad)的照片,通过电子邮件发给组里所有的人,并添加到设计文档中。
无论在哪儿,只要谈及设计,都应有个白板或者其他不费气力的工具供你绘制草图。经常删除上面的内容,鼓励人们使用这些工具(参看图2.1)。
当然,你也许并不在一个团队工作。你可能是孤独的设计加开发人员。那就随意画草图吧。只运用你的想象力还不够,还需要个快捷的方法来自我交谈。你可能会发现,你做过的假设并不成立,或者忘记了某些重要的组件。最终,你对应用软件轮廓会有个好得多的设想,你会更好地准备明确该产品的规范。
许多时候,你在画草图时中途嘎然而止,意识到其背后思路其实是错的——这很好。你越早画出草图,就能越早地发现其错误之处。标新立异的草图是迅速剔除走到死胡同思路的绝佳办法。
即使你已经知道某个想法是错误的,把它画出来仍有助于你找出原因,怎样可以做得更好。标出它错误的地方。也许这个错误草图的某个地方还能激发出新的想法,让你收获正确的草图。
橡皮鸭法
编程领域里有个橡皮鸭法,它也适用于设计人员。这个故事来源于某个不知名的程序员,他的办公桌上放着一只橡皮鸭,只要他遇到一个看似难办的问题时,他就面对这个橡皮鸭,跟它说话,把问题解释给它听,如同它就是一只不懂编程细节的水鸟。相类似,试着把你的问题讲给别人(任何人)听,当你说清楚时,解决的办法可能就显现出来了。
设计人员的橡皮鸭法与此相似,只不过经常还包括绘制草图这个过程。如果你遇到没有明显答案的问题,就把它画出来。把它一步步地讲出来,如同向一个对你所做项目毫不知情的人讲话。你会惊奇地发现,这种做法经常能不知不觉地降低问题的复杂性。

7c9a47159cc2adb1dc7d75ee1f82e12434624423

许多时候如果设计者把橡皮鸭当成一名团队成员,无意中就能解决问题。我的组员Joel有时随意晃到我的办公室,和我谈谈他正揪心的设计问题。大部分时间,我们都会正常地来回交谈。但后来有个项目我没参与,所以他先向我说明事情的现状,终于提到所遇到的问题,并试着把存在的麻烦告诉我。同时他在我的白板上涂鸦。在某句话说到一半时,他突然很兴奋,因为有个主意钻进了他的脑海。他打断了刚才的话:“所以我们不能用‘编辑’按钮做这件事……除非……是啊,太感谢了,Bill!”在这个时刻,我并未说一句话,依然帮助Joel解决了问题。我说:“我很乐意今天当了你的橡皮鸭。”而他,匆忙回到办公室去实现他的新主意。

相关文章
|
设计模式 前端开发 iOS开发
iOS设计模式
iOS设计模式
125 0
|
存储 jenkins 持续交付
自己动手设计一款iOS自动构建发布工具
自己动手设计一款iOS自动构建发布工具
285 0
自己动手设计一款iOS自动构建发布工具
|
iOS开发
iOS头部渐变的表格视图设计(二)
iOS头部渐变的表格视图设计
109 0
|
iOS开发
iOS头部渐变的表格视图设计(一)
iOS头部渐变的表格视图设计
105 0
iOS头部渐变的表格视图设计(一)
|
iOS开发
设计iOS中随系统键盘弹收和内容文字长度自适应高度的文本框
设计iOS中随系统键盘弹收和内容文字长度自适应高度的文本框
174 0
设计iOS中随系统键盘弹收和内容文字长度自适应高度的文本框
|
开发工具 git iOS开发
iOS简易蓝牙对战五子棋游戏设计思路之一——核心蓝牙通讯类的设计(二)
iOS简易蓝牙对战五子棋游戏设计思路之一——核心蓝牙通讯类的设计
200 0
|
算法 iOS开发
iOS简易蓝牙对战五子棋游戏设计思路之一——核心蓝牙通讯类的设计
iOS简易蓝牙对战五子棋游戏设计思路之一——核心蓝牙通讯类的设计
138 0
|
存储 开发框架 C#
iOS数据持久化之二——归档与设计可存储化的数据模型基类(二)
iOS数据持久化之二——归档与设计可存储化的数据模型基类
197 0
iOS数据持久化之二——归档与设计可存储化的数据模型基类(二)
|
存储 iOS开发 开发者
iOS数据持久化之二——归档与设计可存储化的数据模型基类(一)
iOS数据持久化之二——归档与设计可存储化的数据模型基类
141 0
iOS数据持久化之二——归档与设计可存储化的数据模型基类(一)
|
iOS开发 前端开发 Swift
iOS中基于协议的路由设计
前段时间对我们自己的App做了结构上的重构,抛弃了之前简单的MVC开发模式。本文将重点分享重构中的Router模块。