《web全栈工程师的自我修养》

1. 全栈框架:MEAN
  • MongoDB
  • Express
  • Angular.js
  • Node.js
2. Done is better than perfect (Facebook)
3. 全栈的觉悟
  • 一专多长
  • 解决问题,而不是醉心技术
  • 跨界解决问题,承担更多的责任
4. 如何成为全栈
先精后广,一专多长(给自己制造亮点) 围绕商业目标(技术最终服务于商业利益) 永远从商业目标的角度来决定学习哪些东西,而不是纯粹为了锻炼技术而去学习 技术是工具,不要让工具限制了你的思维
5 web性能优化
  • 压缩源码和图片 ;使用CDN;延长静态资源缓存的时间;CSS放在头部,JS放在尾部; 择合适的图片格式; 合并静态资源 ;开启服务器端的Gzip压缩
6 工程师成长的三个核心:
技术 成长 声望:答应做的事情,全部完成
7 重视作品集的整理
8 关于开源:If you do it right ,Open source is great advertising for you and your company
9 静态页 Github Pages && Jekll/Dexy

10 全栈工程师的Http
  • user-agent:表明当前用户在使用什么样的代理访问站点,浏览器是最常见的一种用户代理
  • gzip:开源免费的数据压缩算法,是绝大多数客户端和服务器都支持的算法,在压缩文本文件如js css html等效果很好
  • 浏览器通常会限制对一个域名发起的并发连接数的上限,解决方法:设置子域名,然后同时指向一个ip
  • cookie:某些网站为了辨识用户身份而存储在用户浏览器的数据,cookie的作用域是整个域名(???)。优化建议:将所有的静态资源放在单独的域名下,防止在请求静态资源的时候带上cookie。
  • (关于cookie的作用域:http://www.cnblogs.com/chenqianpeng/archive/2012/04/24/2468642.html)一句话总结:domain本身及其domain下的所有子域名
  • http1.1分块传输编码,允许服务器为动态生成的内容维持HTTP持久链接

11 高性能网站的关键:缓存

  • 缓存的功能:存储频繁访问的数据,内存缓存减少磁盘I/O,保存耗时的操作,以便下次使用
11.1服务器端的缓存

  • memcached:高性能分布式内存对象缓存系统,采用按时间来过期的设计,相当于应用程序和database的中间层,支持服务器集群,可以有效利用多台服务器的内存,提高命中率
  • 再加一层文件缓存:查询的次序为:内存缓存=》文件缓存=》数据库,但是文件缓存的读取速度不如内存,优点是可扩展
  • 页面静态化,减少请求,提高访问速度:两种方法:1)Wordpress静态化插件 2)直接抛弃数据库,借助第三方插件来支持拥护生成内容,如Disqus

11.2 浏览器缓存

  • 浏览器缓存的作用:1)用户:减少请求,更快的加载页面,节省流量   2)网站:减少带宽压力和费用

  • 服务器通过对每个资源的HTTP响应头来发出缓存指令,两种主要的缓存指令:                                                                              1)Expires :Thu,15 Api 2020 20:0:00 GMT ; 设置过期时间,如果在过期时间之内内容发生修改,则可以修改query-string来通知客户端或许新的内容
  • 2)Last-Modified上次修改时间   返回码304代表资源未修改的意思
  • 应该合理使用两者,使用使304和200保持一个合理的比例
11.3 HTTP 1.1 Cache-Control

  • 值为:max-age:*****,单位是秒,客户端接受到文件之后开始倒计时
11.4 推荐的缓存策略

  • 对于动态生成的页面,设置HTTPS头信息:cache-control:no-cache
  • 对于静态页面,使用HTTPS头信息:last-modified
  • 对于其它所有的文件类型,都设置expires头信息,并且在内容修改的时候修改query-string


你可能感兴趣的:(读书笔记)