統合ツールによる生産性の向上
学習の目的
この単元を完了すると、次のことができるようになります。
- Salesforce コマンドラインインターフェース (CLI) によってどのように生産性が高まるかを説明する。
- パッケージ開発モデルでのバージョン管理システム、スクラッチ組織、Sandbox 組織の役割を説明する。
- スクラッチ組織を使用するのに適した場合と Sandbox 組織を使用するのに適した場合を識別する。
既存のツール、新しいツール、自分のツール
世の中には多くの革新的なオープンソースソフトウェアが存在します。そのため、Salesforce では指針となる原則の 1 つとして、開発ツールに関するオープン標準をサポートしています。Salesforce が目指しているのは、ユーザーが使い慣れたツール群を使用できるインフラストラクチャを提供するとともに、すでに使用しているものがない場合は、推奨ツールセットも提供することです。
Salesforce コマンドラインインターフェース
提供されるツールの 1 つが柔軟で強力な Salesforce コマンドラインインターフェース (CLI) です。CLI を使用することで、パッケージ開発プロセスをコマンドラインから管理できます。
Salesforce CLI は、メタデータ API、Tooling API、データ (SOAP) API などいくつかの Salesforce API の多くの機能を組み合わせたものです。新しく改善された CLI を使用すれば、すべての重要な API からのあらゆる開発作業を 1 か所で使用できます。組織の作成からデータのインポートやエクスポートまで、開発ライフサイクル全体の管理に必要なすべてのことをスクリプト化できます。開発の繰り返し作業を簡単にするために作成できる便利なスクリプトの数々を考えてみてください。
さらに皿洗いまでできるのです! (いえ、それは嘘です。でも本当だったら素敵だと思いませんか?)
Salesforce CLI を使用して、さまざまなユーザーの生産性を向上させることができます。
- 開発者は、Salesforce CLI を使用して DX プロジェクトの管理、スクラッチ組織の作成、スクラッチ組織へのメタデータのリリースやスクラッチ組織からの取得、単体テストの実行を行うことができます。
- DevOps は、ビルド自動化スクリプトの一部として Salesforce CLI を使用して、環境の作成と環境へのアクセス、ソースのリリース、パッケージのインストール、テストの実行を行うことができます。
コードビルダー
コードビルダーを使用すると、Salesforce 開発専用に作成された強力な統合開発環境を手に入れることができます。付属の拡張機能は、次の機能を提供します。
- Salesforce CLI を操作するための機能
- パッケージ開発のためのプロジェクトを作成する機能
- Apex 言語サーバーにアクセスして構文の強調表示やコード補完を行う機能
- Lightning コンポーネントバンドルのサポート
- Apex と再生デバッガーのサポート
- コードを記述、テスト、デバッグ、リファクタリングする生成 AI
Git とも事前統合されていますが、他のバージョン管理システムとも連動できます。
バージョン管理システム
VCS はソース駆動型開発の中心部分です。新しいツールとパッケージ開発の機能をフル活用するには、VCS を使用してソースを管理し、バージョン設定する必要があります。
では、VCS を現在使用していない場合は、どのようにして始めればよいのでしょうか?
おそらくパッケージ化についても開始したばかりでしょう。ですから、基本的なケースから説明します。まずは、プロセスを理解するために、パッケージを 1 つだけ作成することを計画します。そのパッケージの開発用の DX プロジェクトは 1 つで、対応するパッケージプロジェクトの VCS リポジトリが 1 つあります。すぐに、パッケージ開発のライフサイクルと DX プロジェクト構造になじむことができるでものと思われます。それから、パッケージプロジェクトを設計して 1 つまたは複数の VCS リポジトリにわたってそれらを整理する新しい方法について検討することができます。
スクラッチ組織
一時的に使用し、簡単に再作成できるように設計されたスクラッチ組織は、専用かつ設定可能な Salesforce 環境で、さまざまな目的のために素早く作成できます。
自分の砂場 (sandbox) で他の子が遊んでいてうんざりだということはありませんか? 開発およびテストプロセスの一環としてスクラッチ組織を使用すれば、砂が目に入ることもありません。スクラッチ組織は、自分の個人的な開発環境として使用できます。または、自動テストのためにヘッドレススクラッチ組織を作成することもできます。次のことを行う必要があるときに、新しいスクラッチ組織を作成します。
- 新しいプロジェクトを開始する。
- 新しい機能ブランチを開始する。
- 新しい機能をテストする。
- 自動テストを開始する。
- 組織内で直接、開発作業を実行する。
- 新しい組織でゼロから始める。
スクラッチ組織は、さまざまな Salesforce エディションを使用して設定でき、必要な機能や設定のみを使用できます。さらに、スクラッチ組織の設定ファイルを他のチームメンバーと共有できます。そうすることで、開発を行うための同じ基本組織を全員が持つことができます。
スクラッチ組織と Sandbox の違いは?
スクラッチ組織の用途を理解できたところで、一歩下がってスクラッチ組織が適していない場合について考えてみましょう。
スクラッチ組織には、本番組織に含まれるメタデータのスープ全体を保持する機能はありません。また、Sandbox に代わるものでもありません。スクラッチ組織にどのメタデータをリリースするかの分析を始めるときには、そのソースすべてがその特定のプロジェクトに必要かどうかを自問しましょう。
例:
- すべてのカスタマイズは、1 つのアプリケーションまたは CRM の拡張機能に関連していますか?
- カスタマイズは、多くの異なるアプリケーションやプロジェクトを表していますか?
2 つ目の質問への答えが「はい」であれば、それらをパッケージに分割する方法について考えましょう。これらの個々のモジュールをテストするためにそれぞれ別個のスクラッチ組織を作成します。開発ライフサイクルの後の方で、最終的なテストとステージングのために個別のパッケージを Sandbox にリリースします。
それでもまだ重要な役割を果たす Sandbox
スクラッチ組織によって大きな変革がもたらされ、生産性が向上するとしても、Sandbox は依然としてパッケージ開発ライフサイクルの重要な部分です。作成したパッケージバージョンのインストールをテストするための対象として、引き続き使用します。インストール後には続けてユーザー受け入れテスト、ステージング環境、継続的配信テストに使用します。
ソース開発にはスクラッチ組織を使用し、リリーステストには Sandbox を使用します。
リソース
- 開発者ガイド: Salesforce CLI Command Reference (Salesforce CLI コマンドリファレンス)
- 開発者ガイド: Salesforce DX 開発者ガイド
- 開発者ガイド: VS Code 向け Salesforce 拡張機能
- 動画: Salesforce Environments: Getting Started with Scratch Orgs (Salesforce 環境: スクラッチ組織の使用開始)
- 動画: Salesforce CLI: Harnessing the Power of Salesforce Through the Command Line (Salesforce CLI: コマンドラインによる Salesforce の力の利用)