git flow 工作流
master 主版本分支, 此分支上是最新代码
develop 开发版本分支, 但是不在这个分支上做开发, 此分支上是开发中的最新代码
feature 开发版本分支, 通常开发新功能时基于 develop 新建一个 feature 分支, 开发完成之后合并到 develop 上, 并进行删除
release 预发布分支, 基于 develop 分支创建, 用来进行测试的分支, 测试完成之后合并到 master
hotfix 分支, 紧急bug修复分支, 从 master 创建。
RestFull
请求某篇文章的评论列表 GET /post/1/comment
请求某篇文章的某个评论 GET /post/1/comment/1
隐藏某篇文章的某个评论 PUT /post/1/comment/1/hidden
Post 新增
Put 更新
Get 查询
Delete 删除
请求方法
嵌套Api
动态查询参数
查询条件过滤 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
异常处理机制
框架服务异常, status 503 506 , code 为具体的错误类型. 比如 mysql 超时, redis 连不上, 短信验证服务欠费, oss 账号密码错误之类的问题, api 接口维护等等
请求处理异常, status 400 403 等等, code 为资源id , 比如 路由不存在, 控制器方法不存在, 资源不存在, 没有权限等等
业务逻辑异常, 错误码 500, code 为具体的错误类型, 比如 传入参数校验不通过
日志处理
sql 查询日志, 仅开发环境, 记录在 sql.log
错误日志, 记录在 error.log
用户操作日志, 记录在数据库
api 请求日志, 每个请求有一个 request_id, 服务端在 header 加入 RequestId 字段。 然后请求信息记录在文件,文件名为 RequestId.
代码结构
路由 控制器 模型 事件等等放在 laravel 默认的位置
业务逻辑放在 Repositories 文件夹下, 每一个功能模块创建一个单独的文件夹, 文件夹下又细分为 Contracts Services 两个文件夹分别存放接口和实现。
工具类放在 Util 文件夹中
每个 interface 的所有方法都要编写测试
如何保证 token 的安全性
token 中携带 signature, signature 能保证 token 不被篡改,如何保证的呢? signature 是只有服务端才能生成和解密的一组加密字符串,篡改后的 token 和 signature 会对不上。
token 有效期,不要设置永久的 token。
token 黑名单,用户的 token 一旦刷新, 之前的 token 需要加入黑名单无法再使用。
拆分组件的时机。
复用类组件,页面某一部分可能在很多页面可以复用。
模块类组件,页面的某一部分和其他部分没有联系或者联系很少, 可以抽象到几个变量中。
同一类型的 store 可以因为模块的不同, 创建多个命名空间下的 store。
组件可以从一个简单的组件开始封装高阶的组件。
只在模块类组件使用 store。
面试的时候技术总监不在 (面试题有点意思,感觉一般人可能不太会做,我答完之后专程把技术总监喊了回来) ,然后在会议室写的 。哈哈哈哈 这操作也没谁了。
到家收到了offer,技术氛围和薪资待遇都很满意。哈哈哈哈 开心, 祝贺我吧 各位网络有缘人。
如果觉得博客文章对您有帮助,异或土豪有钱任性,可以通过以下扫码向我捐助。也可以动动手指,帮我分享和传播。您的肯定,是我不懈努力的动力!感谢各位亲~