转眼参加完深圳举办 JSConf 2015 就一个多月了,看着大家在知乎上热烈的讨论着参加 ShenJS 的体验,我也来写写自己的感想:

首先,我就是冲着 尤雨溪 去的。年初的时候接触到 Meteor ,照着教程也做了个 star-microscope ,没想到这个平台的核心开发者居然有一位国人,当然要去膜拜一下啦。 作为第一位开场的嘉宾,也足以看出主办方对其的重视,好家伙,一上来全程飙英语,还好我之前接触过 Meteor, 就着已经了解的东西,勉强听懂了,这次除了 Meteor 的介绍,另外感觉最有意思的地方是,Meteor 并不是一个前端框架,而是一个平台,它可以很好的和 Angular JSReact JS 等其他流行的前端框架结合起来。

接触 Meteor 的时候感觉亮点还是挺多的,比如说:

  1. DDP - Distributed Data Protocol,一个分布式数据协议,用来从服务器获取结构化数据,并且当数据变化时接收实时更新。

  2. Minimongo 相当于一个跑在浏览器里的 MongoDB 数据库,而 UI State 通过 Minimongo 来和 client & service 的 Data State 做交互。

  3. Optimistic UI updates - 得益于上面两点,在 Meteor 中 View 层的改动,首先会在 Client 端的 Minimongo 立刻响应,做出一个临时的动态更新,然后再去检查 Service 端权限,如果有权限则通过 DDP 来将 View 的改动更新到 Service 端,如果没权限,则将 Service 端原来的数据同步到 Client 端,还原操作前的状态,这样会给人一种 Client 端操作实时响应的感觉,加强用户体验。

  4. 发布订阅模式,Service 端的 MongoDB 存储着全部数据,而 Client 端的 Minimongo 则根据各自的权限只需要存储小量对应的数据。

  5. 良好的生态 - 官方的包管理系统 atmospherejs 很像 Ruby 的 Gems, 你需要的功能,可能别人已经有现成的包可用,比如帐号登录功能就可以简单的引入 accounts-ui 来快速实现,大大加快开发效率。

而上午最后一个演讲的主题,正好也是一个用 Meteor 和 Angular 做的一个实时应用

其他方面,赫门的前端服务化之路提到的 flipper 让我想到更多的是 Google 的 Polymer

Hax 的主题很有意思: JavaScript: The World’s Best Programming language ,其实我觉得一个语言最重要的还是生态,大家一起不停地去改进才是最好的。

还有几个老外用 javascript 来控制硬件,以及使用 WebGL 和 WebVR 带来的炫酷功能。

当然还有一些 React 相关的演讲,这里有个有意思的地方,尤雨溪在 PPT 里说的 Relay / GraphQL 还没 Ready, 而我在写这篇文章的时候,Facebook 团队就已经在 GitHub 上正式放出了 Relay

可以看到前端技术的发展速度还是相当快的,也许真如赫门说的:

每18个月~24个月,前端都会难一倍

所以,我们还是加紧学习吧!