menu
%}

Salesforce DXって何?開発プロセスがどう変わるのかHerokuと比較してわかりやすく解説

 2017.07.12 HagaSatoshi

こんにちは。デベロッパーのHです。

みなさん、Salesforce DXをご存知ですか? 「どういう機能なんだろうか?具体的に開発がどのように変わるのだろうか?」少し捉えどころのない新機能のように聞こえるかもしれません。今回は、今後主流になっていくと思われるSalesforce DXによる開発プロセスがどのようなものなのかをわかりやすくご紹介します。

Salesforce DXとは?

Salesforce DXを簡潔に言うと、(Salesforce組織ではなく)外部のリポジトリでアプリケーションを管理して標準化や自動化を進め、Salesforce開発の生産性や管理品質を向上するための機能の総称です。以下のような機能を使用して、Salesforce開発をHerokuで行うような現在の主流な開発プロセスに近づける事を目的としています。

Salesforce DXが提供する機能(一部)

  • Scratch Orgs(スクラッチ組織) : コマンドから自由に作成・破棄できるSalesforce組織。
  • Salesforce CLI : Scratch Orgsや項目の作成などSalesforce組織の管理が実行できるコマンドツール

そもそも従来のSalesforce開発のプロセスは現在の一般的なものとどう違うのでしょうか。先日ご紹介したHerokuを活用して解決したお客様の課題で実践した開発プロセスを具体例にして比較して説明いたします。

どう違う?従来のSalesforce開発と一般的な開発プロセスを比較

Salesforceの開発で以下のような経験をしたことはないでしょうか。

  • 変更セットを手動で作成した際に項目が漏れてしまった。
  • 本番組織にだけ設定されている入力規則がある。
  • 開発中の機能があるのでフルサンドボックスをリフレッシュできない。

Herokuの開発ではあまりこのようなことはありません。先日の案件ではHerokuとRuby on Railsを使用しました。開発プロセスのそれぞれのケースに対し、Salesforceとどのように違うのか比較してみましょう。

Salesforce / Heroku・Ruby on Railsにおける開発の進め方の違い

  従来のSalesforce開発 弊社のHeroku案件(Ruby on Rails)
開発環境の作成 管理画面から手動で作成する。 Gitコマンドで取得した開発資源を元に、ローカルのPCに開発環境を作成する。
開発資源の管理 Salesforce組織の中で管理している。 Gitリポジトリ(GitHub)で管理している。
新規テーブル/カラムの作成 管理画面から手動で作成する。 Railsコマンドで作成する。スキーマ変更の定義ファイルもGitリポジトリで管理されている。
テストコードの実行 Salesforce組織の内部のテストコードを実行する。 Gitリポジトリから取得したテストコードをRSpecコマンドで実行する。
テスト環境の更新 管理画面から、既存の組織からのコピーを新規作成もしくは最新化する。 Gitリポジトリの更新を契機にCIツール(Circle CI)が自動で更新する。
本番環境への資源反映 サンドボックス組織の管理画面から変更セットを作成し、本番環境にアップする。  Gitコマンドで実行する。Heroku内のGitリポジトリに反映することによりWebアプリケーションに反映される。

Herokuでの開発はGitリポジトリとコマンドによる管理が中心のため手作業がとても少なく、そのため開発の標準化や自動化が行われています。一方で従来のSalesforce開発は管理画面からの手動作業が中心になっています。そのため、どうしても上記で挙げたようなことが発生し、一定以上の生産性と管理品質の向上が図ることが難しくなっています。

現在の仕組みでもAPIを使用すればある程度は自動化やリポジトリの使用をすることはできますが、APIは開発プロセスの改善を目的に作成されたものではないため限界があります。これに対してSalesforce DX はそもそもが開発プロセスの改善を想定した一連の機能と考えることができます。

まとめ

今回は、Salesforce DXがどのようなものなのかをご紹介いたしました。次回は、Scratch Orgやsfdxコマンドといった具体的な機能をご紹介して、Salesforce DXによってどのように開発プロセスが変わるのかをご紹介します、お楽しみに!

新規CTA