Blog
ブログ

2020年07月03日

第14回社内勉強会

 6月26日、梅雨明けの待たれるこの頃、ソホビービーでは14回目の勉強会が開催されました。
今回のテーマは、本社ではおなじみのクラウドサービスsalesforceの「Salesforce DX使用の心得」と、webブラウザで動作する新しい共通のバイナリの言語の一種である「WebAssembly」でした。どちらも興味深い話でした。

Salesforce DX使用の心得

 一般的なSalesforce DXの使用イメージは、下記の画像通りです。しかし、DX自身の不具合があるので、5つの問題点があります。

①scratch環境作成
 scratch環境作成は環境の設定ファイルが必要です。ただ、開発する時、環境が本番と同じになるかという問題があります。
 実際に設定する時、本番の設定状況はわからないので、ぴったり設定することが難しいです。
ちゃんと設定しないと、実際にxmlファイルを取得する時に、過不足の可能性が高いし、後の別の工程に影響を与えることがあります。

対策:
 1.既存Projectなら、前回の開発方から設定ファイルを入手します。
 2.新規Projectの場合、最初は可能のエラーに備えます。

②DX Projectからscratch環境までpush
 1.そのステップには、一括でPushすることができない可能性があります。.forceignoreにIgnoreの配置して、最初は IgnoreせずにPushして、段階的に開発内容をPushします。
 2.変更を環境までPushする時、DXのファイル自体の変更は大丈夫ですが、Pushする時、scratch環境に対応の操作ができません(例えばDXにPageLayoutの削除すると、scratch環境にPageLayoutを削除することができません)。
 3.①の影響で、Pushする時にエラーがあります。
 4.今のところ、SnapshotのPushができません。

対策:
 1..forceignoreの使用方法を勉強して、エラーがある時、上手く使うできるようにする。
 2.Gitにちゃんと管理して、Pullした開発内容をチェックして、開発内容の部分だけGitに反映します。(Gitからの余分なことを削除することを避けて)

③scratch環境からDX Projectまでpull
 1.内容をすべてpullすることが保証できません。特にProfileの部分の取得は不十分です。(項目権限、Pagelayout割り当てなど)
 2.変更する内容をPullしないケースもあります。原因は不明だが、応用する時、自分の変更分を自分で取得して、Gitに反映するのがおすすめです。
 3.ファイル単位で取得するので、修正部分だけではなく、ファイル全体を正しい設定にするのか、注意しなければなりません。(Profile、環境の設定など)
 4.項目の変更など、関連部分の変更はPull対象外になります。エラーが発生する可能性があるので、Grepを活用します。

④開発内容を他の環境にリリース/Push
 共有先の設定があるファイルは、リリース/Pushする時、共有先を環境に合わせることが必要です。 また、①、③の影響でscratch環境とリリース/Push先の環境が異なるので、個別で修正することがあります。

⑤他の環境から開発内容を取得
 レポートとDashboardは簡単に取得できないので、その部分について時間がかかります。

 salesforceはこれからどんどん使っていく機会が増えていくと思うので、勉強会でこのように学ぶことが出来て大変勉強になりました。

WebAssembly

 WebAssembly(WASM)とは、webブラウザで動作する新しい共通のバイナリの規格(言語)のことです。
 従来では、ブラウザ上でプログラムを実行したい場合、javascript(もしくはcss)しか選択肢がなかったのですが、WASMにコンパイルさえすれば、webブラウザで実行するプログラムの作成に、CやC++といった言語を使うことができます。

WASMは以下のことを実現することが出来ます。
・Web開発における、言語の多様性を確保します。
・Nativeに迫る高速性を実現します。(必ずしもではない)

また、WASMの流れは以下の通りです。
 1.各言語で作成したコードをWASM(WebAssembly)にコンパイルし、JavaScript経由でimportします。
 2.WASM内のモジュールを、Javascriptから参照し、実行します。


WebAssemblyの流れ

 プレゼンでは、WASMを使った例として、以下のようなアニメーションが紹介されました。


WebAssemblyを使用したdemoアニメーション

上のアニメーションでは、以下のことが行われています。
 1.Rust(Mozillaが開発するプログラミング言語)で、画像を表すbufferを作成し、そのメモリ内でのindexを返す関数、およびbufferを更新するための関数を定義します。
 2.WASMにコンパイル。
 3.Javascriptで上記のWASMをimportし、WASMのbufferを更新用の関数を逐一実行。bufferの表す画像をアニメーションとして表示します。

demoアニメーションで行われていること

 Webブラウザの言語はjavascriptが主流だと思っていましたが、WebAssemblyという新しい言語が登場したことで、もしかしたらWeb開発におけるプラットフォームが変わるのかと思うとワクワクしますね。

このページの先頭へ