主页 Case Studies Work & Co 提升可扩展应用程序开发速度
Work & Co 如何在数周而不是数月内交付重要的内部应用程序
一位女性和一位男同事在便条上写下想法

与许多现代公司一样,Work & Co 的员工队伍分布在全球各地并参与不断发展的项目。是否能够有效管理人力和项目资源对公司的效率至关重要。

Work & Co 与 IBM® 旗下公司 StepZen(ibm.com 外部链接)合作,在其 Mavenlink 后端设计、开发和启动 GraphQL 数据层,然后改造内部的“员工名录”应用程序,员工及其经理每天都使用该应用程序进行沟通、协作和了解项目分配和覆盖范围。

Work & Co 员工目录应用程序由来自多个人力资源系统的数据提供支持,许多员工每天都使用该应用程序在分散于全球各地且不断发展的项目中进行沟通和协作。当公司决定将多个第三方人力资源和员工队伍管理服务的数据整合到新的提供商 Mavenlink 时,团队面临着有关内部应用程序的决定。

他们可以选择停用、重建或改进该应用程序,以添加新的数据源。停用是不可能的:因为员工每天都需要它来完成工作。重建当然是可能的:因为公司拥有相关技术。然而,这些技能主要部署在与客户合作的计费项目上,将这些宝贵的资源用于内部活动很难证明是否合理。

因此,改进是最好的选择。但它提出了一个重要的问题:Work & Co 如何重建其基本应用程序,以便能够继续添加功能和数据源,甚至在未来再次切换其系统,同时最大限度地减少公司需要完成的工作量?

随着新数据源的出现,更新和扩展此应用程序非常重要,这可以改善用户体验并提供更多功能。该公司需要一种解决方案,支持其立即构建全面但灵活的应用程序,并使其能够适应未来的规模和新用例。

通过在 Mavenlink 上使用 GraphQL API,我们可以在数周内构建一个内部应用程序,让我们能够快速、准确且轻松地了解和规划我们的资源管理。此应用程序的性能至关重要,因为它将许多信息汇集在一起。 Nemanja Niciforovic 总经理兼工程主管 Work & Co
重建一个重要的应用程序

第一步是将应用程序的现有 REST API 调用转换为 GraphQL API 调用。通过切换到 GraphQL,客户端应用程序只需知道如何进行 GraphQL 调用并仅需请求所需的数据;它不必知道数据的来源。在 GraphQL 上对该应用程序实施标准化,这样可以使公司能够在不影响应用程序的情况下添加新数据源和切换数据源;GraphQL 查询保持不变。

然而,通常这意味着编写 GraphQL 服务器和大量解析器代码来将 API 映射到数据。需要编写和维护的代码越少越好。作为声明式、配置驱动的托管 GraphQL 服务器,StepZen 可以轻松配置解析器,从而消除了对大部分代码的需求。

Work & Co 总经理兼工程主管 Nemanja Niciforovic 解释道:“通过在 Mavenlink 上使用 GraphQL API,我们可以在数周内构建一个内部应用程序,让我们能够快速、准确且轻松地了解和规划我们的资源管理。此应用程序的性能至关重要,因为它将许多信息汇集在一起。StepZen 的自动并行功能有很大帮助。当我们添加后端服务并在单个 GraphQL API 上构建新应用程序时,它还帮助我们适应未来需求并进行扩展。”

Mavenlink 拥有全面的 REST API,用于管理对各种人力资源和资源管理数据的访问。通过使用 StepZen 的 GraphQL 指令 @rest,Work & Co 能够微调员工目录应用程序可用的数据。举一个简单的例子,该团队可以轻松地重命名 Mavenlink API 中的字段以匹配其应用程序中使用的名称,从而消除前端开发人员的认知负担,减少应用程序中所需的代码更改数量。

此外,该团队还能够通过使用 StepZen 的 @materializer 指令来简化 Mavenlink API。这使他们能够定义包含来自多个 API 调用的数据的类型。例如,他们在“用户”类型中添加“项目”类型,这使得应用程序开发人员可以在检索个人资料照片和电子邮件地址等用户详细信息的同时检索用户的活动项目。

分页:Mavenlink API 可以限制任何单个调用返回的记录数量,进行强制分页。Work & Co 应用程序并不是为了支持以这种方式处理数据而构建的,并且为了利用分页功能而对其重新设计也不是其作业范围。使用 StepZen 的 @sequence 指令,团队能够对 Mavenlink API 的许多 REST API 调用实施并行化处理,并使用单个 GraphQL 查询请求检索结果集的所有页面。

性能调优:这种方法的一个意想不到的好处是性能调优。使用 REST API 检索尺寸较小的页面可以缩短响应时间。因此,10 个并行请求(每个请求 200 条记录)比 20 个并行请求(每个请求 100 条记录)需要更长的时间。通过适当定义 StepZen 查询,Work & Co 应用程序开发人员能够微调其 GraphQL 查询的性能。

安全性和缓存:除了所有这些具体的实施细节外,Work & Co 还受益于 StepZen 的整体安全和缓存方法。灵活的安全配置使他们能够定义使用全应用程序安全上下文的查询,以及使用特定用户安全上下文的查询。在直接使用 REST API 时,这种细粒度控制很难管理;通常只能二选一。StepZen 的自动缓存功能意味着用户只需花费很少的开发时间就能提高应用程序的性能。

StepZen 的自动并行功能有很大帮助。当我们添加后端服务并在单个 GraphQL API 上构建新应用程序时,它还帮助我们适应未来需求并进行扩展。 Nemanja Niciforovic 总经理兼工程主管 Work & Co
展望未来

在将其内部应用程序转换为使用在 StepZen 上运行的 GraphQL 而不是特定的 REST API 调用后,更有利于 Work & Co 团队充分利用 Mavenlink 内的新功能,因为他们可以发掘该平台的更多优势。他们还能够轻松地将新服务引入其 GraphQL API,对由 StepZen 所提供数据提供支持的应用程序具有最小影响。

关于 Work & Co

Work & Co(ibm.com 外部链接)是一家屡获殊荣的机构,致力于设计和交付能够推动公司转型的数字产品。该公司帮助客户制定数字战略,并将数字产品推向市场并实现大规模运营。每天都有数百万人使用 Work & Co 网站、应用程序和数字体验。

StepZen

StepZen 是获取数据联合访问权限的唯一声明性方法。

了解更多信息 订阅 IBM 时事通讯    
法律

© Copyright IBM Corporation 2023。IBM Corporation, New Orchard Road, Armonk, NY 10504

2021 年 6 月在美国制作。

IBM 和 IBM 徽标是 International Business Machines Corporation 在美国和/或其他国家或地区的商标或注册商标。其他产品和服务名称可能是 IBM 或其他公司的商标。IBM 商标的最新列表可在 ibm.com/trademark 上找到。

本文档为自最初公布日期起的最新版本,IBM 可能随时对其进行更改。IBM 并不一定在开展业务的所有国家或地区提供所有产品或服务。

以上所有引用或描述的客户实例的展示取决于部分客户使用 IBM 产品的方式以及他们可能取得的结果。实际的环境成本和性能特征会因具体客户配置和情况而有所不同。无法提供通用的预期结果,因为每个客户的结果将完全取决于客户的系统和订购的服务。是 International Business Machines Corporation 在美国和/或其他国家或地区的商标或注册商标。本文档内的信息“按现状”提供,不附有任何种类的(无论是明示的还是默示的)保证,包括不附有关于适销性、适用于某种特定用途的任何保证以及非侵权的任何保证或条件。IBM 产品根据其提供时所依据的协议条款和条件获得保证。