持续继承与持续交付

它是一种软件开发实战,尽量保持每次集成都可以正常工作。

  • 版本管理工具
  • 持续集成服务器
  • 测试环境
主要流程
  • 维护同一个代码源
  • 自动化构建
  • 支持自动化测试
  • 频繁提交代码
  • 每次提交都应该执行构建
  • 让构建飞可能的快
  • 团队成员可以轻松访问
  • 支持自动化部署
工具选择与Pipeline设计
  1. 主服务器Master
  2. 从服务器Slave
  3. 代码服务器Agent
持续集成工具
  • 源代码控制系统
  • 依赖管理工具
  • 支持各种类型的测试
  • 可以使用插件来扩展系统
  • 支持流水线
  • 可视化结果 #####设计PopeLine工作流
2017/12/12 posted in  全栈应用开发

缓存初入

浏览器缓存

静态资源缓存,使用浏览器缓存机制将JS,CSS,图片等静态资源文件存储在本地,我们可以通过HTTP头的Cache-Control,Expires,Last-Modified等字段来缓存

Cache-Control

需要指定一个以秒为单位的 Max-age,即缓存的最长时间。如Cache-Control:max-age=3600,表示这个资源将在3600s后过期。我们再次请求时将直接使用本地的缓存,这样减少了网络请求加快了页面的渲染。

Expires

Expires会直接指明缓存的具体过期日期。如果和Cache-control一起出现则表明这个资源会缓存一年。

Last-Modified/Etag=

表示资源在服务器端的最后修改时间,Etag是文件的唯一标识。当配置 Last-Modified时,浏览器会向服务器发出请求。这个请求会包含Etag的信息,以便服务器中的文件版本进行对比。当两个版本号一致的时候,服务器将返回给浏览器端一个304状态码。

应用缓存
  1. 缓存数据库的查询结果
  2. 缓存磁盘文件的数据
  3. 缓存某个耗时的计算操作
  4. 缓存API

如果是服务端渲染,切页面查询结果较复杂,我们可以利用内存缓存查询结果比如memcached
当我们只需要对特别的数据结果进行缓存时,就可以采用这种缓存方式

  1. 缓存服务器

缓存服务器运行在浏览器与原始服务器之间,如Nginx+Gunicorn+Django运行的服务器,可以降低服务器的负载。常见的服务器有varnish Squid

2017/12/12 posted in  全栈应用开发

数据分析

  1. 只别需求
  2. 收集数据
  3. 存储数据
  4. 分析数据
  5. 展示数据
  6. piwik
前端
  • 首屏加载时间:从用户请求新页面到浏览器呈现首屏内容所用的时间
  • 完整的网页加载的时间:从用户请示新网页到浏览器完全呈现网页所用的时间。
  • 终端用户体验监控
  • 应用运行时架构
  • 用户自定义的事务分析
  • 应用组件监控
  • 报告及应用数据分析
2017/12/12 posted in  全栈应用开发