写点什么

Salesforce 大刀阔斧变革开发者体验

  • 2016-10-18
  • 本文字数:4025 字

    阅读完需:约 13 分钟

在盛况空前的 Dreamforce 大会上,云计算领军厂商 Salesforce.com 发布了 Salesforce DX :一种为 Saleforce 平台构建和部署应用程序的全新模型。Salesforce DX 全面支持各种目前对 Salesforce 开发者来说尚且较为陌生的概念,例如源代码控制管理、持续集成、脚本化。InfoQ 就相关细节采访了 Salesforce DX 产品副总裁 Wade Wegner

InfoQ:请介绍一下 Salesforce DX 的长远目标。是否是为了扩展 Salesforce 所能支持的应用程序类型,并将现代化的软件开发实践带到 Salesforce 平台?

Wade Wegner:Salesforce DX 为 Salesforce 应用在整个生命周期内的开发、部署和升级定义了一套全新的方法,将 Force.com 和 Heroku 开发者体验中的精华汇聚一处,可实现源代码驱动的代码开发、受管控的团队协作、代码从开发到生产环境的无缝推进、与自动化测试机制的持续集成,并可在应用程序生命周期内支持第三方开发者工具。在 Salesforce DX 的帮助下,开发者可以在为 Salesforce 平台开发自定义应用程序的过程中获得更高程度的敏捷性。

InfoQ:开发者在 GitHub 代码库中存储的到底是 Salesforce 应用中的哪些内容?该服务是否只面向编写 Apex 的 Salesforce 开发者?

Wegner:在开发 Salesforce DX 的过程中,我们在持续完善 Salesforce 环境中通过源代码控制机制对源代码和元数据的运用,借此帮助开发者实现真正意义上源代码驱动的开发方式。除了源代码元数据,我们还可以支持测试配置、测试数据,以及 Salesforce org shape(例如版本、功能、首选项)等内容。

Salesforce DX 的重点不光在于组织中的元数据和源代码。越来越多的企业开始开发分布式、可组合的应用程序,会将 Salesforce 应用代码与通过开放式语言和框架开发的微服务结合在一起。Salesforce DX 在设计上可以对这种分布式应用程序设计提供良好的支持。我们基于 Heroku 平台构建的持续交付和持续集成工具对应用开发所用的语言,以及编写自定义应用的语言没有任何要求。Salesforce DX 还为这些工具提供了有关 Salesforce 应用程序和 Apex 的支持。

InfoQ:Heroku Flow 在 Salesforce DX 中扮演了重要的角色。您能否介绍一下这个服务,以及该服务在 Salesforce 内部和外部的使用方法?

Wegner:Heroku Flow 包含四个重要组件,其中三个早在 2016 年上半年就已正式发布到 Heroku 平台,最后一个全新组件本月刚发布 Beta 测试版。现有 Heroku Flow 服务包括:

  • Heroku Pipelines:Pipelines 是一种服务,可以用来管理多个共享相同代码基的 Heroku 应用,将应用分组为审核、开发、准备,以及生产环境,对持续交付过程提供支持、管理和可视化。将测试完成的代码从一个阶段推进至下一个阶段的过程可手工或自动完成,由于编译结果可以推进至下一阶段,这个过程几乎可以瞬间完成。
  • Review Apps(审核用应用):这是一种提议、讨论、决定是否将变更合并到代码基的方法。对于连接至 GitHub 的 Heroku 应用,Heroku 可以手工或自动使用唯一 URL 为每个打开的 Pull 请求(PR)创建一个临时的测试用应用。每次提交后该临时应用可自动更新,这样审核者无需猜测代码的具体作用,就可在浏览器中亲自尝试所做变更。PR 的合并会破坏审核用应用,在配合 PipeLines 使用时,可以自动将代码推进至准备阶段。在 Salesforce DX 的世界中,审核用应用的角色是由 Scratch orgs 承担的。
  • GitHub 集成:借助 Github 集成,开发者可以手工或自动将自己的 GitHub 代码库连接至 Heroku 应用,借此对 GitHub 的每次 Push 部署一个特定分支。每个部署可在 Heroku Dashboard 中应用的 Activity 选项卡下看到当前发布和上一次提交之间的差异,这样开发者就无需猜测应用中到底包含了哪些代码。在 Salesforce DX 中我们进一步扩展了 Salesforce 与 GitHub 的集成。

Heroku CI 是 Heroku Flow 的最新版,这是一种新增的嵌入式持续集成产品,该产品也已将 Beta 测试版发布至 Heroku 平台,并以开发者预览版的形式包含在 Salesforce DX 中。Heroku Flow 已经可以与 Jenkins 等第三方测试工具集成,但 Heroku CI 提供了一种全新的备选方案,可补充或取代对代码运行自动化测试的主要方法。

InfoQ:“Scratch orgs”是 Salesforce DX 中新增的,该技术的用途是什么,会对 Salesforce 开发者目前的工作流产生哪些影响?

