网站首页 > 开源技术 正文
利益相关,百万年薪的程序猿还是很多的。如何提高你的收入,技术才是王道!
接下来我开始说两句。
单从文件没有合并,个别代码没有压缩混淆就说这个团队技术不行是有偏失博的,虽然说肯定会有不对的地方。单有很多是有历史原因的。目前没有改进也不是一件天理不容的事情。我想说几点的是:
1.咱们是以用户首屏可交互时刻为考核规范,对这个指标的优化也简直到了变态的程度.而文件合不合并不论关于用户体会仍是考核规范来说多没有多大的影响,所以之前一直是疏忽了 2.文件数过多别的一个原因是预加载,在用户闲暇的时分就提早加载接下来可能要用到的模块,这样用户在运用的时分就能快速打开了。(这个预加载逻辑也会分高峰和闲时决议执不履行,别的关于高峰时段,还有许多高雅降级的计划,比方图片换小一个标准,大图形式变小图形式,部分模型改动加载战略等。额,如同扯远了。 其实在这里我更想说的是:QQ空间的前端技能必定能算上国内抢先水平!!
咱们做个许多东西,但都没有对外说,以至于咱们觉得咱们啥也没干,然后经过一些欠好的当地,就说咱们技能不可。实在令人寒心。 结合在空间这三年,我再说咱们做的一些工作吧: 从12年7月入职腾讯实习,其时还在做朋友网,那时分现已在用seajs做模块化,还内部做了一个构建东西,其时的构建东西现已具有这些功用:
1.主动把html模板编译成Function写到文件作为一个js模块来运用
2.把多个js模块合并到一个文件,还主动按文件途径给模块补id,完成跨项目共用文件(这个功用spm一直没有供给,可能他们也没这个需求吧)
3.监听文件改变实时编译
这个东西到现在也是用的很爽,最近webpack,fis3这些构建东西开端盛行,而咱们在12年就自己开发了一个啊。别的也提一下,在13年的时分咱们都在说前端模板,比方artTemplate这些,都在说自己编译功能好,其实早在12年咱们就把模板在构建东西里预编译了,要比么?
构建东西说完再说一下一些新技能的运用吧.Webp图片紧缩技能到现在不知道有多少人了解,简单说一下,就是经过Webp格局紧缩图片,在同等质量的情况下体积比jgp图片还小约30%.体积能削减这么多不管从节省存储空间,减低流量,削减用户加载时刻.
这么好的技能必定希望能赶快用起来.然后其时只要chrome浏览器支撑,IE彻底不支撑,怎样办呢? IE的用户比例仍是大头啊,其时google给的处理计划是把图片经过Flash来显现,一个页面只要一张图片还有,像空间动态一屏都是图片假如要一起加载上十个flash必定卡死,后来怎样处理呢,咱们仍是经过flash去加载webp图片,不过在flash里边再把图片转成jpg格局,然后再转成base64传到页面,不过IE8 base64编码不能超过32k,怎样破?直接在flash把图片分割,传回页面后再用多个Img标签把图片合起来.至此,现已完成webp对IE8+的支撑.
Webp说完再要点说一下Nodejs这边应用吧: 12年的时分假如有传闻哪个公司把Node用在出产环境应该是一件不可思议的事吧。其时朋友网就用了两台服务器搭Node Server做了在线聊天和页面直出的功用。要知道,那时Node还没有cluster模块,怎样利用好服务器多核环境呢?其时的做法是一个父进程监听80,和cup数-1个子进程处理恳求,父进程做使命分发完成负载均衡.(为什么不用Nginx做分发?由于其时发现子进程俄然平白无故就挂掉了,所以又引入了心跳包机制,子进程没10s发消息给父进程我还活在,假如过了10秒父进程没收到心跳包就kill掉子进程重启). 那时分还有一个比较严重的问题是内存走漏,不过其时没有很好的内存剖析东西,这个问题没有得到很好的处理,不过这也没有影响咱们在出产环境中运用,有内存走漏,每天守时重启一下就好.(内存走漏问题后边heapdump,memwatch东西出来之后得以彻底处理,并且把许多内存运用不合理的当地优化下来,比方长文本String改用buffer等) 有了Node做Sever之后,咱们做了更多工作,就不细说了,点一下:
1.恳求后台Sever要完成负载均衡,公司有一个L5的组件处理这个问题但没有Node版的,怎样办?写Node扩展
2.在虚拟机上内核数识别不对,最后定位到是Node的bug,读的变量不对,改源码处理
3.用Node在转发恳求,完成全站域名一致,快速处理跨域问题.完成HTTP 2.0 / SPDY
4.模块过错在线实时监控
5.Node直接调用后台二进制接口,跟手机接口一致,大大削减后台工作量.
6.Node功能优化,经过v8功能剖析东西发现require中用到正则,功能堪忧,经过优化后整体功能提升了5%,开端认为require有缓存就随便写,发现这个坑后,今后ruquire仍是写在最外层吧 说了这么多也不是说空间的技能最牛,但国内抢先必定是说得上的.当然,由于产品形状的原因也不能一切技能都用上,比方现在一些盛行的mvvm框架,关于空间这种频频交互的场景不太适宜,不过facebook开源的react native之后,咱们也开端去用React来开发Hybrid App
希望大家可以在这个里学到了许多东西. 欢迎大家多多转载.也十分引荐刚结业,小白也可以来学习。对技能有追求的同学互相了解。.互相学习
猜你喜欢
- 2024-10-12 实例分析Linux内存泄漏检测方法(linux内存泄漏排查)
- 2024-07-06 node内存泄漏以及定位(node内存使用过大)
- 2024-07-06 一周一练 丨 嵌入式第四弹(嵌入式 教程)
- 2024-07-06 「技术干货」一文搞懂Linux内核调试方法(一)
- 2024-07-06 5个日志数据:让你轻松分析系统性能
- 2024-07-06 一个 npm 包的坎坷“续命”之生(npm包管理器是基于什么平台使用的)
- 2024-07-06 使用memwatch检测内存越界(内存检测工具memtest5.0)
- 2024-07-06 西瓜视频稳定性治理体系建设二:Raphael 原理及实践
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)