AC2016 大会讲师专访—— 亿万页面直出架构专家何骏

898 阅读4分钟

原文连接

大会官网

何骏 yussica

腾讯AlloyTeam高级前端开发工程师

先后参与过WebQQ、Q+、QQ互联、手Q吃喝玩乐等业务的开发,业余时间,还和小伙伴一起开发过iPresst在线创作平台,“墙来了”体感游戏。近期主要专注于node server—“玄武”的开发和优化,在通往全栈的道路上不断摸索和积累ing。

是什么契机,让你有机会在前端开发工作中,接触Node服务端开发呢?

首先,一个很重要的原因就是Nodejs从诞生到现在发展的很快,特别是在更新到4.x版本后支持了很多ES6的特性(6.x版本支持90%+ES6的特性),这极大的提升了开发体验,还解决了之前在服务端开发中遇到的异步编程、回调地狱等问题。 其次,大家应该都有感觉,仅仅专注于前端,有很多事情是无法独立完成的,比如页面直出(服务端渲染)、接口联调、自由项目的后台开发等。 于是,我们开始尝试用Nodejs自己写server,因为语言都是js,所以学习成本很低,上手很快。但这还远远不够,一个可以真正跑在生产环境中的server还需要很多核心模块,如进程管理(负载均衡)、路由配置化、RPC远程调用、异常处理、日志系统(还原现场,定位现网问题)、监控告警、cache等,于是就诞生了“玄武”。

在大型后端架构设计中,你认为有哪些重要的关注点?

  1. 健壮、稳定 健壮性和稳定性应该是后端最需要关注的点,极限值处理、错误捕获、异常恢复、日志系统、监控告警都是必不可少的。试想一个页面UI丑一点,动画FPS低一些,用户都还能接受,但如果点击按钮看到的一直是“系统繁忙,请稍后重试”,就会很绝望了,严重的话甚至会导致用户未保存的数据丢失。
  2. 安全 对于黑客来说,他们最想拿到的其实是用户的数据,这就意味着系统里的任何一个小的漏洞都可能成为突破口,造成难以想象的严重后果。即使事发后及时修复,你的产品也会失去用户的信赖。所以安全必须引起大家足够的重视。
  3. 灵活、易扩展 一个灵活、可扩展的系统应该做到功能模块的可插拔,模块间的低耦合,API接口的定义与实现分离等。随着用户访问量的不断增加,系统还需具备弹性扩容的能力,利用分布式服务框架做好状态同步、负载均衡、集群管理、配置统一化等。
  4. 开发友好 这一点是所有框架都会考虑到的。将更多的功能做成配置化的,往往可以降低学习成本,提升开发效率。 以上都是我个人的理解,可能还有些地方并没有从前端的思维中转换过来。

现在全栈工程师的概念很火,是不是学习了Nodejs就可以做到全栈了?

当然不会这么简单了。 “什么都略懂一点,生活更多彩一些”,我认为这是做到全栈的第一步,只有这样你才能对每个项目都有一个整体的把握,可以与其他小伙伴进行高效的沟通。之后你需要在某个领域不断实践,积累经验,做精做细,成为这方面的专家。其实,在前面的过程中,除了在某个领域足够深的知识积累,更重要的是你的思维方式、学习能力、分析解决问题的能力都得到了极大的提升,这时,再开始向其他领域拓展,相信很快就可以补齐之前的短板了。总的来说,想要成为全栈工程师,需要先广,再深,然后再广,这是我的看法。 学习Nodejs只是让我们具备了server开发的能力,后续要走的路还很漫长,还有很多问题值得我们去思考,比如server端代码的组织和模块化,如何进一步提升性能等,当然解决这些问题最好的方式就是实践。

更多精彩内容,敬请期待何骏在AC2016上的分享——《高性能 Node 服务端框架——玄武揭秘》