知识卡片
垂直抛弃原型的技术验证用途
内容
垂直抛弃原型常用来做技术验证——很多项目里存在一些项目组并不熟悉的技术点,如果这些技术点对项目成败影响重大,就应该先开发一个垂直抛弃原型演练一下,看它能否帮助解决预期问题,而不是带着未经验证的技术假设一头扎进正式开发。书中给出一个真实案例:作者曾负责一个J2SE项目,团队决定为自己的应用开发一个应用框架(回应”J2SE没有提供应用框架”这类常见批评)。用户可以通过菜单项、工具栏按钮、快捷键等多种手段向软件系统发出指令(对应MVC里的多种Controller),每种手段都要通过编程方式和处理逻辑挂接起来,这对大型应用程序而言很不方便——因此团队决定在应用框架中提供”数据驱动”的方法来完成控制方式和处理逻辑的挂接,这需要用反射(Reflection)技术支持处理逻辑类的实例化。为了验证这个想法是否可行,团队专门开发了一个小的垂直抛弃原型,来验证反射机制能否真的帮助达到预期目标——这个原型帮助团队实现了”尽早降低风险”的目标:如果反射机制被证明不可行,团队能在投入大量精力构建完整框架之前及时止损或调整方向,而不是等到框架基本成型才发现核心机制走不通。这个案例说明垂直抛弃原型的价值判断标准很明确:只针对”影响重大、又不确定是否可行”的具体技术点做验证,验证完就可以丢弃,不需要像[[水平抛弃原型:低成本启发真实需求]]那样考虑界面呈现,也不需要像演进原型那样追求产品级代码质量。
参考来源
- 位置:《软件架构设计:程序员向架构师转型必备》第11章《架构验证》"11.1.4 垂直抛弃原型"节(源文件:_epub-src/OEBPS/text00014.html)
- 结论依据:原文说明"垂直抛弃原型常用来进行技术验证……如果这些技术点对项目的成功与否影响重大,那么你应该通过开发垂直抛弃原型的方法,先演练演练它是否能帮助你解决预期的问题",并用J2SE应用框架反射机制验证案例说明"这个原型使我们实现了尽早降低风险的目标",直接支撑本卡片结论。
- 原始内容:为此,我们开发了一个小的垂直抛弃原型,来验证反射机制是否能够帮助我们达到预期的目标。这个原型使我们实现了尽早降低风险的目标。