Web 服务和资产重用

 

引言

资产重用对于开发人员非常重要,是面向服务的体系结构(Service Oriented Architecture,SOA)的关键部分。通过创建可重用资产,可以增强公司的可重用智力资本,而智力资本又是一个切实的市场优势。此外,通过对以前经过验证的市场交付内容进行重用,可以减少开发成功方案的时间和成本,从而增加公司的总收入。而经过验证的市场交付内容对客户成功非常关键。

本文将帮助读者了解关于如何和为何创建可重用资产的更多信息。文中将给出有关如何从项目开始就创建可重用资产的策略和技巧。本文的目标读者是具有任何程度的应用程序、集成和/或管理专业知识的开发人员。有关资产重用的技巧和策略将具有很好的通用性,以便大部分读者都能够将这些技巧和策略应用到其开发周期中。

什么是资产?

资产可以定义为具有实际价值和用途的任何事项。以下是几种资产类型:

  • 最佳实践:通过实践和研究证明能可靠地获取希望的结果的技术或方法。
  • 设计:描述针对在很多项目中重复出现的设计问题的通用解决方案的书面文档。
  • 工具:可在项目、应用程序或任务的开发和重新创建过程中提供帮助的资产集。
  • 组件:较大的程序或构造的可标识部分。

在本文中,我们将重点讨论软件应用程序中使用的组件。

为何创建可重用资产?

创建可重用资产的最基本原因是因为其在财务和策略方面对公司的利益的正面影响。

可重用资产能通过缩短开发周期来减少成本。通过利用以前创建的资产,开发人员可以不必自己从头重新创建资产。因此,将减少组织内的冗余现象,节省开发人员的时间,从而降低成本。

此外,通过利用经过验证的可用资产,开发人员实际在利用切实可见的市场优势。客户都希望与成功的公司合作。由于以前使用过相应的资产,开发人员可通过参考已投入工作的产品及以前的交付内容和经过验证的合作模型来表现出更强的专业性。由于资产的风险以前已经过证实,因此客户可以在没有风险的情况下获得高质量。

对资产进行重用的公司不会受到团队开发人员数量的约束。在开发人员为一个项目创建资产时,将对资产进行编录,以供将来使用。随后可以对这些资产进行重用,从而允许开发人员将精力集中在为当前项目创建新资产上。

对资产进行重用还能节省开发人员进行测试和维护工作的时间。当开发人员首次创建资产时就投入了测试和维护的时间,而无需对每个利用可重用资产的新项目重新进行此工作。

关键在于,使用现有资产的项目将节省公司的时间、资金和资源。

资产重用为何对 SOA 非常重要?

在面向服务的体系结构中,资产表示为服务。这些服务类似于可重用和组装为更大的结构、应用程序或服务的构建块。通过创建可重用资产,实际就在创建此类构建块,以便在体系结构中使用,从而在业务中创建灵活性。通过固定资产,会将资产绑定到特定项目,而这与 SOA 的目的刚好是相反的。

可能要面临的挑战

和任何开发流程中一样,开始创建可重用资产时,很可能会遇到一些障碍。在大多数组织中,资产都孤立地分散在异类系统中。这就使得开发人员很难查找、访问、管理和重用资产,因为大部分公司都不具有用于控制和监视这些资产的中央管理系统。不过,在进行资产创建的过程中,可以进行此系统的创建工作,并找到具有创建可重用资产存储库的类似目标的其他人。

当然,还有时间因素在里面。为了使现有资产可重用,可能会导致开发周期延长。但最好第一次就正确完成,然后再回头对代码进行修改,以便重用。因此,创建可重用资产的很多技巧仅是良好的开发技巧,属于开发最佳实践的一部分。就长期来看,通过重用代码(而不是花上一个完整的开发周期来开发新代码),您将节省时间和资金。

资产重用技巧

使用软件开发最佳实践。从以前的同事已实现的内容进行学习。例如,使用配置管理工具来跟踪代码版本,从而可以跟踪更改和保持度量。

避免捷径和权宜之计。同样,这也是为了保证一次性正确完成相应工作。例如,当在代码中进行更改时,请确保进行回归测试,从而确保不会破坏程序中的任何代码。

持续对代码和解决方案进行记录。“乘热打铁”形成代码的相关文档更为容易。在项目最后进行此工作将困难得多,且很可能不会进行。例如,请记录到其他组件的接口以及对其他组件的依赖关系等(例如,您的 Java 程序依赖于 2.7.1 版的 Xerces2 Java Parser 来分析采用 XML 1.1 标准编写的文档)。

