6月21日~6月22日, 第一次跑远门去参加一个大会(广州 -> 杭州),原本打算,在火车的回来的路上,把这两天的东西记录一下,不过,火车上的环境实在恶劣,同时也高估了本身的专一力,因此,最后仍是决定回来再写吧,还能够先看看,别人是怎么写的.在动笔以前,看了一下别人写的,因此,直接略过会议的一些流程,对这个会议的流程有兴趣的能够去看附录的传送门,我以为他们已经把我原本想写的东西都写了,而后,就直接针对,每一个slide说说本身的见解,正如标题所说,就是个流水帐...html
<!--more-->node
每一个slide我都会根据本身的理解从新命名一次,用于表达本身的第一见解,主观意见,不喜可吐槽,可是不要喷,就算要喷请轻碰...mysql
此次hangjs的第一场是由严清老师带来的关于thenjs异步编程的实现原理和优缺点分享.ios
其实关于JS的异步编程能够算得上是烂大街的主题了,严清老师以为各家的的异步实现的轮子很差,因而thenjs就诞生.不过,严清老师能实现一个不错的库,可是,在我看来在一个只有40多分钟的slide里大谈具体代码的实现原理,并不合适,花大量时间谈具体的代码实现,在一个只有40多分钟的slide里头是很枯燥的事情(并且,我也不以为这玩意可以在40分钟里头说清),毕竟这个东西是开源的,粗略的说说实现就好,你对实现感兴趣,去看源码吧!接下来用实际案例说说这个轮子的实现跟其余家轮子的实现有什么不一样的地方,这样的不一样,带来了什么好的地方.这样,我就对thenjs的异步实现很是感兴趣,从而对异步实现原理有更高层次的理解.毕竟这是一个时间很短的slide,但愿可以多说一些可以启发性的东西,而不是具体怎么写.git
如同前面说的js异步编程实际上是烂大街的话题,我感受你们更多想看到各类案例实践,并且我也一开始是觉得标题的优缺点会是严清老师,会大说特说在实际开发中,用现用的异步库如何如何被坑,而后决心本身造轮子,用各类血的现实告诉你们,thenjs是如何好用...这样的异步实现是多么的优秀...结果到优缺点的比较主要仍是各类基于代码的实现比较....没有任何炫酷的实际案例比较...程序员
这个slide 是最近很火的atom编辑器主要做者之一的赵成 的分享,原标题是 Atom编辑器嵌入Node.js引擎实践,当时,看到这个标题,我就以为,我听这个slide就是打打酱油了,由于不可能听懂,做为一个凡人码农,历来都没看过Node.js是怎么实现的,而后,这个slide一上来就跟咱们说,如何改造Node.js的引擎,实在是过高端了...实在玩不过来,不过我相信,会场几百号人确定有人能听懂的,只是我比较low而已...github
不过,一个面向JS程序员的大会,讲如何让Chromium可以运行v8,我不敢表示大多数,可是有一点能够确定是,不少Node.js程序员并不会编译Chromium,那么更不用说,知道原理后,要动手操做Node.js跟Chromium合体了.做为对atom-shell最了解的人说,面对的大部分JS程序员,我以为这个slide还不如多多分享一下怎么用atom-shell 快速开发一些跨平台app技巧,而后用一些具体案例对比一下node-webkit这二者的优缺点(关于这个优缺点在此次slide上有提到过,不过并没细讲...).web
PS:此次的演讲者做为github员工,说了一些关于github的内部事情,atom原本是打算不开源的,可是,不开源的阵营的主要领导者,由于某次丑闻致使离职,因而atom就开源了...sql
此次的演讲者赫门带来的是前几个月就开始有讨论的先后端分离实践.mongodb
此次的slide,经过两次大战来递进的说目前先后端实践的状况,这个我听着挺带感的,由于,我正好就是第一次先后端分离大战的实践者,而后碰到的问题也跟slide说的同样.
不过,第二次先后端分离大战,虽然标题的是第二次,可是,我以为本质只是第一次先后端分离大战的一个特殊存在,针对的是你的后端业务不是用Node.js来写,因而经过Node.js对后端业务进行一个合并优化,让客户端干少一点事情,提高客户端的响应速度.因此,Node.js就像胶水同样把两个分离的东西粘在了一块儿.毕竟不少系统都用了十几年了,不太可能再用Nodejs重写一遍,不过利用Node.js做为胶水的功能,针对移动应用的场景对现有系统进行优化,是个不错的实践思路.
下午第一场slide是由台湾开发者蘇 培欣带来的是,Google BigQuery API Node.js实践 看到这个标题,应该明白我为何对这个slide起了这么一个名字了吧?
这个slide其实也没什么好说的,就是讲如何使用bigquery 这个用Node.js写的模组(模块),进行google big query的查询.
不过,经过这个slide知道了Google bigquery 这个服务,却是一个不错的收获,对于有大数据需求,可是没有空折腾各类优化的精力,用这个服务却是省心很多,对了,要速度快,访问google的黑科技是必需要掌握的!
此次slide是由James Halliday来演讲,github是substack平时,在使用库的时候有关注做者的习惯的话,对于这个github名字应该很熟悉了吧!
外国人的演讲,你就不要期望外国人可以跟你用中文演讲了.第一次在现场听外国人的演讲,果真是近乎彻底听不懂orz.关于@substack的不少趣闻,已经有不少人说过了,这里就不跑题了,仍是说说此次slide的收获吧.
虽然,听不懂说什么,可是不妨碍我看得懂PPT说什么..
在出发去hangjs的时候正好在使用gulp的时候看了一本substack写的Node.js流编程实践stream-handbook,而后此次slide,substack 现场编程show了一把这个思想的具体应用,直到如今我还在消化着,等消化得差很少,在额外写一篇分享吧.
最后介绍了一个挺好玩的东西voxeljs 基本上就是一个相似于Minecraft 的H5 游戏,不过,能够在上面编程让游戏变得很好玩.
这场slide由来自于中科院的@belleveinvis分享如何写一个代码生成器的原理,标题: Patrisika - Theoretical and Practical Code Generation.在听这个的slide的过程当中,我和吴老师,表示各类听不懂.由于听不懂,也很差作什么评价了.
原本,我以为在一个面向js程序员的大会上讲如何写一个代码生成器是否合适主题?不过,后边翻了一下微博就找到同吐槽看不懂,不过有个看懂了的回复说实际上是符合主题的.
跟js同步异步转换有关,因此在这里讲也不过度 具体内容点击传送门吧.
PS: 翻了一下微博,仍是有人有不错的收获例如 题叶
只能说本身的水平不行..orz
接下来是芋头分享的 如何快速构建MVC应用.
实际上这个slide主要是讲Rabbit.js 的设计思想,传统的mvc 加上一套约定的web框架,跟paypal 的kraken-js有点相似,不过有个特色就是Rabbit.js 封装了一个Sql 和 nosql的模型定义,可让你的代码在mysql 和 mongodb 都可以运行的很好.
芋头在slide上一再强调Rabbit.js还没正式发布,而后,各位有兴趣的话能够看着学习一下,看能不能对本身的开发有所启发.
今天最后一场slide是由百度工程师@berg 带来的目前关于如何让H5的应用运行得很流畅的解决方案: BlendUI - 让轻应用如Native般流畅
在这个slide开讲前,我对这个slide其实挺期待的,由于,我一直都有关注h5在app上的应用,对于用h5作的应用,最无解的问题就是动画的流畅性,对于如今,IOS 的原生webview性能已经很好了,在将来的ios8 webview的js引擎终于用上跟safari 同样的引擎,而且支持webgl,而后,随着硬件的各类升级,最终让基于H5的应用达到本地应用的流畅性(将来两年内应该能够实现),不过这都是将来,如今仍是老老实实写本地应用吧.
而后看到这个标题,内心仍是挺期待在当前硬件没法获得解决的状况下,是否存在什么黑科技,让H5应用达到一个飞越?
在听这场slide的时候,果真,不存在什么黑科技! BlendUI 的解决方案,并非打算死磕纯DOM黑科技实现,而是,应地制宜用了一些技巧.原生DOM动画,不流畅,那么动画这部分,我不用DOM来实现了,直接上本地,这下动画切换的流畅问题就完美解决了.每一个页面就是一个webview,页面的切换就是两个webview的本地切换,效果妥妥的流畅! 多webview 内存占用多? 如今千元手机都2G内存了,妥妥的!并且开多个webview其实并无那么耗内存!
因而BlendUI 如Native般流畅 实际上由于动画部分就是native, 那还不是如Native般流畅....因此,我说这个标题存在的矛盾性就在这里.不过,多是我对轻应用的了解不同,我对轻应用的了解的就是能用纯H5实现,不套壳能用浏览器运行,套壳就是APP,只要有webview控件的平台都能支持.由于轻嘛,因此,跨平台运行妥妥的。
对于用多webview的动画切换来解决H5类型应用的方案,其实早在一年前我就有尝试过,在这里会有几个坑的,后边after party 找berg实机体验了一把,看来这个坑berg就目前这个版本并无解决,关于这点,后边after party在展开说.
小插曲: 在提问环节,有我的问berg,目前百度轻应用有没有什么明星应用,若是没记错的话,berg回答的是尚未...
对于每届中国JS开发者大会,最有价值的就是这个after party了,能够面对面的找各类大牛进行交流.
我找到了berg,借手机实机体验了一把BlendUI,安装blendui 的轻应用是一台小米2, 有2G 内存.我针对过去研究碰到的坑,立马测试了一下,因而仍是碰到了.总结以下:
有必定机率webview和原生控件同时存在一个页面. 这个坑很怪异,挺难重现的,就是你的webview有张图片,你点击这个图片用原生控件来显示,在某种操做的状况下,这个原生显示图片的控件会和webview在你没点击图片的时候同时显示.
webview 丢失.这个坑就很比如较容易重现.表现是当你,在点击webview的某张图片后,是显示一个覆盖这个webview图片滑动控件,而后快速后退,在快速点击某个item,重复快速的操做前面的步骤,就会有必定概率不管你点那个item也不会显示webview而是一直显示这个滑动图片控件.
不过BlendUI 并无正式发布,因此以上bug可能到时候已经修复了.对了,不知道到时候,在目前千元手机1G内存下的表现又会是如何呢?
我线下的即兴交流能力实在是太差了,跟berg 简单交流了一下,就是走走听一下,你们都在讨论什么,那些围着外国友人的交流的实在高端,简单的听了一下,表示无力....
期间跟一个大众点评的员工简单交流了一下,发现,大众点评在一些小业务上也用上了Node.js,并且,还用上了docker.
PS: 个人交流能力有待提升啊....
其余人的hangjs 参会记录