0%

札记

git 分支规范

  • 主分支 - master:稳定的分支;
  • 开发分支 - develop:主要开发都在这个分支;
  • 功能分支 - feature-xxx : 独立的功能开发,开发好后合并到 develop 分支;
  • 补丁分支 - hotfix-xxx:建立 hotfix 分支针对某个 bug 进行开发,然后合并到 develop 分支;

VSCODE 插件

插件名: Prettier

  • 自动格式化 html/js 代码

插件名: Auto rename tag

  • 自动重命 html 标签

插件名: CSS peek

  • 提示 CSS 代码,跳转到 CSS 代码块

页面生成过程(浏览器渲染过程)

  • HTML 代码转化为 DOM
  • CSS 代码转化成 CSSOM
  • 结合 DOM 和 CSSOM,生成一棵渲染树
  • 生成布局(layout),即将所有渲染树的所有节点进行平面合成
  • 将布局绘制(paint)在屏幕上

在浏览器地址栏键入 URL,按下回车之后会经历以下流程

  • 解析 url 到 dns 服务器
  • dns 服务器返回 ip 地址到浏览器
  • 跟随协议将 ip 发送到网络中
  • 经过局域网到达服务器
  • 进入服务器的 MVC 架构 Controller
  • 经过逻辑处理,请求分发,调用 Model 层
  • Model 和数据进行交互,读取数据库,将最终结果通过 view 层返回到网络回到浏览器
  • 浏览器根据请求回来的 html 和关联的 css, js 进行渲染
  • 在渲染的过程中,浏览器根据 html 生成 dom 树,根据 css 生成 css 树
  • 将 dom 树和 css 树进行整合,最终知道 dom 节点的样式,在页面上进行样式渲染
  • 浏览器去执行 js 脚本
  • 最终展现页面

浏览器缓存

  • 当浏览器再次访问一个已经访问过的资源时,它会这样做
    • 看看是否命中强缓存,如果命中,就直接使用缓存了。
    • 如果没有命中强缓存,就发请求到服务器检查是否命中协商缓存。
    • 如果命中协商缓存,服务器会返回 304 告诉浏览器使用本地缓存。
    • 否则,请求网络返回最新的资源。

前后端分离的原理及意义?

  • 前后端解耦,分工明确,提高工作效率
  • 前后台代码互不干扰(例如 JSP 页面中嵌入后台代码)
  • 局部性能提升,通过 Ajax 进行按需加载
  • 降低维护成本
  • 减少服务端压力

如何进行页面优化?

  • 减少 HTTP 请求(合并 CSS/JS,小于 10K 的图片转 base64 码)
  • 对用户的一些操作进行防抖
  • 避免不必要的重绘和重排
  • 优化 CSS 选择器?
  • CSS/JS minify,减少文件体积
  • 开启 gzip 压缩
  • 将 CSS 放到顶部,JavaScript 放到底部(原因: JavaScript 会阻塞页面)
  • 压缩图片以及使用 CSS Sprite
  • 使用 CDN 加速,适当进行文件缓存
  • 合理控制 cookie 大小(每次请求都会包含 cookie)
  • 合理安排请求顺序

性能优化关键点

  • 首屏
  • 用户交互时也会出现性能瓶颈: 大量 dom 更新(react 性能优势在这,vdom 可以减少不必要的 dom 更新),频繁的页面重排,动画写的不好会影响性能

其他优化

  • 后端进行适当的缓存数据以减少 HTTP 响应时间

Docker 整理

GitLab 整理

Jenkins 整理

Docker/GitLab 实现 DevOps

DevOps 实施

小程序框架

  • 小程序开发建议
    • 追求性能,非跨多端小程序,使用原生开发
    • 需要跨多端小程序,使用 uni-app 等框架开发
  • 原生坑少,跨多端坑多
  1. MINA 微信官方提供的小程序框架
  2. 性能出色。Tina.js 基于 mina 开发,引入了包管理,有状态管理,路由增强,可以自定义插件
  3. mpvue 美团开源的小程序框架,基于 vue.js 开发,实现了组件化,利于维护
  4. wepy 支持 es2015+的特性,通过预编译,让开发者能更灵活的配置开发
  5. taro 京东开源的小程序框架,多端统一框架,支持一键生成多个平台小程序
  6. uni-app dcloud 公司开发的,基于 vue.js 的多平台框架,支持 app,h5,小程序的一键生成
  7. chameleon 滴滴开源的多端框架,基于 react 开发的,也是可以生成多个平台小程序和 h5 应用
  8. WMPF 微信开发的小程序框架,可以实现小程序脱离微信环境运行