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,保存耗时的操作,以便下次使用
- 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保持一个合理的比例
- 值为:max-age:*****,单位是秒,客户端接受到文件之后开始倒计时
- 对于动态生成的页面,设置HTTPS头信息:cache-control:no-cache
- 对于静态页面,使用HTTPS头信息:last-modified
- 对于其它所有的文件类型,都设置expires头信息,并且在内容修改的时候修改query-string