用心前后端开发模式探讨

1 基于后端MVC的传统架构

由于公司的项目之前是MVC架构,前端项目写在view层,辅以后端的模版嵌套

优点:

  • 项目由后端统筹,包括css,img,js等静态文件,布局模版,版本控制,便于后端理解
  • 有利于SE0
  • 适合PC端
  • 适合小型项目快速开发

缺点:

  • 不能做到前端模块化,需借助 sea.js 此类模块化js
  • 压缩,合并前端资源,需借助 gulp 等node构建工具
  • 冗余代码较多

2 前端工程化

以vue-cli搭建SPA的项目为例

优点:

作为目前流行的开发模式,有着下面的优点:

  • 模块化开发(js,css)
  • 组件化:传统项目更多是封装成插件使用
  • 更好的压缩合并前端资源
  • 方便使用es6等前沿技术开发
  • 适合手机应用开发
  • 更好的处理复杂应用

缺点:

  • 需掌握的知识更多,对开发有技术要求
  • 单页SPA开发,不利于SEO搜索

3 前后端对接的一些注意点:

3.1 请求状态码:

请求状态码需要统一,每个状态码需要明确代表什么意思,方便前端判断。

比如:错误码的定义同HTTP请求状态码一样,对接者能通过系统定义的错误码,快速了解接口返回错误信息,方便排查错误原因。

比如:在需要用户权限的系统中,如果判断该用户未登录或者登录状态丢失,可返回一个指定的状态码,方便前端请求拦截。

3.2 使用工具测试,推荐PostMan

3.3 token验证机制

用户验证机制,推荐用token验证。
关于token验证的过程,请看链接

3.4 遇到涉及安全的字段传递,需考虑签名匹配

4 个人观点:

  • PC端项目重SE0,小型项目可采用第一种模式
  • 后台项目,手机端项目可采用第二种模式

无论选择哪种模式,前期开发的时候,规范一定要先制定好,最好先写个共同开发准则


参考链接