首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

你已经了解了框架在支持应用开发方面的出色表现,但尽管应用框架在很多情况下都是最佳之选,这并不意味着选择应用框架总是正确的。在探索应用框架潜力的同时,我们一定也不要忽视了开发应用系统的目的。关于开发和使用应用框架,我们需要考虑两件事情以判断应用框架是否有助于我们达到目的,那就是框架开发和用户培训。

1.4.1  框架开发

开发应用框架并非易事,也不廉价。为了开发出高度可用和可扩展的框架,你需要首先找到合适的人选——他们不但是业务领域的专家,还是软件设计和开发的专家。上述两项技能缺一不可:没有业务知识,就无法开发特定业务领域框架层(business-domain-specific framework layer),应用开发人员要依靠该层弥补他们业务领域知识的欠缺;没有软件开发技术知识,就无法将框架思想贯彻到具体的框架代码中去,会导致应用开发人员无法重用和扩展这些代码。开发高质量框架,找到业务领域和软件开发的双料专家是第一关。

无疑,框架的设计和实现需要大量人力资源。开发应用框架要求的技能不同于开发应用。框架的设计者必须决定:应用开发者如何从框架提供的服务和架构中获益;如何去抽象应用中特定的通用逻辑,以使开发者通过框架重用这些逻辑;如何在框架的恰当处提供扩展点(hot spot),以使开发者能插入代码获得特定结果。开发框架的一些工作是很抽象的,并且严重依赖于一个前提:应用开发者将如何使用框架构建应用。一开始就把所有问题都搞清楚是很困难的,因为在设计时只能猜测:最终应用是什么样子,又是如何被构建以解决业务问题的?有的框架组件,可能最初被认为将被应用的多个部分共享,但最终发现并非如此。有的代码段,可能最初被认为是某场景(scenario)独有的,确实应该在应用层实现它,但最终发现它包含通用的抽象,应当被加入到框架层,以便被整个应用所共享。在已经开始使用框架之后,新的业务需求或变更了的需求可能导致两种情况:新的组件加入框架,或者现存框架组件改变。你可能想到了,为了使框架适应将在其上开发的应用的要求,框架开发过程要经过一系列迭代周期(iteration)。框架的开发生命周期和常规应用的相似,即反复地进行分析、设计、实现和稳定工作。框架开发是非常典型的进化型工作,要求持续开发和相关支持工作,以保证框架的实用性。

1.4.2  用户培训

因为框架的用户是构建应用的开发者,所以其用户培训就是训练开发者使用应用框架。为了利用框架,开发者必须有足够的应用框架知识,以及如何使用框架进行开发的知识。但是,学习框架是一个耗时的过程。有几个因素导致了学习应用框架的困难。

应用框架天生就是不完整的应用,其中缺少的部分需要开发者编写应用层代码来补充。然而,在应用开发完成以前,对许多开发者来说,框架本身可能不太容易理解,因为框架的每一部分与其他部分的交互关系,并非自始至终都很明显。

框架中也包含许多控制整个框架处理流程所必需的总控代码。尽管框架的目的之一就是把这些复杂的控制逻辑对开发者隐藏起来,但是在培训时,开发者还是应当理解框架是如何工作的。因为框架中的很多控制逻辑以及类之间的依赖关系,并非直截了当,而且比较复杂,所以理解框架的工作原理并非易事。
 
应用框架提供了新的编程模型,它包含了很多开发者陌生的API、服务和配置设置项。开发者需要花些功夫学习应用框架,才能流畅使用它,最终高效地在其上开发应用。

尽管学习曲线是要经历的,但我们可以通过完善的文档,以及演示如何在各种场景使用框架的范例,来加快开发者掌握开发应用框架的速度。对于学习编程来说,一个范例,抵得上一大堆文字和图片。
通过考虑潜在的开发成本和工作量,我们能够权衡出是否需要应用框架。并非所有应用都需要在应用框架之上构建,很多成功的应用并未使用应用框架。有这种情况:你希望投入有限的费用并快速开发出解决方案,这时可能使用框架节约的成本还没有开发框架投入的成本多。相反,也有这种情况:应用框架被多个应用共享,从而总的开发成本显著减少。还有这种情况:你希望今天在应用框架上投资,以为将来的开发提供一个可扩展和可重用的基础平台。总之,就是看应用框架是否有助于你达到项目的预期目标。开发应用框架就像在股市投资;好的投资应该对你的投资目标有利,而不是看它们今天是否赚钱。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论