2017值得一瞥的JavaScript相关技术趋势
作者:网络转载 发布时间:[ 2017/4/13 13:28:40 ] 推荐标签:Javascript 测试开发技术
OCaml大的特性是其函数式语言特性,我们再看下其对于不可变类型的支持,我们使用OCaml stdlib实现的不可变类型如下:
moduleIntMap=Map.Make(struct
typet=int
letcompare(x:int)y=comparexy
end)
lettest()=
letm=refIntMap.emptyin
letcount=1000000in
fori=0tocountdo
m:=IntMap.addii!m
done;
fori=0tocountdo
ignore(IntMap.findi!m)
done
let()=test()
而如果要用FacebookImmutable实现的代码为:
'usestrict';
varImmutable=require('immutable');
varMap=Immutable.Map;
varm=newMap();
functiontest(){
varcount=1000000;
for(vari=0;i<count;++i){
m=m.set(i,i);
}
for(varj=0;j<count;++j){
m.get(j);
}
}
test();
性能评测下,二者的执行时间对比为:
· BuckleScript: 1186ms
· JavaScript: 3415ms
编译后的体积为:
· BuckleScript (production): 899 Bytes
· JavaScript: 55.3K Bytes
ReasonML
ReasonML与React师出同门,是基于OCamel设计的语法友好、编辑器支持程度高,并且有强大的编译工具支持的语言。建议阅读Sean Grove对ReasonML的介绍。本文简单介绍几个JavaScript与Reason的语法对比:
Purescript
另一个强类型、高性能的能够编译到JavaScript的编程语言,其定位与Elm类似,主要特性为:
· 没有运行时错误
· 严格的,类似于JavaScript的计算
· 支持JavaScript 对象语法
· 提供相较于Hashkell更强大方便的类型系统
· 更方便地JavaScript库集成
Webpack-blocks
Dan Abramov说过,Webpack的定位是在相对底层,因此将配置以编程块的方式实现会更加完备。
const { createConfig, defineConstants, env, entryPoint, setOutput, sourceMaps } = require('@webpack-blocks/webpack2')
const babel = require('@webpack-blocks/babel6')
const devServer = require('@webpack-blocks/dev-server2')
const postcss = require('@webpack-blocks/postcss')
const autoprefixer = require('autoprefixer')
module.exports = createConfig([
entryPoint('./src/main.js'),
setOutput('./build/bundle.js'),
babel(),
postcss([
autoprefixer({ browsers: ['last 2 versions'] })
]),
defineConstants({
'process.env.NODE_ENV': process.env.NODE_ENV
}),
env('development', [
devServer(),
devServer.proxy({
'/api': { target: 'http://localhost:3000' }
}),
sourceMaps()
])
]);
GraphQL
GraphQL是个不错的REST替代查询语言,特别是对于那些拥有大量数据的公司。这个案例分析很好地阐述了从REST到GraphQL的转变之路。我能够想象2017年GraphQL会继续处于上升势头,不过要谈到真的大规模实施,还要到2018年吧。
React Storybook
相信大家对于React Storybook并不陌生了,你能够独立于应用而交互式的开发你的组件
[jQuery 3.0]()
爷爷辈的jQuery仍然处于不断的迭代更新中,可能很多开发者忽略了2016年6月份发布的jQuery 3.0版本,可以参考这里获取更多信息。
Pixi.js
如果你打算在浏览器中实现精彩的2D效果,特别是对于使用WebGL的游戏开发者,Pixi.js是个值得一看的库,可以参考这里获取更多的Demo。
Preact与[inferno]()
非常的React的替代库。
Rust
Rust可以编译到JavaScript啦(通过emscripten)。
Custom Elements
Custom Elements(包括Shadow DOM)一直不被主流的开发者接受,不过看似2017这一点将会发生些许变化。变化的关键因素在于浏览器支持比例的改善。个人还是蛮期待Custom Elements的,可以关注SmashingMag或者Google’s关于Custom Elements的解释。
WebRTC
很难相信WebRTC已经五岁了,Facebook、Slack、Snapchat以及WhatsApp都在他们的服务中集成了WebRTC。可以预见WebRTC会在2017年被更多的公司采用,蒸蒸日上。
Next.js
Next.js是个基于React、Webpack与Babel构建的,支持服务端渲染的小框架,其来源于ZEIT团队,在React社区获得了不小的关注度。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11