Q & A

问题一:在全栈的语言选择上,除了 node.js,是否还考虑过其他语言?

有的,未来 swift 和 lua 是有可能的。swift 的语法和性能上有很大优势,lua 在 openresty 的推动下也有机会,不过没有 swift 大

像 WebAssembly 之类的就不太看好了

问题二:请教桑老师:刚才你说的并发开发流程中静态api指的是api文档?

如果是的话谁负责编写?你们目前已经是一个人分模块从前端写到后端了吗?

目前没做到文档即静态 api,所以目前是直接提供 json 和部分 json-server

负责是后端开发的 leader 在写,他的进度会比正常开发要早一周左右

目前不是一个人写所有的前后端,团队成立不久,天津 Node.js 会的不多,所以还是前后端分离。但是通过 moa-frontend 可以让前端了解 express 等后端知识,适当的时候会给予机会,前端转后端

问题三:第一贵司在开发协作中提到了静态api,请问是不是有什么比较好的工具可以推荐?

nodejs 里 json-server 比较好

我其实很想围绕静态 api,写各种请求的生成器,只要 api 出来,文档和各平台的 http 请求代码就生成出来,同时可以对正式api进行压测,可惜目前还没精力写

问题四:做 hybrid app 在移动端会遇到性能问题吧。。有没有什么优化经验可以分享?

  • 足够轻量级,少选大框架,做好前端该有的优化
  • 注意 touch 和 click 的区别,比如 fastclick 或 zeptojs 的 tap 手势
  • Chrome profile(css3动画)
  • 使用 weinre 真机测试

我的h5实践

问题五:如果都全栈了,当前你们团队是如何分工的?

我们团队还是倾向于分工专业化,各个服务粒度非常小,便于轮岗、还有就是可以为以后像 google 那样代码开放做准备

但是有很多情况下,是需要有机动的突击队的(尤其是创业时期),这样可以随便组合,另外就是全栈为 remote 提供了更多便利性。

问题六:h5 在手机上用 iscroll 坑比较多啊 尤其三星打开硬件加速的时候 render 页面,桑老师怎么看?

可以尝试一下淘宝系的 h5 虚拟化,鬼道曾经在 as 大会上讲过的,我们目前还没能力做这么深层次的优化

问题七:Node.js 做业务金额计算的金额性能和精度够吗

1)你问的不是 Node.js,而是 Node.js 要操作的数据库。
2)耗性能的计算可以在架构上平衡的

  • 如果可以延时,mq 就可以了
  • 如果是非延时情况,可以采用其他语言编写对应服务,没必要非要一定要N ode.js
    3)我们目前的场景,还没有在计算遇到瓶颈

问题八:关于 API 返回格式那里,对于 status 为什么不打平了把 code 和 message 放出来?这么设定有什么好处么?

语义上更加清晰

整个返回的 json 就只有 data 和 status,如果 status.code!=0,我取 msg 就好了,如果等于0,处理 data 数据

这种设计不见得多好,不过结构清晰,对于开发者来说,是比较容易接受的