Wegner:Scratch orgs 是一种全新的 Salesforce 环境,一种源代码驱动的即抛型 Salesforce 代码和元数据部署。Scratch orgs 完全可配置,可供开发者模拟出包含不同功能和首选项的不同 Salesforce 版本,该产品在开发过程中对开发者生产力和协作能力起到了关键作用。在创建分支并开发不同功能时,开发者可以在开发过程中创建 Scratch orgs,并将这些 Scratch orgs 分享给协作者或审核过程中的其他有关人员。Scratch orgs 也可用于自动化测试以及完整的持续集成实现中。

InfoQ:新增的 CLI 据说可以跨平台使用。这一特性是否只能用于自定义代码的场景,或者也可以通过这个 CLI 管理 Salesforce 组织的其他内容?您觉得哪些人需要使用这样的功能?

Wegner:Salesforce DX 命令行接口(CLI)是最令 Salesforce 开发者感到激动的功能之一。该接口基于 Heroku CLI 构建,可以让开发者更充分地使用我们提供的所有 API。过去则需要通过多种工具(例如 Salesforce Workbench Force.com CLI 等)获得这些能力。

该 CLI 将成为开发者与 Salesforce org 交互的主要方式。用户可以使用它来创建 Scratch orgs,将源代码和元数据推送至 Org 或从中拉取,甚至执行会影响到 Org 中元数据的操作,例如为某个应用分配权限集或执行匿名 Apex。

CLI 还可以简化 DevOps 的 Salesforce 使用体验。用户可以在构建自动化脚本时使用 CLI,通过源代码创建环境,并运行所有测试。

我们“API 为先”的方法也被纳入到 CLI 中,未来我们还将为 Salesforce DX CLI 提供更多开发者功能。

InfoQ:基于 Salesforce DX 的完整开发流程是怎样的?应用程序从自举到最终部署需要经历哪些步骤,用到哪些技术?

Wegner:设计 Salesforce DX 的过程中,我们的基本原则之一在于让团队能够灵活定义最适合自己的方法。Salesforce 已经将源代码驱动的开发方法作为我们实现的中心,我们认为这样能帮助客户更好地获得成功。

首先需要定义版本控制策略。Salesforce DX 可支持多种 VCS 选项,但我们建议大家采取一种 VCS 并将其作为开发工作的基础。应用的真实来源(Source of truth)已经不再是 Org,而是版本控制系统。

随后需要理解自己的环境。新的 Scratch org 使得开发者可以通过 CLI 更容易地构建应用并实现持续集成和交付。Scratch org 使得开发者可以使用本地源代码进行开发并运行全部的测试,更有信心地将代码提交至 VCS。

在将更新提交至 VCS 之后,无论提交的是使用 Heroku Pipelines,或使用 Jenkins、TeamCity 等第三方工具开发的 Salesforce 解决方案,开发者均可使用标准化的 Web 钩子发起构建自动化和持续集成(CI)。

在这一系列过程中,开发者可以灵活选择自己使用的工具。CLI 消除了与 Salesforce orgs 进行交互的复杂性,意味着开发者无需使用任何专用工具,可以自由选择使用 Vim、Sublime、Visual Studio Code、Atom,或任何文本编辑器来编写自己的代码。

InfoQ:为开发者提供的这种基于 Eclipse 的全新 IDE 包含哪些新功能?与之前的 IDE 集成有什么不同?

Wegner:Force.com IDE 是我们基于 Eclipse 打造的一个工具,过去很长时间里一直是 Salesforce 开发者最主要的工具。新发布的 Force.com IDE 2 依然为从 Apex 到 Workflow 等 Salesforce 可支持的各种元数据类型提供了最广泛的支持。我们目前还在努力完善以提供更多强大的新功能,例如:语言服务、对 Lighting 部署的完整支持,以及将陈述性构建器(Declarative builder)直接载入 IDE 的能力。

Salesforce DX 的所有元数据均外化保存在源代码控制系统中。通过从同一个源代码控制系统直接导出 Eclipse 项目,将能对元数据获得更全面的了解,借此可以实现更智能的分析,因为可以了解所有 Apex 类,所有自定义项目,以及所有 Lightning 组件等。以前在老版 Force.com IDE 中,用户可以,并且经常需要选择元数据的子集并将其导入 Eclipse 项目,这种不完整的视图由于缺乏某些重要信息,限制了 IDE 提供智能分析的能力。

不过对我们而言,真正的创新在于新版 Eclipse 插件是直接基于 CLI 开发的。这样做不仅可以加快我们的工作进度,而且可以让 IDE 直接用上 CLI 方面包含的所有创新。我们也鼓励所有工具领域的合作伙伴采取这样的做法,借此大家将能更轻松地在不同工具中打造更棒的开发者体验。

InfoQ:对于将 Salesforce 视作一种只能进行“指向并点击”式开发工作的人,您有什么想说的?

