Contents

JingJS Badge首先要吐槽一下 @京JS。指示牌不清楚,从酒店另一个门进去根本看不到,最悲剧的是酒店的服务员都不知道这个会议。还有就是硬件上相当不给力,没有 WIFI,这不是新10大酷刑之一吗?没午饭,还要我等外地屌丝奔波找吃的。加之第一天的讲座广告水份有点多,个人感觉有趣的和比较好的是 @substackIssac 和讲 Data Visualization 的 Nick。第二天早上的主题还是相当给力的,下午 Kim, Jakob 也还不错。

晚上的活动还是要狠狠表扬一下 @京JS。第一晚包了车库咖啡,晚饭虽然是 Pizza 等,但是量也算足,只是地方有点小,不过也是逼着和别人站着交流的好机会。星期天的晚上还有去 Bar 的 after-party,可惜我要赶飞机回珠海,就没法去了,但估计也会很棒。

第一天晚上,看到 @substack 来了后,我坚定不移地过去和他搭话,接着各种好玩,技术黑和大神间(当然这不包我)的对话就来了。首先声明,可以肯定我的智商是完全没法跟上大神的,加上没法肯定听力上能跟上多少。所以下面的一些神吐糟不保证 100% 正确,有错误的话也是我这译者的错误,并且这里的技术黑都不是拉仇恨啊。 Please forgive my poor English for any potential misleading.

我和他搭话是因为我最近看的一篇关于 Promise 的文章,个人感觉不错的,想问他对比 Callback 有什么看法。原来他并不太喜欢 Promise。(好了,整晚挖坑自埋的节奏开始了)。他指点我去看看 callbackhell.com,还有他的 stream-handbook。说如果我按照那样做了,也应该不会碰到什么 Hell 的问题。他说即使他以后遇到,也是首先偏向于用 Async 的。

Substack Signature

接着一个同学拿着 Douglas Crockford 的书给他签名,他说虽然和他有点过节还是观点不同什么来着(他用的词忘了),但还是签了(他的签名很有趣,就是上面这幅机器人漫画,幸亏我也拿到一个)。我就八卦了一下问是他说的是什么情况,他举例说那个什么 Hoisting 就是胡扯。我当然也很赞同的说是的,应该定义在离它最近使用的地方。好像记得 @玉伯也叫射雕 也是持同样观点的。

然后 @fool2fish 出现了,问他关于一些测试方面怎么区分浏览器 Tab 独立线程,监测 CPU,等什么的(好像是说这些吧,中间没太跟上)。然后他不断解说和演示他的 testling 可以拿来怎么用。

之后 @fool2fish 就问可以在 testling 里用什么测试框架,@substack 又把自己的 tape 搬出来耍了。@fool2fish 再问能否集成 Mocha 之类的框架时,@substack 说可以的。但是他不喜欢用那些框架,一堆的全局变量,evil,不是 Node 可以直接运行的程序。还有 Jasmine 什么的更烂。估计喜欢这两个的,听到这都晕了。

然后转到问是否支持 AMDCommonJS 的主题上。@fool2fish 就给他瞄了一眼 SeaJS define 的用法,可能本想把它推出国门。没想到他说他知道 SeaJS,但这不是 CommonJS,是 fake 的写法。@fool2fish 脸都绿了,都想拉 @玉伯也叫射雕 来抵抗一下了,没等反应过来。@substack 又搬出了他的 browserify 来说明怎么把 Node 的代码和浏览器分享(这个观点我一直是比较赞同的,所以之前也基于 webmake 搞了个 webassemble。因为我觉的生产环境基本都是打包好再用的,哪有什么异步再去拿文件,异步也是拿另一个大 bundle。require 在 Node 的写法,如果在浏览器能通用确实挺好的。回头细想是不是偏后端程序员没看到前端看到的另一些东西,我再想想)。旁边的另一个鬼佬(抱歉不认识是哪位神),看到我们被打击的样子,几乎笑的不行了,都和 @substack 说你别再打击他们了,可是神才不鸟你,继续打击。

