今日头条iOS客户端启动速度优化

应用启动时间,直接影响用户对一款应用的判断和使用体验。头条主app本身就包含非常多并且复杂度高的业务模块(如新闻、视频等),也接入了很多第三方的插件,这势必会拖慢应用的启动时间,本着精益求精的态度和对用户体验的追求,我们希望在业务扩张的同时最大程度的优化启动时间。 技术调研 先说结论,t(Ap...

展开...

从前端到全端:JavaScript逆袭之路

JavaScript如何做到上天入地无所不能?JavaScript真的能一统江湖吗? 背景 近年来,前端技术日新月异,前端已经不仅仅是网页,更多的开始由狭义向广义发展。 先后涌现出了具备后端能力的node,具备移动开发能力的react native,具备游戏渲染能力的cocos2d-js,以及i...

展开...

iPhone安装包的优化

这是一次安装包大小优化的实践。 随着业务的增加,工程中引入越来越多的业务代码和第三方库, 整个安装包越来越大。以今日头条5.7.5为例 最近几个版本的ipa大小如下: 5.7 -> 72.2M (+0.8M) 正常业务增量 5.6 -> 71.4M (+14M) 主要原因:接入某SDK后安装包的...

展开...

日志辅助工具timecat

今天我要分享一个用于对日志文件进行二分查找的工具:timecat 0 用途 在线演示页面:http://aap.reetsee.com/page/timecat 不想看后面的直接看这一节就行。 timecat可以对线上的所有日志进行二分查找,常见需求是到了线上机器后想将某个时间段的日志直接读出来,不...

展开...

头条PC站基于RIOT的组件化开发实践

Riotjs是一种小而美的js框架 背景 1、头条PC站业务前端重构 * 旧站架构强依赖后端模板,维护和扩展非常不灵活 * 资源文件存在依赖,无法做到最简压缩合并 * 代码组织混乱,虽有基本的模块化开发方式,但整体维护和扩展非常麻烦 2、为什么选择Riot? * Angularjs学习成本...

展开...

H5播放器源码解读 (video.js)

写在前面 现在视频业务越来越流行了,播放器也比较多,作为前端工程师如何打造一个属于自己的播放器呢?最快最有效的方式是基于开源播放器深度定制,至于选择哪个开源播放器仁者见仁智者见智,可以参考开源播放器列表选择适合自己业务的播放器。 我们的播放器选择了排名第一的video.js播放器,截至目前该播放器在...

展开...

线上问题深度追查:信号处理函数中的死锁

这是一则关于死锁的故事,谨以此文进行记录分享。 背景 svc是deamon-tools工具集中用户守护进程的服务,头条目前在线上使用它来保证服务的存活(目前正在切换到更可靠的systemd)。当进程挂掉时,svc能自动重启挂掉的进程,当被监控的进程有代码更新时,我们可以通过svc发送命令让进程...

展开...