Wegner:我们有关 Salesforce DX 的愿景涵盖了 Salesforce 平台客户先驱的方方面面,从程序开发者到 Salesforce 管理员,再到通过底层代码用“指向并点击”的方式设计和部署 Salesforce 应用的业务用户,所有类型的用户都在我们的考虑范围内。为了给 Salesforce DX 打下坚实的基础并满足大型 ISV、SI,以及企业客户严格的需求,我们发起了这个由 CLI 驱动,用于打造可缩放能力更高的自定义应用程序的创新式举措。随着明年逐步将 Salesforce DX 推向市场,我们的重点将转向如何通过恰当程度的抽象和以用户为中心的设计,借助可视化流程和熟悉的管理构造(例如变更集),将 Salesforce DX 的核心优势提供给管理员和业务用户。在最终发布前我们还将围绕这个话题公布更多细节。

InfoQ:如果想进一步了解 Salesforce DX,开发者应该怎样做?

Wegner:建议从我们的开发者网站着手: https://developer.salesforce.com/platform/dx

随着公开测试和明年最终发布的临近,我们会将最新近况更新至上述页面,感兴趣的开发者可以在这里注册并在进一步详情公布后优先获得通知。另外也建议大家观看我们的技术总裁 Srini Tallapragada 所做的演讲: Dreamforce 2016 开发者主题演讲

查看 **** 英文原文: Salesforce.com Introduces Extensive Changes to Developer Experience

2016-10-18 19:002351
用户头像

发布了 283 篇内容, 共 106.7 次阅读, 收获喜欢 62 次。

关注

评论

发布
暂无评论
发现更多内容

一站式解决方案:体验亚马逊轻量服务器的顶级服务与灵活性

-亦世凡华、

Linux Vim批量注释和自定义注释

梦笔生花

私域流量搭建与运营,全是技巧攻略!

鲸品堂

运营 流量 企业号11月PK榜

对话在行人|泰开集团:通过财务数智化转型,实现多重管控要求

用友BIP

对话在行人 数智化领先实践

Photoshop Web版本用了哪些CSS技术

南城FE

CSS css3 前端 PhotoShop

Mac电脑专业级音频制作软件 Logic Pro X中文免激活

胖墩儿不胖y

Mac软件 音频处理 音频制作软件 音频管理工具

Python 文件处理指南:打开、读取、写入、追加、创建和删除文件

小万哥

Python 程序员 软件 后端 开发

垃圾回收是什么?

暂时不愿意透露姓名的热心人士

垃圾回收

亚马逊云科技大语言模型下的六大创新应用功能

淼.

CNCC 2023 | 大模型全面革新推荐系统!产学界多位大咖精彩献言

小红书技术REDtech

算法 推荐系统 多模态 大模型 内容理解

【我和极客时间的故事】极客时间带给我的成长

三掌柜

我和极客时间的故事

向量数据库的崛起与多元化场景创新

向量数据库

用了低代码工具,让我效率提升了80%

树上有只程序猿

软件开发 低代码开发平台 JNPF

企业该如何选择数字化转型工具?

优秀

数字化转型 数字化工具

快速实现一个企业级域名 SSL 证书有效期监控巡检系统

观测云

监控告警 智能巡检 SSL域名

大语言模型“战国时代”,未来将如何发展?

申屠鹏会

AI大语言模型

李开复带领零一万物,新一轮融资由阿里云领投,估值超10亿美元

B Impact

sip中继的介绍

cts喜友科技

SIP

sip中继是什么意思

cts喜友科技

SIP

人大金仓三大兼容:SQL Server迁移无忧

科技热闻

第26期 | GPTSecurity周报

云起无垠

跨语言高性能RPC框架Focus发布V1.1.0

dinstone

RPC 高性能 跨语言 RPC框架

项目管理从混乱到井然有序,就差这10款看板软件了!

彭宏豪95

项目管理 效率工具 项目经理 在线白板 看板工具

投资机构Janus Capital Group为Rola-IP品牌融资700万美元

Geek_ccdd7f

罗拉ROLA住宅代理IP市场稳定增长,未来有哪些发展前景?

Geek_ccdd7f

Amazon EC2 Hpc7g 实例现已在更多区域推出

亚马逊云科技 (Amazon Web Services)

Amazon EC2

OpenHarmony,奏响中国基础软件的“光辉岁月”

脑极体

开源鸿蒙

Programming abstractions in C阅读笔记:p184-p195

codists

天谋科技作为生态企业参与 Data & AI Con Shanghai 2023

Apache IoTDB

瓴羊重磅发布数据服务枢纽“瓴羊港”,推动企业数据流通及价值增长

B Impact

轻量应用服务器:现代云计算的宝贵利器

E₀=mc²

云计算 虚拟化 亚马逊云科技 VPS

Salesforce大刀阔斧变革开发者体验_DevOps & 平台工程_Richard Seroter_InfoQ精选文章