不要在代码中使用客户名称或引用。在代码中使用客户名称或引用,您实际就是让代码立即变得落伍,限制了其用途。不要在代码中包含仅适用于一个项目的引用。例如,不要在数据库模式或类名称中使用客户名称。

外部化字符串和文本。通过将字符串和文本外部化,就可以更方便地对其进行更改或翻译。因此,开发人员就可以使用您的基础代码或资产,并根据其用途对外部字符串和文本进行自定义。若要开发能在国际平台上运行的应用程序,务必对程序所显示的文本进行外部化。通过外部化字符串,可以在不重新构建应用程序的前提下针对不同国家(地区)和语言翻译相应的文本。

另外,请在使用外部化字符串和文本的同时,考虑为特定配置信息(如 URL 或数据库)使用 XML 配置或属性文件,如:

<init-param>
<name>collector.url</name>
<value>http://119.144.33.122</value>
</init-param>

使用标准协议和方法来在软件模块之间进行通信。这就允许其他人在重用您的资产时根据需要方便地更新或修改您的代码。例如,不要使用自定义消息传递格式,而使用 XML。XML 提供了一种基于标准且独立于平台的方式来表示结构化数据,允许您和其他人使用标准解析例程。

创建通用代码模板。通用代码模板允许对代码进行重用。例如,请考虑使用独立于类型的函数模板,或用于使用特殊行为扩展其他类型的适配器类模板。

遵循行业标准和规范。使用标准可确保互操作性和可移植性。当资产必须与其他服务进行通信,以产生所需的输出时,这就变得越来越重要了。各种标准组织(如 w3c)花费了大量的时间,通过参考来自开发领域的各种信息,才制订出这些标准。

使用您公司的标准模板。如果公司内的所有人都使用相同的模板,在组中交换资产就会变得容易得多了。标准模板可确保每个开发人员都能获得其项目的相同信息。要创建的文档的示例:

  • 用例文档
  • 清楚说明业务场景、软件模块、接口和硬件的文档
  • 设计体系结构文档
  • 安装和配置的用户指南
  • 类关系图和交互关系图
  • 保存屏幕快照的文档

图 1. 资产所涉及的一般内容
资产所涉及的一般内容

在图 1 中,我们可了解资产如何创建、编录和重用。首先,客户请求要求开发人员创建资产的服务或解决方案。开发人员以组件化方式创建资产。创建资产后,开发人员将其放入到资产存储库中。在独立的客户事务中,将请求一个解决方案或服务。开发人员查询资产存储库,以确定是否有可在所请求的解决方案或服务中重用的适用资产。标识了此类资产后,会将其合并到客户解决方案中。

资产重用示例

现在我们知道了如何进行创建以及相关的原因,接下来让我们看一个重用资产的示例。您的客户——一家女式服装店——需要您开发一个与支付处理和产品配送中心集成的 Web 店面解决方案。您开发了完整的解决方案,以允许该店的客户在线购物。在创建此解决方案期间,您将其组件化为多个部分,如:添加到购物车 (add to cart)、处理订单 (process order)、库存管理 (inventory management)、购物 (shipping) 或 财务处理 (financial processing)。您将每个组件化的资产放入到您公司的资产存储库。女式服装店的项目完成,您继续进行下一个项目。

两个月后,另一个客户——一家珠宝店——要求您的公司为其提供一个解决方案。他们要在网上进行商业活动,因此需要允许进行在线事务的应用程序。您在进行另一个项目,但您委托一位同事查询资产存储库。他在资产存储库中搜索相关的组件化资产,找到了“添加到购物车 (add to cart)”代码。他提取“添加到购物车 (add to cart)”资产,并将其放置到客户解决方案的当前体系结构中,从而节省了共 160 个工时的开发时间、设计时间和测试时间。

在此示例中,可重用资产为这家珠宝店和您的公司提供了很大的帮助。您为客户提供了经过测试的成熟解决方案,并同时节省了自己公司的资金。

结束语

资产重用的最重要的概念之一是,必须在资产创建过程中对此加以注意。开发人员在编写第一行代码起到完成整个代码期间,都需要考虑在将来能如何使用此资产。

随着公司继续向面向服务的体系结构 (SOA) 过渡,他们将寻找更多将资产作为服务创建的方法。通过将资产作为构建块开发,可以对其重新配置和进行重用,从而增加了您的代码和付出的工作的价值。对于每个项目,开发人员都必须现在考虑如何对其代码进行打包,以在将来为公司提供价值。这种考虑可让公司(和开发人员)通过缩短资产交付时间以及提供经过验证的交付内容而达到成功。



参考资料

学习
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值