前端性能核对表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. Tomcat启动失败的几种解决办法

    1.重复映射 用Eclipse开发,新建了的servlet会有一个url-pattern声明: 这样就不需要在web.xml中添加映射,如果在web.xml中添加了这样一段: <servlet& ...

  2. MYSQL—— 基础入门,增、删、改、查(基础篇)

    首先呢,先解释一下基本的概念,心里最起码知道就ok啦!其余更多的了解,得另查看喽! (1)什么是sql? sql:指结构化查询语言,有能力访问数据库,是一种ANSI(美国国家标准话组织)的标准计算机语 ...

  3. C# 指定父層級目錄

    lstrcatW(pszpath, "\\..\\..\\"); DWORD dwlen = GetFullPathNameW(pszpath, 0u, null, null); ...

  4. Django文件上传(经典上传方式)

    经典文件上传方式 创建URL from django.contrib import admin from django.urls import path from django.conf.urls i ...

  5. Java语言编程 - Java历史简介

    1.1 Sun公司 介绍Java的历史之前,先介绍一下Java语言的缔造公司,Sun公司,Sun公司的全称是:Stanford University Network.值得一提的是,Sun公司从1982 ...

  6. Polaristech 刘洋:基于 OpenResty/Kong 构建边缘计算平台

    2019 年 3 月 23 日,OpenResty 社区联合又拍云,举办 OpenResty × Open Talk 全国巡回沙龙·北京站,Polaristech 技术专家刘洋在活动上做了<基于 ...

  7. 使用vue开发项目需要注意的问题和可能踩到的坑

    最近,在公司给一些刚刚使用vue进行开发的同学做了一次分享, 其中包括一些vue开发中需要注意的点, 以及一些可能会踩到的坑.具体内容如下: 一.生命钩子使用需要注意的地方 1.beforeCreat ...

  8. ES 13 - Elasticsearch的元字段 (_index、_type、_source、_routing等)

    目录 1 标识元字段 1.1 _index - 文档所属的索引 1.2 _uid - 包含_type和_id的复合字段 1.3 _type - 文档的类型 1.4 _id - 文档的id 2 文档来源 ...

  9. .NETCore 下支持分表分库、读写分离的通用 Repository

    首先声明这篇文章不是标题党,我说的这个类库是 FreeSql.Repository,它作为扩展库现实了通用仓储层功能,接口规范参考 abp vnext 定义,实现了基础的仓储层(CURD). 安装 d ...

  10. 学习 JavaScript (六)核心概念:函数

    基本知识 函数对于我们来说,不算陌生的东西.中学就已经有了函数的概念,比如: y = f(x) 输入一个数 x,能够得到与之对应的一个数 y.也就是说,f(x) 的有一个返回值,这是函数在数学上的定义 ...