11、原型与便签架构
咱们须要构建原型,缘由是为了分析和揭示风险,并以大大下降的代价、为修正提供机会。与轿车制造商同样,咱们能够把原型用于测试项目的一个或多个具体的方面。框架
咱们每每觉得原型要以代码为基础,但它们并不老是非如此不可。与轿车制造商同样,咱们能够用不一样的材料构建原型。要为像工做流和应用逻辑这样的动态事物制做原型、便签就很是好。用户界面的原型则能够是白板上的图形、或是绘图程序或界面构建器绘制的无功能的模型。工具
原型的设计目的就是回答一些问题,因此与投入使用的的产品应用相比,它们的开发要便宜的多、快捷的多。起代码能够忽略不重要的细节——在此刻对你不重要, 但对后来的用户可能很是重要。例如,你在制做GUI原型,你不会因不正确的结果或数据而遭到指责。而另外一方面,若是你只是在研究计算或性能方面的问题,你也不会因不正确的结果或数据而遭到指责。而另外一方面,若是你只在研究计算或性能方面的问题,你也不会由于至关糟糕的GUI而遭到指责;甚至也能够彻底不要GUI。性能
但若是你发现本身处在不能放弃细节的环境中,就须要问本身,是否真的在构建原型。或许曳光弹开发方式更适合这种状况。学习
应制做原型的事物测试
你能够选择经过原型来研究什么样的事物呢?任何带有风险的事物。之前没有试过的事物。或是对于最终系统极端关键的事物。任何未被证实的、实验性的、或有疑问的事物。任何能让你以为不舒服的事物。你能够为下列事物制做原型:编码
原型制做是一种学习经验。其价值并不在于所产生的代码,而在于所学到的经验教训。那才是原型制做的要点所在。设计
怎样使用原型索引
在构建原型时,你能够忽略哪些细节?接口
由于原型应该遮盖细节,并汇集所考虑系统的某些具体方面,你可使用很是高级的语言实现原型——比项目其他部分更高级(也许是像Perl、Python这样的语言)。高级的脚本语言能让你推迟考虑许多细节,而且仍然能制做出能工做的代码。
制做架构的原型
许多原型被构造出来,是要为在考虑之下的整个系统建模。与曳光弹不一样,在原型系统中,单个模块不须要能行驶特定的功能。事实上,要制做架构原型,你甚至不必定须要进行编码——你可使用便签或索引卡片、在白板上制做原型。你寻求的是了解系统怎样结合成为一个总体,并考虑推迟细节。下面是一些你能够在架构原型中寻求解答的具体问题:
根据咱们制做原型的经验,最后一项每每会产生最让人惊讶和最有价值的结果。
怎样“不”使用原型
在你着手制做任何基于代码的原型以前,先肯定每一个人都正确理解你正在编写用过就扔的代码。对于不知道那只是原型的人,原型可能会具备欺骗性的吸引力。你必须很是清楚地说明,这些代码是用过就扔的,它们不完整,也不可能完整。
别人很容易演示原型外表的完整性误导,而若是你没有设定正确的指望值,项目出资人或管理部门可能会坚持要求要部署原型。提醒他们,你能够用轻木或胶带制造一辆了不得的新车原型,但你却不会在高峰时间的车流中驾驶它。
若是你以为你所在的环境或文化中,原型代码的目的极可能被误解,你也许最好仍是采用曳光弹的方法。你最后将获得一个坚实的框架,为未来的开发奠基稳定的基础。
使当地使用原型,能够帮助你在开发周期的早期肯定和改正潜在的问题点——在此时改正错误既便宜、又容易——从而为你节省大量的时间、金钱,并大大减轻你遭受的痛苦和折磨。