开发中的一些经验总结

API 相关

  1. git flow 工作流

    • master 主版本分支, 此分支上是最新代码
    • develop 开发版本分支, 但是不在这个分支上做开发, 此分支上是开发中的最新代码
    • feature 开发版本分支, 通常开发新功能时基于 develop 新建一个 feature 分支, 开发完成之后合并到 develop 上, 并进行删除
    • release 预发布分支, 基于 develop 分支创建, 用来进行测试的分支, 测试完成之后合并到 master
    • hotfix 分支, 紧急bug修复分支, 从 master 创建。
  2. RestFull

    • 请求方法
      • Post 新增
      • Put 更新
      • Get 查询
      • Delete 删除
    • 嵌套Api
      • 请求某篇文章的评论列表 GET /post/1/comment
      • 请求某篇文章的某个评论 GET /post/1/comment/1
      • 隐藏某篇文章的某个评论 PUT /post/1/comment/1/hidden
  3. 动态查询参数

    • 查询条件过滤 filter /post?filter[name]=test&filter[created_at_between]=2018-01-01,2018-12-31
    • 排序 sort /post?sort=-id,name
    • 包含关系 include /post?include=user,commentCount,commentExists
    • 选择字段 fields /post?include=user&fields[post]=id,name,info&fields[user]=id,name
  4. 异常处理机制

    • 框架服务异常, status 503 506 , code 为具体的错误类型. 比如 mysql 超时, redis 连不上, 短信验证服务欠费, oss 账号密码错误之类的问题, api 接口维护等等
    • 请求处理异常, status 400 403 等等, code 为资源id , 比如 路由不存在, 控制器方法不存在, 资源不存在, 没有权限等等
    • 业务逻辑异常, 错误码 500, code 为具体的错误类型, 比如 传入参数校验不通过
  5. 日志处理

    • sql 查询日志, 仅开发环境, 记录在 sql.log
    • 错误日志, 记录在 error.log
    • 用户操作日志, 记录在数据库
    • api 请求日志, 每个请求有一个 request_id, 服务端在 header 加入 RequestId 字段。 然后请求信息记录在文件,文件名为 RequestId.
  6. 代码结构

    • 路由 控制器 模型 事件等等放在 laravel 默认的位置
    • 业务逻辑放在 Repositories 文件夹下, 每一个功能模块创建一个单独的文件夹, 文件夹下又细分为 Contracts Services 两个文件夹分别存放接口和实现。
    • 工具类放在 Util 文件夹中
    • 每个 interface 的所有方法都要编写测试
  7. 如何保证 token 的安全性

    • token 中携带 signature, signature 能保证 token 不被篡改,如何保证的呢? signature 是只有服务端才能生成和解密的一组加密字符串,篡改后的 token 和 signature 会对不上。
    • token 有效期,不要设置永久的 token。
    • token 黑名单,用户的 token 一旦刷新, 之前的 token 需要加入黑名单无法再使用。

Web开发相关

  1. 拆分组件的时机。

    • 复用类组件,页面某一部分可能在很多页面可以复用。
    • 模块类组件,页面的某一部分和其他部分没有联系或者联系很少, 可以抽象到几个变量中。
  2. 同一类型的 store 可以因为模块的不同, 创建多个命名空间下的 store。

  3. 组件可以从一个简单的组件开始封装高阶的组件。

  4. 只在模块类组件使用 store。

面试的时候技术总监不在 (面试题有点意思,感觉一般人可能不太会做,我答完之后专程把技术总监喊了回来) ,然后在会议室写的 。哈哈哈哈 这操作也没谁了。:smile:
到家收到了offer,技术氛围和薪资待遇都很满意。哈哈哈哈 开心, 祝贺我吧 各位网络有缘人。

本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 3个月前 自动加精
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 27

post json 才是王道

5个月前 评论
sanders 5个月前
徵羽宫 (楼主) 5个月前
徵羽宫 (楼主) 5个月前

这个规则 和我上家公司中台部门的要求好像 :joy:

5个月前 评论
徵羽宫 (楼主) 5个月前

恭喜恭喜

5个月前 评论
徵羽宫 (楼主) 5个月前

恭喜

5个月前 评论
徵羽宫 (楼主) 5个月前

太棒了

5个月前 评论
徵羽宫 (楼主) 5个月前

666

5个月前 评论
徵羽宫 (楼主) 5个月前

恭喜恭喜,啥面试题啊,还记得不

5个月前 评论
徵羽宫 (楼主) 5个月前

第7条,怎么理解?

5个月前 评论
徵羽宫 (楼主) 5个月前
sorshion (作者) 4个月前
徵羽宫 (楼主) 3个月前
徵羽宫 (楼主) 3个月前
徵羽宫 (楼主) 3个月前

动态查询参数,怎么理解

3个月前 评论
徵羽宫 (楼主) 3个月前

restful 太麻烦,post 一把撸,参数全是json

3个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!