后面,他们都走了,我犯贱又去问 @substack 怎么看那些前端的 MVC 或者 MVVM 的框架,比如 AngularJS。他说他还没看懂到底它最终要解决什么问题,一堆的东西,什么 DI,Databinding 等。我说 Databinding 很好啊,可以免得我们写一堆代码拿值赋值等,declarative 语法也不错啊。他说他只是写纯粹的 JS,那些拿值赋值的可以什么把原生操作抽象和模块化,举例说把复杂的 Form 抽象成模块,只在里头处理赋值拿值之类的。我说那不是 JS 和 HTML 混一起了吗?他好像说只要模块化的好就没有问题了。晕。(这里不敢苟同,可能我还没到那种境界)

最后,又再一次嘴贱的问他那个 tape 能不能集成到 Grunt。没想到他说他也没看明白 Grunt 有什么用,我就知道我又挖坑埋自己了。他啪啪啪敲键盘和让我看他怎么用 NPM 的 test 命令,自定义命令和直接结合 Script 来做到一系列的集成操作的。

@substack 真是 geek 到不行啊。他追求纯粹,简洁,和模块化可以说到极致的境地,不喜欢那些大而全的框架,真的是和我最近看的 “Art of Unit Programming” 那本书说到 “Only do one thing and do it really well”,然后通过组合把一些小工具结合成更强大的工具的思想非常吻合。

后面 H神 来了之后,被打击对象转到他头上了。是的,神喷神了,哈哈。以下可能和原话有偏差,因为大神间的对话,我有时实在很难跟上。

H神 在做的是 Vert.x。他一开始说它们直接支持在 npm 跑还是改了加了什么新功能来着。(一开始我在纠结那个 Vertx 发音是什么东西,迷失了一下)。@substack 就说你们那么改的原因是什么?带来什么好处?没好处改来干什么?(另一个神被打击的样子很有趣 :D )。后来说 Vert.x 特性是 Polyglot,说到支持 Java,Python 等,@substack 意思好像是说为什么要那么做?那些垃圾语言支持来干嘛?(Python 差点被拖累了,他后来改口说 Python 不烂)我永远都不要写 JAVA。H神 也脸绿了,我也帮口说在商业大项目里,因为系统和团队的多和杂,Polyglot 和 JAVA 都是需要的,虽然我现在也不喜欢 JAVA。其实无论我们怎么说,神的观点都不会变,他就说我不会遇到这样的情况,哈哈。H神 后来问 @substack Vert.x 怎么才能被他们 buyin (接受),@substack 就不断 blablabla 说什么你们的 api 要保持和 npm 一致,要在 npm 上容易安装,可以通过 -g 参数那样装了后,命令运行等,不然你看现在没人鸟你们,然后各种建议给他。

两大神后来开始缅怀小时候几岁的时候玩什么技术之类的,我的智商和听力就彻底跟不上了。后来 H神 说他用 SQL 去考他妈妈,他妈妈竟然只需要问它那个语句是干什么的,然后她妈妈竟然可以从汇编,指令和寄存器的角度指出它哪里有问题了。靠,开挂了吧。H神 还想请 @substack 去他们上海公司给员工感受一下什么叫做 live for code,而不是 code for live 的精神。说费用他包,问有没有兴趣。@substack 好像说会在中国待 3 星期,没什么问题,之后可能还要到深圳来骑车什么的。深圳的同学们有关系的话,就看能不能请到他去玩了。后面我们扯着扯着就讲到为什么国内那么难找到这样的人,什么独生政策,教育,压力的都来了。中间我还讥讽 H神 也还不是 code for live。他说不是,他是因为写 code 是让他可以赚最多钱的工作。其实他还可以搞建筑什么的,还说他的床上功夫也不错,笑死我。 我们就这样一直聊到 10 点散场了才走了。

整个晚上和 @substack 及其他大神的一些直接对话真比在会场听一天感悟还多。所以意见是大家以后听会议,一定要准备问题,尽量和各种大神聊天。只是听讲座和拍几张PPT或大神照片就没什么用了。

Group

Contents