10月30, 2016

台湾 JSDC 之旅

这个月参加了台湾的 JSDC 大会,顺便玩了下台湾,有一些认知在此记录下。

  • 台湾由于当时城市规划不好,现在房屋比较杂乱,并且很多地方也比较旧。
  • 环境很好,没有雾霾。上下班高峰期也不怎么拥堵。
  • 是允许燃油助力车的,需要有驾照,燃油助力车和机动车跑在同样的车道。必须带头盔,哪怕是坐在后面的人。
  • 民众素质很高,经常会说谢谢。
  • 道路很干净,连烟头也很少看到,垃圾分类做的很好。
  • 捷运(地铁)有博爱(老弱病残)坐,即使车厢内有很多年轻人站着,也不敢坐博爱座。
  • 因为九二共识政治因素,大陆去台湾的游客少了 60%-70%(和宾馆前台聊天得知),他们对蔡英文的意见也很大。
  • 对数字 4 很避讳,楼层没有 4 层,房间号码也不会有 4。但对数字 250 并不避讳,如:一碗面 250 块。
  • 说话就是像台剧里那样,很嗲,哪怕男生也是这样。
  • 软体(软件)行业发展并不怎么好,行业薪水也没大陆高。
  • 南港软件园(类似:西二旗软件园)的房价是 33 坪(一坪大概 3.3 平方米)是 2500W(人名币为 530 多万)
  • 哪怕个人开的饭馆也会给自己放假,景点也会放假,并且休息时间点不定。
  • 整体节奏比较慢,压力小。
  • 电视台里说大陆的时候也比较客气,没有看到像之前说大陆吃不起茶叶蛋的情况。

这次玩的地方有:故宫博物院、中正纪念堂、西门町、101 大厦、野柳地质公园、花莲等,整体来说去台湾旅游还是不错的,值得第二次去。

阅读全文 »

09月02, 2016

【译】通过开发 Babel 插件理解抽象语法树(AST)

原文:http://www.zcfy.cc/article/347

每天数以千计的 JavaScript 开发者使用的语言版本现在浏览器都还没有完全实现,许多他们使用的语言特性仅仅还只是建议,并没有保证说一定会纳入规范。因为有 Babel 项目使现在就能使用这些特性变成了可能。

Babel 是我们知道的将 ES6 代码转译为 ES5 代码且能安全稳定运行最好的工具,同时它允许开发者开发插件,能够在编译时期转换 JavaScript 的结构。

现在,我们来看看如何开发一个给 JavaScript 添加默认不可变数据的 Babel 插件,代码可以从 GitHub repo 下载。

阅读全文 »

06月06, 2016

开发和维护 ThinkJS 是一种什么样的体验?

受邀于在知乎上回答维护一个大型开源项目是怎样的体验,博客里做个备份。

先介绍下项目:ThinkJS,一个借助 Babel 编译,可以直接用 ES2015+ 特性开发 Node.js 项目的框架,为企业级 Node.js 项目开发提供巨大的便利。目前 GitHub 上 star 数为 1620,issue + pr 有 300 多,有 1700+ 单元测试用例和非常完善的中英文文档,已经有不少公司在使用。

阅读全文 »

04月19, 2016

如何把 Callback 接口包装成 Promise 接口

前端开发尤其 Node.js 开发中,经常要调用一些异步接口,如:文件操作、网络数据读取。而这些接口默认情况下往往是通过 Callback 方式提供的,即:最后一个参数传入一个回调函数,当出现异常时,将错误信息作为第一个参数传给回调函数,如果正常,第一个参数为 null,后面的参数为对应其他的值。

阅读全文 »

04月11, 2016

ThinkJS 项目里如何使用 Mongoose

ThinkJS 里内置的 ORM 可以很方便的操作关系型数据库和文档型数据库,支持:Mysql,SQLite,PostgreSQL,Mongo 等。如果内置的 ORM 不能满足项目的需求,那么也可以集成第三方的 ORM,如:Mongoose,Waterline 等。本文就来聊聊如何在 ThinkJS 里集成 Mongoose。

阅读全文 »

03月30, 2016

使用 node-inspector 断点调试 ThinkJS ES2015+ 项目

ThinkJS 是第一个全面支持使用 ES2015+ 特性开发的 Node.js 框架,使用 ES2015 里的 */yield 或者 ES2016 草案里的 async/await 可以很好的解决异步嵌套的问题,借助 Babel 编译,可以稳定运行在 Node.js 各个主流版本中。同时 ThinkJS 提供了自动编译和自动更新的机制,免去了文件修改后重启 Node.js 服务的麻烦。

使用 ES2015+ 特性可以更好的开发 Node.js 项目,但由于项目需要编译,给断点调试带来了麻烦。

ThinkJS 从 2.2.0 版本开始支持断点调试 ES2015+ 的代码,本文就聊聊如何使用 node-inspector 来断点调试 ThinkJS 里的 ES2015+ 项目。如果项目里的 ThinkJS 版本小于 2.2.0,请先升级 ThinkJS,否则看不到效果。

阅读全文 »

03月30, 2016

在 VS Code 下断点调试 ThinkJS ES2015+ 项目

ThinkJS 是第一个全面支持使用 ES2015+ 特性开发的 Node.js 框架,使用 ES2015 里的 */yield 或者 ES2016 草案里的 async/await 可以很好的解决异步嵌套的问题,借助 Babel 编译,可以稳定运行在 Node.js 各个主流版本中。同时 ThinkJS 提供了自动编译和自动更新的机制,免去了文件修改后重启 Node.js 服务的麻烦。

使用 ES2015+ 特性可以更好的开发 Node.js 项目,但由于项目需要编译,给断点调试带来了麻烦。

ThinkJS 从 2.2.0 版本开始支持断点调试 ES2015+ 的代码,本文就聊聊如何在 VS Code 里断点调试 ThinkJS ES2015+ 项目。如果项目里的 ThinkJS 版本小于 2.2.0,请先升级 ThinkJS,否则看不到效果。

阅读全文 »

03月30, 2016

在 WebStorm 下断点调试 ThinkJS ES2015+ 项目

ThinkJS 是第一个全面支持使用 ES2015+ 特性开发的 Node.js 框架,使用 ES2015 里的 */yield 或者 ES2016 草案里的 async/await 可以很好的解决异步嵌套的问题,借助 Babel 编译,可以稳定运行在 Node.js 各个主流版本中。同时 ThinkJS 提供了自动编译和自动更新的机制,免去了文件修改后重启 Node.js 服务的麻烦。

使用 ES2015+ 特性可以更好的开发 Node.js 项目,但由于项目需要编译,给断点调试带来了麻烦。

ThinkJS 从 2.2.0 版本开始支持断点调试 ES2015+ 的代码,本文就聊聊如何在 WebStorm 里断点调试 ThinkJS ES2015+ 项目。如果项目里的 ThinkJS 版本小于 2.2.0,请先升级 ThinkJS,否则看不到效果。

阅读全文 »

01月14, 2016

ThinkJS 2.1:支持 TypeScript,性能提升 90%

Thinkjs 2.0 是第一个全面支持使用 ES6/7 特性开发的 Node.js 框架,于 2015.10.30 正式发布。使用 ES6 里的 */yield 或者 ES7 里的 async/await 可以很好的解决异步嵌套的问题,借助 Babel 编译,可以稳定运行在 Node.js 各个主流版本中。同时 ThinkJS 提供了自动编译和自动更新的机制,免去了文件修改后重启 Node.js 服务的麻烦。

阅读全文 »