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的平台开发发生变化,想想还是很激动呢。