关于ECMAScript 2019规范的新增特性
关于ECMAScript 2019规范的新增特性
即将步入而立之年,回望2019年,工作上有些许波动也在稳步前进,宝宝也在逐步成长,家庭今年和谐相处,整体上来看还不错,也还有很多要努力提高的地方,希望2020年继续前进。
年初从爱云出来,到了苏宁短暂停留,中间歇了将近两个月,最终到了华为,过程稍显折腾,结果倒也令人满意,遇到一群很不错的小伙伴。
在爱云待了将近三年,从零参与了物联网使能平台前端的搭建和成长,再到卖出第一单,技术支持,从中能够体会到创业的艰辛,也能体会到成功的喜悦,虽然物联网的道路还很漫长,我也还是相信物联网会给我们带来很多便利。在这里,老板的人格魅力是无穷的,同事们的氛围也很融洽,一起打羽毛球,一起讨论技术。
在苏宁,原本以为会在一个新项目中,中间发生一些变动,实际上到了易购的一个部门,遇到了朱总,很有趣的一个兄弟,在这里也学到了不少东西。到这里也是临时顶上去做营销活动的项目,赶着项目上线也是比较辛苦的,最终项目安稳上线,也算是一点安慰。最终,个人感觉不太能接受这边的企业文化,选择了离开。
休息期间,看了南京的不少互联网企业,较多的是创业公司,本来打算要去一家创业公司的前端架构组的,机缘巧合,华为这边也联系了面试,面下来感觉还不错,结果就到了现在这边,主要负责前端的业务开发,也会兼顾一些前端新技术的分享和工程化。
总结毕业之后的工作历程,每一次的更换都是一种成长,对应的是自己对未来方向的选择。从一开始的迷茫,到逐渐发现自己想要走的技术方向,一步一步都有很多付出和有这相应的收获。现阶段的目标,沿着前端这个方向继续深入,深度掌握JS语言(阅读和理解ECMAScript Spec)的同时,兼顾工程化的调研,同时补充自己的CS基础知识(2020年的一个阅读目标是精读SICP)。
宝宝今年不知不觉两周岁了,从年初刚学会走路,到现在可以跑过来跑过去的一个大宝宝。接下来,让他在愉快玩耍的童年里,也要学点东西,我想让他学点古文(四书五经、阳明心学)、简单的英语和数学。
年中和老婆实现了一趟日本自由行,通过之前刚毕业时候学的日语,基本能用在购物和问路上面。玩过之后,觉得日本是个不错的地方,能够发展强大,确实有其过人之处,尤其在文化传承上,值得我们的学习。另外,对于环境生态的保护做得也很好。
这一年,在健身方面的投入较少,工作的的更换是其中一个原因,更多的是自己的原因。接下来一年,要更多关注锻炼健身,保持坚持。饮食上坚持多吃面食,遵循苏东坡先生的方法“已饥而食,未饱先止”,今年着实吃了很多馒头和饺子,作为一个南方人,吃北方人喜欢吃的面食也是不错的。
自从接触了阳明心学,觉得一步步在深入儒家之路,去年读了《传习录》,因为其中涉及很多四书五经的引用讨论,今年接着在读《论语》,读的是李泽厚先生的《论语今读》,属于译注,包括翻译和注解,方便理解。12月份,听了南京师范大学郦波教授的《五百年来王阳明》,加深了之前对阳明心学的认识,不过认识的程度还远远不够,因此2020年的另一个阅读目标,准备读一读《华杉读透王阳明<传习录>》并结合着阅读《王阳明全集》。
针对阳明先生的几个理论,值得在生活工作中不断的练习和领悟。
“心即理、心外无物”、“知行合一”、“致良知”。
另外一个收获,读了二战期间奥地利的一个心理医生弗兰克尔
写的《活出生命的意义》,作者是一名被德国人关押在集中营的犹太人,九死一生最终解放集中营后逃出并写出来自己的经历感悟和一种心理治疗方法。其中,提到的什么是生命的意义,我个人颇为赞同:
我们都可以在这其中找到自己生命的意义。
心理学的经典著作对个人的帮助确实很大,之前在《少有人走的路》里,作者提出了一个观点,每一个人或多或少都有一些心理上的问题,在于自己愿不愿意去承认罢了,新的一年,我还是给自己准备了一个《自卑与超越》的心理学书籍,作者是和弗兰克尔
同时代的一个著名心理学家阿德勒
,值得期待。
临近新的一年,希望接下来一年工作顺利、家里人身体棒棒、和谐相处。
2019.12.31
这是下半年去的培荣书屋,汪涵给他父亲开的一家书店
2019年共阅读了23本书,年初计划的24本书中,尚有13本未读完,期间也读了一些非计划内的书。因此2020年准备计划阅读的书单会减少一些数量,并且会更注重精读的质量。
个人比较推荐的有弗兰克尔的《活出生命的意义》、乔治奥威尔的《1984》和《动物农场》、还有吴军的《见识》。
下面是阅读过的书籍短评:
《Web前端开发修炼之道》
《异类-不一样的成功启示录》
by 马尔科姆·格拉德威尔
《失控》
by KK
《CSS禅意花园》
by Shea Dove
《生命之书》
《未来世界的幸存者》
阮一峰
《活出生命的意义》
弗兰克尔
《穷查理宝典》
查理芒格
《JavaScript语言精粹》
道格拉斯·克劳福德
《你不知道的JavaScript 上卷和中卷》
《1984》
乔治奥威尔
《动物农场》
乔治奥威尔
《如何不为钱发愁》
《如何用一年的时间获得10年的经验》
郝培强
《软技能》
《Web前端开发最佳实践》
《清醒思考的艺术》
罗尔夫•多贝里
《哲学简史》
冯友兰
《下一个倒下的会不会是华为》
《价值为纲》
《见识》
吴军
《论语今读》
李泽厚
《习惯的力量》
一年一度的D2论坛,今年第14届依然和上一届一样,在同一个酒店-杭州和达希尔顿逸林酒店,这次和两个小伙伴一起同行,早上5点半起床赶高铁,正好9点左右到会场,赶上圆心的开场演讲。
2019年,对于前端来讲,有很多大的变化,serverless的逐步流行,TypeScript逐渐成为前端项目开发的首选,微前端的落地等等,这些趋势在会上的主题演讲中也有体现。
本次大会安排了6个专场:
这些主题的选取也体现阿里前端技术委员会对前端趋势的理解,几个方向的演讲都有小伙伴们在探索实践,就如圆心在开场所讲,前端在垂直领域以及深度方面有更多可以探索的内容。具体的演讲主题可参考D2官网
圆心,作为阿里前端委员会的老板,每届会议的Keynote主持人。本次开场,讲到了这几个方面:
久闻克军大佬之名,这次终于见到真容。讲得是云时代的前端架构,微前端架构体系,这是一个体系,并不单单指某一个微前端的框架或者库,包含了从前到后的几大方面。
从前端架构历史演进着手,逐步说明了微前端带来的变化,我的个人理解,微前端主要在中大型项目中为项目的灵活维护和部署提供了一个手段,并且可以将不同技术栈的前端应用集成在一起。
克军提出的微前端体系,包括了这几个部分:
微前端的主要原理,通过一个主应用来协调各应用之间的切换,实现协同工作。
这个主题演讲是关于智能化的,对应的开源项目是阿里imgcook,利用Tensorflow.js
机器学习实现自动切图,由设计稿到逻辑代码。介绍了背后实现的思路,整体下来听着比较枯燥,表示没太明白。
其中提到了一个阿里近期开源的项目pipcook
。
这个主题主要讲后端nodejs相关的开发,通过对比nodejs回调和fibjs库中同步调用的性能对比,讲解重构和推广fibjs,没有听完。
IDE最近也是一个很热门的方向,有很多公司都在做,不管是云端的WebIDE还是桌面端,通过Electron技术可以将web技术栈的实现转为桌面端。由于这几年VSCode编辑器大火,很多项目基于VSCode开发了自己的IDE,服务于他们的配套产品,例如小程序等等。
这里介绍的是阿里开天的项目,兼容VSCode的一个IDE。
一个意大利大学数学系的小哥来讲了Babel
背后的原理,主要介绍了一下Babel的主要工作流程以及涉及到哪些核心的库。
Babel主要是基于AST
来对代码进行解析和转译。
这个主题介绍了在浏览器上的构建方式,比较熟悉的产品有CodeSandbox
和Stackblitz
。
从这几个方面介绍了如何实现浏览器的构建:
这是HappyPack的作者,分布式前端架构,其实概念上和微前端的类似的,不过演讲中提到他们的实践中用了例如consul
的服务发现工具,以及如何去实现应用的切换,还是蛮精彩的一个演讲。
对前端的未来做一下展望,有很多新的技术有望落地发展壮大,
关于前端2019年的总结和未来展望,这里有一篇文章不错,有原文和译文,值得一读。
上周末刚参加JSconf China 2019, 在这里聊聊记录一下感受。
本次在上海举办的第7届JSConf China大会,也是我第一次参加JSConf China,参加完这次会议,也完成了年初给自己定下来的一个目标,一年参加两次技术会议,上一次会议是D2(其实也顺带参加了SEE Conf,蚂蚁金服举办的,同一个周末)。
具体聊一下印象比较深刻的几个主题演讲:
The Beauty of TypeScript,这个主题由微软中国的工程师韩骏分享的,介绍了TS的优点,主要是解决JS开发时的痛点,引入类型,支持编译并兼容JS,适用于多人大型的项目开发。介绍了@ts-check、@ts-uncheck、@ts-ignore和any作为从JS迁移TS的一些辅助手段。
面向传统,Serverless 进化之路,这个主题由阿里的大佬陈仲寅分享淘系前端在Serverless的探索和落地经验,从他们的实践上看,上了Serverless之后相对原来的资源消耗,在双十一的情况节约30%左右,平时可节约40%,还是一个不错的表现。另外,好处有几个方面,降低运维的难度,自动扩容和监控,方便发布,集成特定的环境不用浪费时间在安装组件和兼容性方面;另一个方面,服务由函数来实现,原服务端的功能由前端来实现,也就加重了前端的工作量,这一点不能说是坏事,前端的工程领域更加扩大,其实在nodejs做bff的场景下,前端已经往后端走了一小步。
中间一个小插曲,腾讯云来做了一波推广,用他们的服务做了一个现场演示,FaaS支持比较方便的编写和发布,现场险些翻车,演示了一个圣诞帽戴在头像上方。
write code to refactor code
, 这是一个妹纸介绍了使用AST(抽象语法树)的方法,来进行代码重构。通过写一些脚本,分析出代码结构,从而进行一些重构的工作,比如替换等。另外,使用AST还可以做很多有趣的事情,转译、Lint等等。
去除迷雾,漫谈WebAssembly
, 一个小哥讲述了WebAssembly的运行过程,以及介绍了相关的使用资源,https://wapm.io/
是一个WebAssembly的包管理器,类似于NPM的角色。介绍了Rust与WebAssembly的关联,可比较方便的从Rust转换代码到Wasm。
从这次大会上看前端的一些趋势,其实几个热门主题这几年一直都比较火,很多大会都有安排相应的演讲:
大会的整体感受,内容比较偏入门,深度和可欣赏性不够,干货不多,与门票的价格不相符。其中有两场Nike的演讲,与前端貌似没有多大关联。下一届应该不会参加了。具体的吐槽可以看看知乎上的回答。
接下来就看12月份D2的表现了。
本次旅游了日本的京都、奈良、大阪三个地方,共花了8天7夜的时间,对本次的旅行记录一下回顾和感想,其中分为三个部分来描述,游记、攻略和感想。
关于这次的旅行,是年初的时候就计划好的,关于地点是台北和日本京都选择其一的,最终选择了日本,理由是先感受一下日本的文化和风情;关于时间,起初计划的时间是9月份的,正好这段时间离职了,老婆也正好也有时间,就排上这次旅行。
总的图片集合可以访问日本自由行图片集合
2019年的第一个周末在杭州参加了两个都是阿里主导的前端技术会议,一个是SEE Conf,另一个是D2,从参会人员规模和演讲嘉宾来看,D2的级别更高一点,干货也更多。但是,SEE Conf的初心是很不错的,而且也是免费分享,提出了体验的重要性和可持续的未来相关观点。
SEE Conf,全称是Seeking Experience and Engineer Conference,关注体验和工程,他们的口号是探索极致用户体验和最佳工程实践,他们也是身体力行的在探索。
从一整天的会议听下来,不免有一些蚂蚁金服在推广他们的开源产品,但是其中也分享了不少新鲜的观点。这里列几个对我印象比较深刻的主题。
开场玉伯致辞,久闻大名,第一次在现场见到,很接地气。
玉伯提出了当前SaaS应用渐渐成为主流,也因此应用的体验变得日趋重要,这也是他们一直在推行探索体验技术的一个推力之一。另外一点,现场中玉伯也提到了Ant Design项目的“圣诞彩蛋”项目,并且现场道歉了,对于开源项目的态度还是比较诚恳的,对于后续他们对开源项目的维护有些期待,希望阿里和蚂蚁对开源社区多用心,负责。
这个主题前半部分一直在谈人类的历史和地球面临的问题,一直没有和设计扯上关系。到了中期,慢慢过渡到交互设计,人类可持续发展与设计的关联,再扩展到设计与社区的实践。这个主题分享确实能开阔眼界,学术前沿的研究方向。
其中娄院长提到了其中一本书《翻转极限》,应该值得一看,讲目前人类遇到的种种问题,以及现今的解决方案。
相信很多人知道林峰是因为ECharts,现在林峰应该是在蚂蚁带领可视化的团队。林峰的演讲整体给人的感觉,演讲很流畅,口才听好的。演讲的内容也很有趣,主要谈及的是产品在体验方面的定量度量方法,并且能提供建议,他们内部的产品名称是“九色鹿”,应该还没有开源。主要的依据是PTECH指标,后续可以了解一下,TECH指标是在上一届SEE Conf中提出的。
用过dva和roadhog项目,在github上的id是sorrycc,现场看到真人和头像不怎么像,可能是胖了。
这个分享中云谦提到了蚂蚁金服在前端框架选型和造轮子路上,一路走来的历程,从roof、redux、dva、umi,踩过不少坑。现场看,他们内部主要在用umi以及基于umi的一套插件生态,dva他们只用在数据流方面,已经濒临淘汰;不过现场的观众来看,还是有不少人在使用dva,大家也表示出对dva后续开发维护的担忧,云谦给出的答复是,dva后续会有第3版的升级,roadhog将会进入维护模式。而且,期间云谦也分享了他在技术选型方面的建议,除了技术或者工具本身的情况,另外还有一点是运气。
今年的D2是第13届,据说来参加的人数有近千人。之前听说是没有收费的,今年也开始进行收费了,场地选在杭州下沙的和达希尔顿酒店,场地费应该也不便宜,这次会议不止是阿里的专家演讲,也请了外边的好几个讲师,包括facebook工程师和德国的小哥等等。整体而言,干货很多,也了解了当前前端方面的一些趋势。
有关前端趋势方面,前段时间,2018年的stateofjs网站进行问卷调查,出了一个js生态相关的报告,可以了解到世界范围前端的趋势。这里,阿里的的前端委员会主席圆心也提了几点,主要涉及几点:
从整个会议下来,Angular基本被国内开发者忽视,国内的开源生态也基本是基于react和vue。
台湾小哥王启安带来的GraphQL实践,布道。国内的实践还是处于萌芽阶段,真正使用的团队还比较少,不过GraphQL相对于Rest API而言,性能上是有很大优势的。通过前端自定义查询字段,从而减少http请求和无效数据带宽浪费。相信这是一个未来的趋势。
阿里西蒙有关天猫双十一的海量数据渲染,涉及到WebGL 2、WebAssembly等的使用和优化案例,很精彩。
这个topic是有关大规模地理数据的绘制的理论研究,其中提到了一些方法,蓝噪声采样处理数据,以及如何解决大数据量的前端绘制的方案。其中提到,数据量较大的情况下,其实有些时候是可以在后台进行绘制,而前端进行展示。
来自Facebook的工程师,讲解了suspense的使用,用于组件懒加载时显示loading内容的方式。以及介绍了后续react支持异步数据加载的API,值得期待。
这个topic是由法国的一个哥们讲的有关WebAssembly,由浅入深的讲解,没有过实践,也只能听听。从D2整体的报告来看,WebAssembly技术在国内外实践落地的不少,而且从兼容性来看也基本可以上生产了。
最后一个报告是在第3号报告厅,听的Hax讲的关于JS中Class Field相关的问题,据说是浓缩了3个小时的精华,信息量确实很大。这个话题主要涉及到ECMAScript标准中有争议的内容,槽点较多。
今年的主题,都比较有含金量,毕竟是收费了,还是值得参加的。另外,还有一些感兴趣的话题,时间上是冲突的,没法去听,后续通过视频回放再看。
2019年计划阅读共32本,每个季度8本
更新于2019.12.29