上QQ阅读APP看书,第一时间看更新
1.1 过程:非线性但有序
许多开发者,从爱好者到经验丰富的专业人员,都有个习惯,那就是采取乱序的(或称“有组织的”)开发过程。代码本身和应用软件的首个版本,“就是”设计。那些功能是他们即兴加上的。没有文档说明应用软件目前的状况,以及将来会是什么样子。
在这种开发风格中,界面组件很容易随着新功能的添加而逐渐沉积到屏幕上。每次添加一点小功能,都似乎已经够了,只要一两个小的界面元素。最终你会有个“成熟”桌面应用软件的界面设计。这个应用软件积累了几十年的功能和用户界面(UI)元素。由于这个原因,“成熟”往往意味着“混乱和笨重”。
在早期,你越多地定义和规划应用软件,你就越容易避免这种命运。本书将用一种特定顺序来践行将灵感转换成软件的步骤:
·列提纲。
·画草图。
·画线框图。
·做实体模型。
·做原型软件。
但这仅是为了把它们以“某种”顺序呈现出来,并不意味着你得按这个顺序去做。在实际工作中,项目确实是按非线性且有组织的方式推进的,在这些步骤间交织,通过对手边设计问题最有效的解决路径进行,如图1.1所示。如果你想设计任何有价值的东西,即使在整体软件开发过程严格固定的单位,仍然需要在这些实践间往复、半随机性跳转。
图1.1 某软件设计项目的纷乱过程