前端性能核对表Checklist-2018

1. 计划与度量 Get Ready: Planning and Metrics

☐ Establish a performance culture.

☐ Choose the right metrics.

☐ Be 20% faster than your fastest competitor.

☐ Share the checklist with your colleagues.

2. 设置务实的目标 Setting Realistic Goals

☐ 100-millisecond response time, 60 frames per second

☐ SpeedIndex < 1250, Time-To-Interactive < 5s on 3G.

☐ Critical payload chunk = 15Kb, critical file size budget < 170Kb

3.环境定义 Defining the Environment

☐ Choose and set up your build tools.

☐ Progressive enhancement.


☐ Choose a strong performance baseline.


☐ Will you be using AMP or Instant Articles?


☐ Choose your CDN wisely.


4. 构建优化 Build Optimizations

☐ Set your priorities right.


☐ Consider the “cutting-the-mustard” technique.


☐ Parsing JavaScript is expensive, so keep it small.


☐ Use tree-shaking and code-splitting to reduce payloads.


☐ Do you constrain the impact of third-party scripts?


☐ Are HTTP cache headers set properly?


5. 资产优化 Assets Optimizations

☐ Is Brotli or Zopfli text compression in use?

☐ Are images properly optimized?

☐ Are web fonts optimized?

6. 交付优化 Delivery Optimizations

☐ Push critical CSS quickly.

☐ Using babel-preset-env to only transpile ES2015+ features.

☐ Improve rendering performance.

☐ Lazy-load expensive scripts with Intersection Observer.

☐ Have you optimized rendering experience?

☐ Warm up the connection to speed up delivery.

7. HTTP/2

☐ Get ready for HTTP/2.

☐ Properly deploy HTTP/2.

☐ Are you saving data with Save-Data?

☐ Make sure the security on your server is bulletproof.

☐ Do your servers and CDNs support HTTP/2?

☐ Is OCSP stapling enabled?

☐ Have you adopted IPv6 yet?

☐ Is HPACK compression in use?

☐ Are service workers being used for caching and network fallbacks?

8. 测试与监控 Testing and Monitoring

☐ Monitor mixed-content warnings.

☐ Is your development workflow in DevTools optimized?

☐ Have you tested in proxy browsers and legacy browsers?

☐ Is continuous monitoring set up?

9. 快既赢 Quick wins

1. Measure the real world experience and set appropriate goals. A good goal to aim for is First Meaningful Paint < 1 s, a SpeedIndex value < 1250, Time to Interactive < 5s on slow 3G, for repeat visits, TTI < 2s. Optimize for start rendering time and time-to-interactive.

2. Prepare critical CSS for your main templates, and include it in the <head> of the page. (You budget is 14 KB.) For CSS/JS, operate within a critical file size budget of max. 170Kb gzipped (0.8-1Mb decompressed).

3. Defer and lazy-load as many scripts as possible, both your own and third-party scripts — especially social media buttons, video players and expensive JavaScript.

4. Add resource hints to speed up delivery with faster dns-lookup, preconnect, prefetch and prelo

5. Subset web fonts, and load them asynchronously (or just switch to system fonts instead).

6. Optimize images, and consider using WebP for critical pages (such as landing pages).

7. Check that HTTP cache headers and security headers are set properly.

8. Enable Brotli or Zopfli compression on the server. (If that’s not possible, don’t forget to enable Gzip compression.)

9. If HTTP/2 is available, enable HPACK compression, and start monitoring mixed-content warnings. If you’re running over LTS, also enable OCSP stapling.

10.  If possible, cache assets such as fonts, styles, JavaScript and images — actually, as much as possible! — in a service worker cache.

相关LINK:

AMP https://www.ampproject.org/

instant articles https://instantarticles.fb.com/
Brotli https://en.wikipedia.org/wiki/Brotli

OCSP https://www.digicert.com/enabling-ocsp-stapling.htm
如何处理设计与性能开销之间的关系(guide on how to approach designs with a performance budget)
性能开销(performance budgets)

性能监控
PWMetricsCalibreSpeedCurvemPulseBoomerangSitespeed.io
cutting-the-mustard 技术
ahead-of-time compiler(编译器)
Tree-shaking  scope hoisting

Heroku’s primer on HTTP caching headers缓存之最佳实践 HTTP caching primer
Pragmatist's Guide to Service Workers
BrowserStack
性能回归自动报警(automated performance regression alerts)
WebPageTest
k6 SpeedTrackerLighthouse 以及 Calibre

安全

仔细检查那些与安全相关的 HTTP 头部,看是否设置正确
使用一些工具来排除已知漏洞
使用一些网站来检查证书是否失效

------------------------------------------------------------------

今天先到这儿,希望对您在系统架构设计与评估,团队管理, 项目管理, 产品管理,团队建设 有参考作用 , 您可能感兴趣的文章:
国际化环境下系统架构演化
微服务架构设计
视频直播平台的系统架构演化
微服务与Docker介绍
Docker与CI持续集成/CD
互联网电商购物车架构演变案例
互联网业务场景下消息队列架构
互联网高效研发团队管理演进之一
消息系统架构设计演进
互联网电商搜索架构演化之一
企业信息化与软件工程的迷思
企业项目化管理介绍
软件项目成功之要素
人际沟通风格介绍一
精益IT组织与分享式领导
学习型组织与企业
企业创新文化与等级观念
组织目标与个人目标
初创公司人才招聘与管理
人才公司环境与企业文化
企业文化、团队文化与知识共享
高效能的团队建设
项目管理沟通计划
构建高效的研发与自动化运维
某大型电商云平台实践
互联网数据库架构设计思路
IT基础架构规划方案一(网络系统规划)
餐饮行业解决方案之客户分析流程
餐饮行业解决方案之采购战略制定与实施流程
餐饮行业解决方案之业务设计流程
供应链需求调研CheckList
企业应用之性能实时度量系统演变

