阅读更多

4顶
1踩

编程语言

转载新闻 Node.js在Qzone的演进

2015-05-11 09:32 by 副主编 mengyidan1988 评论(3) 有5452人浏览
本文由youkun编写:原文地址

2011~清除迷雾

入职年负责的第一件事是用node.js来实现长连接。因为涉及server开发,所以直接进入双导师模式,一个前端导师加一个后端导师。

server的开发部署摸清了在腾讯做后端开发的大部分流程和工具,为之后的node.js开发清除了迷雾。

2012~一切皆模块

2012只做了一件事,那就是模块化,浏览器里的代码被抽像为一个个module。除了参与sea.js设计细节的撕逼,团队也诞生了基于目录的合并编译工具JSC。JSC一直用到现在,最好用的一个功能是实时把前端模板编译为sea.js模块,为后来的直出复用模板做了积累。

2012年10年1日 node.js直出服务器第一个版本诞生,命名py_nodejs_proxy。py并不是大家理解的炮友的意思,而是朋友网的缩写, proxy指可编程的代理。这个名字一直延续到现在。

2013~错过最好的发展时机

这一年经历了空间触屏改版,是Node.js发展的风口。但是,由于各种原因最后采用了CPP+V8的解决方案,Node.js的定位被锁死在模板上。这并不是我希望的结果,于是又新起了一个相册直出的域名,继续默默更新py_nodejs_proxy,等待下一个风口。

那一年空间触屏上亿PV,相册直出域名千万级PV,装机量不到20+。

2014~无为的一年

打酱油的一年Orz

2015~破局

如果非要用一句话总结这半年来的主要工作:不停的把其它域名cname到相册直出域名。

随着移动端的崛起,新起的项目面临如何同时支持多平台的问题。从后台的角度来看这个问题,相同的接口维护两种协议,已经成为一种隐形的成本。支持移动端是必须的,那如何优雅的进行H5开发呢?就是现在,前端看到机会点,我们重新思考py_nodejs_proxy的定位,不仅仅是用来直出页面,而是将py_nodejs_proxy定义为http接入层,所有天赋点都加到proxy的技能树上。

然后就有了webapp,这意味着Node.js可以直接调用后台为手机准备的所有接口。然后也有了域名收归能力,为更快的尝试spdy/http2.0等项目提供了可能。新活动和项目后端专心搞接口,接入层前端直接搞定,随着webapp的大面积使用,Node.js一下热了起来。

大面积的业务应用间接推动了py_nodejs_proxy在基础能力上的不断完善。立体监控、实时日志、染色和window对象的出现、安全、httpdns、更强的路由和代理能力。同时py_nodejs_proxy开始把业务逻辑向外分离,集成大量公司级公共组件(L5、DC、门神、CMEM等),定位开始变得清晰,从空间Node.js解决方案上升为公司级通用解决方案。因为具有一定的技术壁垒,接着内部站点nodejs.oa.com诞生,文档开始出现。

这一年相册直出域名过亿PV,手Q离线包域名过40亿PV。py_nodejs_proxy装机量破百,共385个迭代,2015半年就贡献了255个~

团队的状态异常活跃,任何靠谱的想法都可以快速落地执行,有意思的工具或内部站点开始不断涌现。随着py_nodejs_proxy的完善,其发现问题和定位问题的能力已经远远超过tnginx,业务内部开始出现tnginx退Node.js进的趋势。微云全站也在进行着php退Node.js进的演进。

空间前端开发者的日常聊天话题,已经从“浏览器中遇到的奇葩问题”扩展到了“http接入层中遇到的奇葩问题”,团队的日常行为和面对反馈的第一反应也发生了巨大变化。比如,以前面对用户反馈第一时间是联系用户抓包分析,现在直接查流水对log。回过头看,如今的空间前端和当年的相比,已经不在一个档次上。

