博客
Blog

2020年07月03日

第14次公司内部学习会

6月26日,在等待梅雨结束的时候,举行了SOHOBB的第14次学习会。
此次的主题是本公司熟悉的云服务Salesforce的【Salesforce DX 的使用心得】与在web浏览器上运行的一种叫做【WebAssembly】的新的通用的二进制的语言。两者都非常有意思。

Saleforce DX的使用心得

 一般情况下Salesforce DX的使用图像如下所示。但是,DX自身有一些问题,总结为5点。

①scratch的环境搭建
 scratch环境搭建时需要环境的配置文件。但是,开发的时候,存在开发环境和生产环境是否相同的问题。
 实际配置的时候,由于不知道实际的配置情况,因此准确配置非常困难。
如若不能正确配置,实际获取xml文件的时候,缺少配置的可能性很高,之后会给别的工程带来别的影响。

对策:
 1.如果是既有Project,可以从之前的开发中获取配置文件。
 2.新的Project的情况下,首先需要预防的可能出现的错误。

②从DX Project中Push到scratch环境
 1.在这一步中,有可能不能全部push。使用.forceignore中配置Ignore,首先push没有Ignore的情况,然后分阶段的将开发内容进行Push。
 2.将更改Push到环境时,可以更改DX的文件的本身,但是Push的时候,就不能执行scratch环境对应的操作(比方说在DX中删除PageLayout和在scratch的环境下删除PageLayout都是不行的)。
 3.由于①的影响,Push的时候会有错误
 4.在当前步骤下,Snapshot的Push是无法进行的。

对策:
 1.学习.forceignore的使用方法,以便在有错误的时候能够更好的进行操作。
 2.在Git中正确管理,Pull的时候对开发内容进行检查,只反映开发内容的部分。(避免从Git中删除多余的部分)

③从scratch环境中pull到DX Project中
 1.无法保证所有内容都能被pull,特别是Profile的部分获取不充分的时候。(项目权限,Pagelayout分割等)
 2.有Pull不到变更内容的情况出现。虽然原因不明,处理的时候,要明确自己的变更,推荐在Git中查看反馈。
 3.由于已经获取单个文件,因此必须注意不要仅对修改的部分,而是所有文件都进行配置的修改(Profile,环境的设定等)。
 4.Pull时要排除项目变更等,关联的部分的变更。有可能发生错误时就需要使用Grep。

④在其他环境下对开发内容进行Release/Push
如果有共享的配置文件,在Release/Push的时候,需要先合并共同的环境文件。而且,由于①、③的影响,scratch环境和Release/Push的环境有所不同,需要进行个别的修改。

⑤从其他的环境获取开发内容
 由于不能在报告和Dashboard中轻易取的,关于这部分需要花费一定的时间。

 由于之后有越来越多的深入学习Salesforce的机会,像学习会这样的学习形式使我受益匪浅。

WebAssembly

 WebAssembly(WASM)是在web浏览器上运行的新的通用的二进制规范(语言)。
在以前,想要在浏览器上运行程序,只有javascript(或者是css),如果使用WASM上进行编译的话,就可以使用C和C++语言编写可以在web浏览器上执行的程序。

WASM可以实现以下操作:
・在Web开发的时候,确保了语言的多样性。
・实现接近Native的高速(不必要)。

WASM的工作流可以通过以下表示。
 1.使用WASM(WebAssembly)对不同语言编写的代码进行编译,再由JavaScript进行import。
 2.从JavaScript中引用WASM内的模块并执行。


WebAssemblyの流程

 在演示中,用动画对WASM的例子进行介绍。


使用WebAssembly的demo动画

上面的动画,是通过以下的步骤进行执行的。
 1.在Rust(由Mozilla开发的编程语言)中,创建一个表示图像的buffer,并且定义这部分内存索引的返回参数以及buffer更新的相关的参数。
 2.在WASM中编译
 3.在Javascript中import上述的WASM,并逐步执行WASM的buffer的更新用参数。Buffer的外部图像用动画进行表示。

用demo动画表现执行过程

 我觉得Web浏览器的语言中虽然JavaScript是主流,但是WebAssembly这样的新的语言出现的话,说不定会使得基于Web的平台开发发生变化,想想还是很激动呢。

Page top