2020年的前端

1. WebAssembly
WebAssembly
简称Wasm
,它是一种二进制数据结构。
由于JS的发展历史,JS成为了一种不需要编译的动态脚本语言,它是一种解释性语言。只有在执行代码的前一秒,JS引擎才会去对相关代码进行即时的编译解析,所以浏览器执行代码之余,还要耗费时间去将JS代码编译成机器码。
而Wasm
不一样,它是一种低级的类汇编语言,它更接近机器码,并且可以在现代浏览器中运行,所以他不需要很长的编译时间,在运行速度上得到极大提升。官网称其目标为达到本地应用的执行速度。
并且Wasm
是跨平台的,也就是说当你的代码编译成Wasm
之后,它就可以在任何支持的平台上运行了。但是由于Javascript是一门动态语言,很难进行编译,Wasm
并不是设计给JS用的,而是给C/C++、Rust、GO等高级语言设计的,你甚至需要自己去管理垃圾回收,优化性能。但是Wasm
能和JS一起使用,JS能加载Wasm
模块并使用其提供的内容。
最后,这一技术会带来怎样的改变,很难去预测,但是它会让浏览器的地位更加牢固这是肯定的。或许它能让网页应用能有本地应用一样的流畅体验,能允许我们构建出更复杂庞大的应用,能极大提升网页动画的流畅效果?
2. Serverless
Serverless
并不是指没有服务器,想想都不可能,它的意思为弱化服务器。
想想近几年的云平台,微服务架构。首先云平台,让你都不用去管理这些底层基础设施,并且提供了配套的安全,扩容等服务,你只需花钱进行购买,对的要花钱。微服务架构,将服务拆分复用,而不是揉成一团,方便维护更方便业务拓展。
Serverless
的出现,告诉我们,你们连服务器都不用买了,你只需要基于Faas
(Function as a Service),写一些业务函数,专注于你的业务开发,在进行一些简单的配置,你的服务就可以上线了。
为什么可以这样?因为Serverless
是基于事件机制的!典型的Serverless
服务是由亚马逊提供的AWS Lambda
。我们在云上编写函数,再配置当某个事件触发时调用某个函数。而其他的什么数据库安装,服务器配置…都不需要我们考虑。这极大的缩短了一个项目从启动到一个MVP(minimum viable product)上线的时间。
而对于收费,当你的函数没有被调用,也就是闲置的时候,是不收费的。也就是说它比在现有云平台的购买服务器来得更加划算,因为大部分时间当你的应用闲置时你也是要对服务器进行付费的。当然对于某些使用频率较高的服务器不适用。
所以Serverless
的出现,加速了产品的上线,迭代速度。当然还有一些其他的用法能充分展示其特点,比如文件处理,聊天机器人,这些对状态没有要求的服务。
3. Flutter
Flutter is Google’s UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase.
一套代码就能编写出能在移动端,桌面端和web端运行的应用,听着就十分的完美!
Flutter拥有一套完整的生态链:包管理器,UI库,和一个强力的维护者Google。
实际操作过后的感想是,widget
和类实在太多了。熟练使用很需要经验,好在是由于强类型的代码提示,能让我们不必记住每一个属性。当然,由于它的编程语言是dart
,所以你还需要学习dart
。好在是dart
和JS的语法还挺像的,而且还有dart2js这种库,所以学习起来也不算困难。
在你克服这些困难后,你就拥有了一套代码运行三个端的能力了。极大降低了初期产品的研发运营周期。
4. WebComponent
怎么说,有点像原生HTML的自定义元素(element)集。
加载一个已经发布的WebComponent
,然后使用这个自定义元素。
就和你使用Vue
框架开发,然后加载一个vue
的component
比如el-table
,然后再当做自定义标签使用这个component
。