如有想了解更多软件设计与架构, 系统IT,企业信息化, 团队管理 资讯,请关注我的微信订阅号:

作者:Petter Liu
出处:http://www.cnblogs.com/wintersun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
该文章也同时发布在我的独立博客中-Petter Liu Blog

前端性能核对表Checklist-2018的更多相关文章

  1. CSS3与页面布局学习总结(八)——浏览器兼容与前端性能优化

    一.浏览器兼容 1.1.概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题.不同浏览器其内核亦不尽相同,相同内核的版本不同,相同版本的内核浏览器品牌不一样,各种运 ...

  2. 【前端构建】WebPack实例与前端性能优化

    计划把微信的文章也搬一份上来. 这篇主要介绍一下我在玩Webpack过程中的心得.通过实例介绍WebPack的安装,插件使用及加载策略.感受构建工具给前端优化工作带来的便利. 壹 | Fisrt 曾几 ...

  3. 移动H5前端性能优化指南

    移动H5前端性能优化指南 概述 1. PC优化手段在Mobile侧同样适用2. 在Mobile侧我们提出三秒种渲染完成首屏指标3. 基于第二点,首屏加载3秒完成或使用Loading4. 基于联通3G网 ...

  4. CSS3与页面布局学习笔记(八)——浏览器兼容性问题与前端性能优化方案

    一.浏览器兼容 1.1.概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题.不同浏览器其内核亦不尽相同,相同内核的版本不同,相同版本的内核浏览器品牌不一样,各种运 ...

  5. 如何合理优化WEB前端 高效提升WEB前端性能

    对前端开发工程师来说,前端性能优化的重要性是不言而喻的,最为大家所知的是YSLOW的23条优化规则,在我的理解中,性能优化不纯粹是指用户访问网站的速度,也包括开发的效率,这里我总结下我理解中的WEB前 ...

  6. 前端性能监控方案window.performance 调研(转)

    1. 业界案例 目前前端性能监控系统大致为分两类:以GA为代表的代码监控和以webpagetest为代表的工具监控. 代码监控依托于js代码并部署到需监控的页面,手动计算时间差或者使用浏览器的的API ...

  7. web前端性能优化指南(转)

    web前端性能优化指南 概述 1. PC优化手段在Mobile侧同样适用2. 在Mobile侧我们提出三秒种渲染完成首屏指标3. 基于第二点,首屏加载3秒完成或使用Loading4. 基于联通3G网络 ...

  8. Wen前端性能优化

    Web前端性能优化 一般说来Web前端指网站业务逻辑之前的部分,包括浏览器加载.网站视图模型.图片服务.CDN服务等.主要优化手段有优化浏览器访问.使用反向代理.CDN等. 一.浏览器访问优化 减少h ...

  9. web前端性能14条规则

    14条规则 1.减少Http请求 使用图片地图 使用CSS Sprites 合并JS和CSS文件 这个是由于浏览器对同一个host有并行下载的限制,http请求越多,总体下载速度越慢 2.使用CDN( ...

随机推荐

  1. eclipse部署项目到tomcat

    以管理员身份运行Eclipse 1.移除 2.open 3.改成这样,然后ctrl+s保存 4.重新运行即可.    

  2. 干货!分享一款windows下的磁盘分析神器。

    作为开发人员的你,肯定遇到过这样的情况,120G SSD系统盘居然满载了,到底是被哪些程序占用了,包含哪些大文件,这个时候脑袋里就开始回忆了.....这对平时没有养成规范化记录安装软件好习惯的同学而言 ...

  3. SQL Server 容易忽略的错误

    一.概述 因为每天需要审核程序员发布的SQL语句,所以收集了一些程序员的一些常见问题,还有一些平时收集的其它一些问题,这也是很多人容易忽视的问题,在以后收集到的问题会补充在文章末尾,欢迎关注,由于收集 ...

  4. unison+inotify的Web目录同步方案

    1.在Linux下做WEB目录文件同步 一般有如下几种方式: ----------------------------------------------- 1)       nfs实现web数据共享 ...

  5. ASP.NET Core 项目实战(持续更新~~~)

    一.前言 准备写这个系列文章的设想开始于今年9月,毫无意外,期间又又又又拖了很长时间,文章主要是为了记录自己学习使用 ASP.NET Core Web API 与 Vue 创建一个前后端分离的项目的整 ...

  6. VulDeePecker:基于深度学习的脆弱性检测系统

    最近的两款软件,VUDDY和VulPecker,假阴性率高而假阳性率低,用于检测由代码克隆引发的漏洞.而如果用于非代码克隆引起的漏洞则会出现高误报率. 本文使用深度学习处理程序中的代码片段,不应由专家 ...

  7. Java中堆(heap)和栈(stack)的区别

    简单的说: Java把内存划分成两种:一种是栈内存,一种是堆内存. 在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配. 当在一段代码块定义一个变量时,Java就在栈中为这个变量分 ...

  8. java程序调用CMD命令启动tomcat替换环境变量

    出现问题: 此时不应有 Files\Java\jdk1.8.0_92\bin\java.exe""(本地未出现问题,服务器环境出现) 出现原因: 1:环境变量JAVA_HOME配置 ...

  9. 牛客网《BAT面试算法精品课》学习笔记

    目录 牛客网<BAT面试算法精品课>学习笔记 牛客网<BAT面试算法精品课>笔记一:排序 牛客网<BAT面试算法精品课>笔记二:字符串 牛客网<BAT面试算法 ...

  10. Accesss数据库的DBhelper类(带分页)

    首先配置web.config,使配置文件连接access数据库: <connectionStrings> <add name="DBConnection" con ...