技术的领先,在被普及后都不再有壁垒,我们需要不断的扩展新的领域保持领先,任何可以用JS实现的都终将被JS实现,下一个也许大概可能就是react~
来自: Qzone-youkun
4
1
评论 共 3 条 请登录后发表评论
3 楼 kuchaguangjie 2015-05-15 11:49
纯装逼贴..
2 楼 天朗java 2015-05-12 09:45
感觉挺不错 求更详细的分享 架构  py_nodejs_proxy的作用
1 楼 mangguo 2015-05-11 17:50
js越来越火了,这跟nodejs的发展有很大的关系。现在nodejs开发的网站有很多: 汇智网 
花瓣网  BAT 很多的项目也应该到了。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 转发 微博 Qzone 微信 Angular、Vue、React 和前端的未来

    最近社区针对框架的争论,从发文互怼再到粉丝站队再到大漠穷秋准备离职,令人唏嘘不已。...其实我想基于我个人的经验聊下前端的演进和未来,希望可以贡献微薄的力量,消除一些我个人认为的前端社区不太好的风气。 ...

  • 前端web 技术盘点

    多样化的调试和开发工具  浏览器中的调试工具已经趋于成熟。Chrome、 Safari、 Firefox都有很完善并且功能类似的调试工具,就连IE 11提供的调试工具也很不错,功能...Phontomjs 加载网页后,提供一系列的 Javascript

  • 全面总结国内BATH等大厂开源的安卓有关的库(持续更新中...)

    安卓开发一直在用大公司的开源库,下面来整理一下与安卓开发有关的库。 一、阿里巴巴 (一)UI有关 1. 多页面切换场景统一解决方案 UltraViewPager UltraViewPager 是阿里开源的一个封装多种特性的 ViewPager ,...

  • 微服务实战(三):深入微服务架构的进程间通信 - DockOne.io

    编译器可以生成多种语言的代码,包括C++、Java、Python、PHP、Ruby, Erlang和Node.js。 Thrift接口包括一个或者多个服务。服务定义类似于一个JAVA接口,是一组方法。Thrift方法可以返回响应,也可以被定义为单向的。...

  • 前端开发月刊

    可以从这关注实时动态,也可以fork之后push:https://github.com/jsfront/month 可以从这查看以往:... 1. Javascript 2. 移动Javascript开发 3. Html5 4. CSS 5. Angular 6. React...

  • 2016年1月-前端开发月刊

    可以从这关注实时动态,也可以fork之后push:https://github.com/jsfront/month 可以从这查看以往:... 1. Javascript 2. 移动Javascript开发 3. Html5 4. CSS 5. Angular 6. React, Webpack 7. ...

  • 前端学习借鉴目录

    可以从这关注实时动态,也可以fork之后push:https://github.com/jsfront/month 可以从这查看以往:... 1. Javascript 2. 移动Javascript开发 3. Html5 4. CSS 5. Angular 6. React, Webpack 7. ...

  • 年度回顾:2013年前端技术盘点

    转这篇文章的目的是想提醒自己原来在年初时自己想到的CSS隔离已经有新技术在实现了(shadow Dom),只不过我当初的解决方案是CSS命名空间(声明了命名空间的话就不受外部CSS 影响,这简直和shadow Dom异曲同工【可见...

  • 1月份前端资源分享

    更多资源请Star:https://github.com/maidishike... ... 1月份前端资源分享 1. Javascript 视频-D2前端技术论坛——2015融合 不可错过的javascript迷你库 测试框架 Mocha 实例教程 为你详细解读...

  • Vue:Webpack、router、elementUI、嵌套等学习

    什么是vue-cli vue-cli官方提供的一个脚手架,用于快速生成一个vue的项目模板 预先定义好的目录结构及...Node.js:http://nodejs.cn/download/  安装就是无脑的下一步就好,安装在自己的环境目录下 Git:https://git

  • go技术文章梳理(2017)

    1.在 Kubernetes上运行 Spark https://jimmysong.io/spark-on-k8s/running-on-kubernetes.html 2.Go和机器学习 https://www.dotconferences.com/2017/11/francesc-campoy-flores-machine-learning-and-go 3.Go通过...

  • [原创]国内大公司开源的安卓有关的库(持续更新中 )

    安卓开发一直在用大公司的开源库,下面来整理一下与安卓开发有关的库。 一、阿里巴巴 (一)UI有关 1. 多页面切换场景统一解决方案UltraViewPager UltraViewPager 是阿里开源的一个封装多种特性的 ViewPager ,...

  • 爬虫中requests高级用法(带上cookie做数据请求)

    缺少 JavaScript 对象","componentWillEnter","componentWillLeave","componentWillAppear","getInlineStyleAt","getCharacterList"],"whitelistUrls&...

  • Facebook、微信团队、Twitter、微软开源软件列表一览

    Facebook开源软件列表 ...Facebook开源项目负责人James Pearce曾在OSCON解释过Facebook究竟为何要使用、支持和发布开源项目。具体如下: 共享Facebook的代码(通常是软件“栈”,偶尔也包括

  • QCon北京2012讲义下载

    将Node.js用于数据密集型实时应用(DIRT) 利用云技术实现Netflix快速规模化增长 敏捷软件开发怪诞行为学 如何开发靠谱的应用? 扩展社交计算 从创意到盈利:产品成功背后的奥秘 ...

  • 信息技术领域会议(技术领域和非技术领域)

    我们一起开发过的Node.js 田永强/朴灵:数据平台产品部资深前端开发工程师 - 淘宝网 KindEditor设计思路 罗龙浩:前端架构师 - 土豆网 编辑器设计KISSY 何一鸣/承玉:资深前端开发工程师 - 淘宝网 编辑器设计UEditor...

  • 【java毕业设计】智慧社区教育服务门户.zip

    有java环境就可以运行起来 ,zip里包含源码+论文+PPT, 系统设计与功能: 文档详细描述了系统的后台管理功能,包括系统管理模块、新闻资讯管理模块、公告管理模块、社区影院管理模块、会员上传下载管理模块以及留言管理模块。 系统管理模块:允许管理员重新设置密码,记录登录日志,确保系统安全。 新闻资讯管理模块:实现新闻资讯的添加、删除、修改,确保主页新闻部分始终显示最新的文章。 公告管理模块:类似于新闻资讯管理,但专注于主页公告的后台管理。 社区影院管理模块:管理所有视频的添加、删除、修改,包括影片名、导演、主演、片长等信息。 会员上传下载管理模块:审核与删除会员上传的文件。 留言管理模块:回复与删除所有留言,确保系统内的留言得到及时处理。 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上

  • 基于selenium的携程机票爬虫资料齐全+详细文档+高分项目+源码.zip

    【资源说明】 基于selenium的携程机票爬虫资料齐全+详细文档+高分项目+源码.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

  • 【java毕业设计】智慧社区宠物管理系统(源代码+论文+PPT模板).zip

    zip里包含源码+论文+PPT,有java环境就可以运行起来 ,功能说明: 文档开篇阐述了随着计算机技术、通信技术和网络技术的快速发展,智慧社区门户网站的建设成为了可能,并被视为21世纪信息产业的主要发展方向之一 强调了网络信息管理技术、数字化处理技术和数字式信息资源建设在国际竞争中的重要性。 指出了智慧社区门户网站系统的编程语言为Java,数据库为MYSQL,并实现了新闻资讯、社区共享、在线影院等功能。 系统设计与功能: 文档详细描述了系统的后台管理功能,包括系统管理模块、新闻资讯管理模块、公告管理模块、社区影院管理模块、会员上传下载管理模块以及留言管理模块。 系统管理模块:允许管理员重新设置密码,记录登录日志,确保系统安全。 新闻资讯管理模块:实现新闻资讯的添加、删除、修改,确保主页新闻部分始终显示最新的文章。 公告管理模块:类似于新闻资讯管理,但专注于主页公告的后台管理。 社区影院管理模块:管理所有视频的添加、删除、修改,包括影片名、导演、主演、片长等信息。 会员上传下载管理模块:审核与删除会员上传的文件。 留言管理模块:回复与删除所有留言,确保系统内的留言得到及时处理。

  • 免费下载:Civil War (Stuart Moore)_xVBgd.zip

    免费下载:Civil War (Stuart Moore)_xVBgd.zip

Global site tag (gtag.js) - Google Analytics