- 浏览: 115674 次
- 性别:
- 来自: 天津
文章分类
最新评论
许多不同的行业都使用原型试验具体的想法:与完全的制作相比,制作原型要便宜得多。例如,轿车制造商可以制造某种新车设计的许多不同的原型,每一种的设计目的都是要测试轿车的某个具体的方面——空气动力学、样式、结构特征,等等。也许会制造一个粘土模型,用于风洞测试,也许会为工艺部门制造一个轻木和胶带模型,等等。有些轿车公司更进一步,在计算机上进行大量的建模工作,从而进一步降低了开销。以这样的方式,可以试验危险或不确定的元件,而不用实际进行真实的制造。
我们以同样的方式构建软件原型,并且原因也一样——为了分析和揭示风险,并以大大降低的代价、为修正提供机会。与轿车制造商一样,我们可以把原型用于测试项目的一个或多个具体方面。
我们往往以为原型要以代码为基础,但它们并不总是非如此不可。与轿车制造商一样,我们可以用不同的材料构建原型。要为像工作流和应用逻辑这样的动态事物制作原型,便笺(post-it note)就非常好。用户界面的原型则可以是白板上的图形、或是用绘图程序或界面构建器绘制的无功能的模型。
原型的设计目的就是回答一些问题,所以与投入使用的产品应用相比,它们的开发要便宜得多、快捷得多。其代码可以忽略不重要的细节——在此刻对你不重要,但对后来的用户可能非常重要。例如,如果你在制作GUI原型,你不会因不正确的结果或数据而遭到指责。而另一方面,如果你只是在研究计算或性能方面的问题,你也不会因为相当糟糕的GUI而遭到指责;甚至也可以完全不要GUI。
但如果你发现自己处在不能放弃细节的环境中,就需要问自己,是否真的在构建原型。或许曳光弹开发方式更适合这种情况(参见“曳光弹”,48页)。
应制作原型的事物
你可以选择通过原型来研究什么样的事物呢?任何带有风险的事物。以前没有试过的事物,或是对于最终系统极端关键的事物。任何未被证明的、实验性的、或有疑问的事物。任何让你觉得不舒服的事物。你可以为下列事物制作原型:
l 架构
l 已有系统中的新功能
l 外部数据的结构或内容
l 第三方工具或组件
l 性能问题
l 用户界面设计
原型制作是一种学习经验。其价值并不在于所产生的代码,而在于所学到的经验教训。那才是原型制作的要点所在。
提示16
Prototype to Learn
为了学习而制作原型
怎样使用原型
在构建原型时,你可以忽略哪些细节?
l 正确性。你也许可以在适当的地方使用虚设的数据。
l 完整性。原型也许只能在非常有限的意义上工作,也许只有一项预先选择的输入数据和一个菜单项。
l 健壮性。错误检查很可能不完整,或是完全没有。如果你偏离预定路径,原型就可能崩溃,并在“烟火般的灿烂显示中焚毁”。这没有关系。
l 风格。在纸上承认这一点让人痛苦,但原型代码可能没有多少注释或文档。根据使用原型的经验,你也许会撰写出大量文档,但关于原型系统自身的内容相对而言却非常少。
因为原型应该遮盖细节,并聚焦于所考虑系统的某些具体方面,你可以用非常高级的语言实现原型——比项目的其余部分更高级(也许是像Perl、Python或Tcl这样的语言)。高级的脚本语言能让你推迟考虑许多细节(包括指定数据类型),并且仍然能制作出能工作的(即使不完整或速度慢)代码。如果你需要制作用户界面的原型,可研究像Tcl/Tk、Visual Basic、Powerbuilder或Delphi这样的工具。
作为能把低级的部分组合在一起的“胶合剂”,脚本语言工作良好。在Windows下,Visual Basic可以把COM控件胶合在一起。更一般地说,你可以使用像Perl和Python这样的语言,把低级的C库绑在一起——无论是手工进行,还是通过工具自动进行,比如可以自由获取的SWIG[URL 28]。采用这种方法,你可以快速地把现有组件装配进新的配置,从而了解它们的工作情况。
制作架构原型
许多原型被构造出来,是要为在考虑之下的整个系统建模。与曳光弹不同,在原型系统中,单个模块不需要能行使特定的功能。事实上,要制作架构原型,你甚至不一定需要进行编码——你可以用便笺或索引卡片、在白板上制作原型。你寻求的是了解系统怎样结合成为一个整体,并推迟考虑细节。下面是一些你可以在架构原型中寻求解答的具体问题:
l 主要组件的责任是否得到了良好定义?是否适当?
l 主要组件间的协作是否得到了良好定义?
l 耦合是否得以最小化?
l 你能否确定重复的潜在来源?
l 接口定义和各项约束是否可接受?
l 每个模块在执行过程中是否能访问到其所需的数据?是否能在需要时进行访问?
根据我们制作原型的经验,最后一项往往会产生最让人惊讶和最有价值的结果。
怎样“不”使用原型
在你着手制作任何基于代码的原型之前,先确定每个人都理解你正在编写用过就扔的代码。对于不知道那只是原型的人,原型可能会具有欺骗性的吸引力。你必须非常清楚地说明,这些代码是用过就扔的,它们不完整,也不可能完整。
别人很容易被演示原型外表的完整性误导,而如果你没有设定正确的期望值,项目出资人或管理部门可能会坚持要部署原型(或其后裔)。提醒他们,你可以用轻木和胶带制造一辆了不起的新车原型,但你却不会在高峰时间的车流中驾驶它。
如果你觉得在你所在的环境或文化中,原型代码的目的很有可能被误解,你也许最好还是采用曳光弹方法。你最后将得到一个坚实的框架,为将来的开发奠定基础。
适当地使用原型,可以帮助你在开发周期的早期确定和改正潜在的问题点——在此时改正错误既便宜、又容易——从而为你节省大量时间、金钱,并大大减轻你遭受的痛苦和折磨。
发表评论
-
抽象类 抽象方法
2012-09-06 23:05 623抽象类和抽象方法必须用abstract来修饰。有抽象方法的类只 ... -
程序员修炼之道总结
2012-08-13 23:16 696第一章 我的代码让猫吃了 在所有弱点中,最大的弱点就是害 ... -
程序员修炼之道——25怎样配平资源
2012-08-12 09:54 691只要在编程,我们都要管理资源:内存、事务、线程、文件、定时器— ... -
程序员修炼之道——18调试
2012-08-12 09:43 610这是痛苦的事: 看着你自己的烦忧,并且知道 不是别人、而是 ... -
程序员修炼之道——17源码控制
2012-08-12 09:26 776进步远非由变化组成,而是取决于好记性。不能记住过去的人,被判重 ... -
程序员修炼之道——16 强力编辑
2012-08-12 09:25 588Use a Single Editor Well 用 ... -
程序员修炼之道——估算
2012-08-11 16:45 737快!通过56k modem线发送《战争与和平》需要多少时 ... -
程序员修炼之道——12领域语言
2012-08-11 16:27 615语言的界限就是一个人的世界的界限。 ——维特根斯坦 ... -
程序员修炼之道——正交性
2012-08-11 11:24 600如果你想要制作易于设计、构建、测试及扩展的系统,正交性是一个十 ... -
程序员修炼之道——不要重复自己
2012-08-11 11:01 623DRY – Don’t Repeat Yourself 不要 ... -
程序员修炼之道——交流
2012-08-10 12:22 649我相信,被打量比被忽 ... -
程序员修炼之道——你的知识产
2012-08-09 21:40 635知识上的投资总能得到最好的回报。 ——本杰明•富兰克林 ... -
程序员修炼之道——足够好的软件
2012-08-08 21:01 639欲求更好,常把好事变 ... -
给IT新人的15点建议:苦逼程序员的辛酸反省与总结 .
2012-06-30 20:50 533很多人表面上看着老实巴交的,实际上内心比谁都好强、自负、虚荣、 ... -
ffd
2012-06-30 20:49 0“有人说:女生到社会 ... -
开始工作的是个不要
2010-11-27 22:15 666第一:不要认为停留在 ...
相关推荐
cRIO平台助力电动汽车充电系统研发——快速原型与硬件在环仿真.pdf
【标题】"SpringCloud 在线教育 —— 界面原型.rar" 涉及到的知识点主要集中在构建基于 SpringCloud 的在线教育平台的用户界面设计上。SpringCloud 是一个微服务开发工具集,用于简化分布式系统(如配置管理、服务...
提出宏观制度经济学的基本理论架构,即基于后古典主义经济学,以制度价值论与量化理性为理论基础,以泛函分析为主要方法,研究制度如何构建价值空间、管理社会理性、规定经济秩序,以及在此基础上进行制度输出与价值分配...
原型模式(Prototype Pattern)是一种创建型设计模式,它允许我们通过复制现有的对象来创建新对象,而无需知道具体创建过程的细节。这种模式的核心在于,它提供了一种对象克隆的简便方法,使得对象的创建过程对用户...
总之,《Axure夜话之程序员眼中的原型设计》是一个面向程序员的实战型教程,旨在提升程序员在原型设计领域的专业素养,通过理论与实践的结合,帮助他们在日后的开发工作中更加游刃有余。无论是对个人技能的提升,...
《大巧不工:Web前端设计修炼之道》以Web前端设计的流程为主线,以前端设计的方法和原则为基础,围绕原型设计、模型设计、可用性设计、一致性设计和以用户为中心的设计等关键技术探讨了前端设计的规范、技巧与最佳...
本教程“Axure夜话之程序员眼中的原型设计视频教程之竖向文字跑马灯”专注于讲解如何利用Axure这一强大的原型工具创建具有竖向文字跑马灯效果的交互设计。 Axure是一款广泛使用的原型设计软件,特别适合产品经理、...
"Axure夜话之程序员眼中的原型设计"是一系列视频教程,由资深教育专家老二牛车教育程矢主讲,旨在帮助程序员更好地理解和运用原型设计工具Axure。在这一特定的章节——"循环操作之死循环"中,我们将深入探讨如何在...
【标题】"Axure夜话之程序员眼中的原型设计视频教程之横向文字跑马灯.rar",这个压缩包文件主要围绕着一个特定的主题——Axure原型设计,特别是针对程序员视角的横向文字跑马灯效果的实现。Axure是一款广泛使用的...
工业园区智慧化管理平台移动端原型(axure8),用户为工业管委内各职能部门、工业企业等。下设交流平台、信息发布、工作管理等。下载需用axure8版本及以上打开。
"Axure夜话之程序员眼中的原型设计视频教程之进度条"这个课程,专注于讲解如何使用Axure工具来创建进度条组件,这对于提升项目开发效率和用户体验至关重要。 Axure是一款广泛使用的原型设计工具,它允许设计师快速...
原型设计报告 原型设计报告是指团队第二次作业的原型设计报告,主要涉及到APP的设计思路和原型展示。该报告分为四个部分:产品概述、设计思路、原型展示和总结。 产品概述部分主要介绍了该APP的功能和特点。该APP...
"Axure夜话之程序员眼中的原型设计视频教程之进度条"是一个针对这一主题的专业教学资源,由资深教育机构老二牛车教育提供。在这个教程中,程矢老师深入浅出地讲解了如何利用Axure进行原型设计,特别是关于进度条的...
"Axure夜话之程序员眼中的原型设计"视频教程,由资深教育机构老二牛车教育的程矢老师主讲,聚焦于如何制作符合程序员需求的原型,特别是关注字符数范围这一细节。 Axure是一款强大的原型设计工具,深受产品经理和...
本教程——"Axure夜话之程序员眼中的原型设计视频教程之横向文字跑马灯"专注于讲解如何在原型中实现一种动态效果:横向文字跑马灯。这一效果常见于网页或应用的滚动公告、新闻更新等场景,通过不断滚动文本,节省...
"Axure夜话之程序员眼中的原型设计视频教程之开关按钮"这个主题,主要关注的是如何使用Axure这款工具来创建具有开关按钮的交互原型。 Axure是一款强大的原型设计工具,它允许设计师通过拖放组件和设置交互规则来...
"Axure夜话之程序员眼中的原型设计"视频教程,由老二牛车教育程矢提供,专门探讨了在程序员视角下如何有效地进行原型设计,特别是涉及到字符数范围这一细节。 Axure是一款流行的原型设计工具,它允许设计师快速创建...
"Axure夜话之程序员眼中的原型设计视频教程之时钟实现.zip"是一个专门针对程序员的教程,通过时钟的实现来讲解如何使用Axure进行原型设计。 Axure是一款强大的原型设计工具,广泛用于快速创建交互式线框图、原型和...
产品原型——电商APP
产品原型——鲨鱼记账