work

工作

记录一下从学生时代过渡到工作,需要的技能和工具。

版本管理:git

开发环境:Linux的命令行使用

接口测试、联调:apipost、postman、swagger、JMeter

定位bug

  • 查日志异常
  • 查线上事故

其他

  • 日志打印与上报:日志库、Prometheus
  • 日志收集与分析:elk stack、Prometheus
  • 容器编排:kubernates
  • 链路追踪:openmetery
  • 错误与异常处理
  • 备份与恢复
  • 接口文档:swagger
  • 接口测试工具:apifox、postman
  • 性能分析工具:pprof

正向代理和反向代理

负载均衡

CDN

Restful

分布式锁原理和使用

同步:阻塞等待返回

异步:告诉你需要执行,只是触发流程,并不等待,常用实现有,

  1. 异步实现:用户调用服务端的接口,接口逻辑只是,记录一个消息到消息队列或其他的存储组件中,然后就返回结果,告诉用户记下了。具体的执行时间调用方并不关心。
  2. 结果查询:你执行完了,得通知我吧,所以常用的方式有
    1. 用户主动轮训,每隔一段时间请求服务端提供的接口(这里调哪个,具体怎么取就双方自行约定了)
    2. 用户注册回调,服务端执行完了后调用用户注册好的回调通知用户。

鉴权

cookie

session

toke

JWT

开发规范

  • 请求和结果、耗时、trace等日志打印放在拦截器中间件层去处理。

  • 测试用例

  • 集成和部署:CI&CD

项目、目录、文件分类管理

  • dao层
  • model层
  • MVC

Web

同源跨域问题

同源是指,域名,协议,端口相同,非同源的客户端脚本在没有明确授权的情况下,不能读写对方资源,在请求数据时,浏览器会在控制台中报一个异常,提示拒绝访问。非同源受到的限制:

  1. cookie不能读取
  2. dom无法获得
  3. ajax请求不能发送

跨域是指跨域名的访问,以下情况都属于跨域:

  1. 域名不同 www.jd.com与 www.taobao.com
  2. 域名相同,端口不同 www.jd.com:8080www.jd.com:8081
  3. 二级域名不同 http://item.jd.comhttp://miaosha.jd.com

跨域问题是浏览器对于ajax请求的一种安全限制:一个页面发起的ajax请求,只能是于当前页同域名的路径,这能有效的阻止跨站攻击。

因此:跨域问题 是针对ajax的一种限制。

  • JSONP跨域:JSON with Padding
  • CORS跨域:全称”跨域资源共享”(Cross-origin resource sharing)

JSONP

JSONP:由于同源策略的限制,XmlHttpRequest只允许请求当前源(域名、协议、端口)的资源。而动态添加一个

博客在允许 JavaScript 运行的环境下浏览效果更佳