1、前后端分离

前端与后端的分离,能使前端的开发脱离后端的开发模式,拥有更大的自由度,以此便可做前端工程化、组件化、单页面应用等。

2、尽量避免后端模板渲染

web 应用的渲染方式分为服务器端渲染和客户端渲染,当下比较推荐的方式是客户端渲染,数据使用全 ajax 的方式进行交互。

除非在一些不得不使用服务器端渲染的情况下(如门户、电商等),应当尽量使用客户端渲染,因为客户端渲染更能使前后端分离(项目分离、代码解耦、协作分离、职责分离等),也能更好的做本地接口模拟开发,提升开发效率。

即使用服务器端渲染,在技术支持的条件下,可以使用 node 中间层(由前端人员开发),代替传统的后端模板渲染,这样可以使后端与前端完全解耦,后端与前端只有数据上的往来。

3、尽量避免大量的线上调试

做好本地接口模拟开发(包括后端模板渲染),避免大量的线上调试,因为线上调试很不方便,也很费事,并且每次更新代码,都需要重新构建,然后同步到服务器。

所以做好本地接口模拟开发,只要程序在本地运行是没问题的,一般线上就不会有太大的问题,这样就能大幅降低调试工作量,提升开发效率。

4、本地接口模拟开发

本地接口模拟就是在本地模拟一个与服务器差不多的环境,能够提供数据所需的接口,进行错误模拟处理等等。

本地接口模拟开发的意义就在于能够在本地完成几乎所有的开发与调试,尽量减少线上的调试,提高开发效率。

一些常用库:

browser-sync:能让浏览器实时、快速响应文件更改(html、js、css、sass、less等)并自动刷新页面,并且可以同时在PC、平板、手机等设备下进行调试。

webpack-dev-middleware:A development middleware for webpack。

webpack-hot-middleware:热更新本地开发浏览器服务。

另外,本地接口模拟开发需要后端开发人员有规范的接口文档。

5、规范的接口文档

前端与后端协作提升开发效率的一个很重要的方法就是减少沟通:能够形成纸质的文档就不要口头沟通、能够把接口文档写清楚也不要口头沟通(参数、数据结构、字段含义等),特别是线上协作的时候,面对面交流是很困难的。

一个良好的接口文档应当有以下的几点要求与信息:

格式简洁清晰:推荐用 API Blueprint

分组:当接口很多的时候,分组就很必要了

接口名、接口描述、接口地址

http 方法、参数、headers、是否序列化

http 状态码、响应数据

接口文档可以用一些文档服务(如 leanote)来管理文档,也可以用 git 来管理;书写方式可以用 markdown,也可以 YAML、 JSON 等。

推荐使用 markdown 方式写文档,用 git 管理文档。

6、去缓存

前端需要做好去客户端缓存的功能,保证用户始终都是使用的最新资源,不会因为因为缓存的问题而出现 bug。

传统的去缓存是在静态资源 url 上加上版本号或者时间戳,不过因为构建工具的出现以及一些浏览器已经不支持这种方式了的缘故,这种方式已经是过去时了。

现在去缓存是将文件 hash 化命名,只要文件变动,文件名就会不一样,以此才能彻底的去缓存。如果使用 webpack 进行打包,会自动将所有文件进行 hash 化命名。自己是从事了五年的前端工程师,自己整理了一份最全面前端学习资料,从最基础的HTML+CSS+JS到HTML5的项目实战的学习资料都有整理,送给每一位前端小伙伴,有想学习web前端的,或是行,或是大学生,还有工作中想提升自己能力的,正在学习的小伙伴,需要可以私聊我哟,这是我的前端开发qun,【六零三】【九八五】【九九三】,直接里下载,对于学习web前端有任何问题(学习方法,学习效率,如何就业)都可以问我

7、做好错误处理

前端与后端都需要各自做好错误处理,以便发生错误能够有友好的提示,也能在用户反馈时快速准确定位错误来源和原因。

一般前端的错误分为:

脚本运行错误:js脚本错误,找到堆栈信息,然后解决

接口错误:服务器报错、数据返回不对、没有响应数据、超时等

而接口错误分为:

状态码错误(状态码非2XX):服务器报错、超时等

数据错误:没有响应数据、数据格式不对、数据内容不对

8、运行时捕捉js脚本错误

当用户在用线上的程序时,怎么知道有没有出 bug;如果出 bug 了,报的是什么错;如果是 js 报错,怎么知道是那一行运行出了错?

所以,在程序运行时捕捉 js 脚本错误,并上报到服务器,是非常有必要的。

这里就要用到 window.onerror 了:

线上的 js 脚本都是压缩过的,需要用 sourcemap 文件与 source-map 查看原始的报错堆栈信息。

9、移动端远程调试、vConsole、TBS Studio

因为移动端的开发无法像 pc 端开发一样使用 Chrome 的开发者调试工具,所以调试移动端需要一些额外的技巧。

移动端应用一般都运行在微信浏览器中、 webview 中、手机浏览器中。

远程调试(Remote Debugging)

远程调试就是通过 USB 连接、端口转发、搭建代理等方式,将一个设备的 web 页面映射到另一个设备上,比如将手机的 webview 映射到 pc 上,达到调试的目的。

移动端 web 应用调试难题从一开始就有,不过后来浏览器厂商基本都推出自己的远程调试工具来解决这个问题,包括 OperaMobile、 iOSSafari、 ChromeforAndroid、UC 浏览器等,另外还有一些第三方开发的远程调试工具,比如 weinre等。

以 Android 为例,可以将 webview、 ChromeforAndroid 中的页面映射到 pc 端的 ChromeDevTools,然后就可以在 pc 端调试移动端的页面了。

vConsole

一个轻量、可拓展、针对手机网页的前端开发者调试面板( chrome 开发者工具的便利实现)。

TBS Studio

因为微信浏览器是定制的浏览器,一般的远程调试方式都不可用,需要配合特定的工具,如微信开发者工具。

TBS Studio是另一个可以像 Chrome 一样调试远程微信浏览器页面的强大工具。

10、前后端并行开发

正常情况下,前端的开发在完成 UI 或者组件开发之后,就需要等后端给出接口文档才能继续进行,如果能做到前后端并行开发,也能提升开发效率。

前后端并行开发,就是说前端的开发不需要等后端给出接口文档就可以进行开发,等后端给出接口之后,再对接好后就基本上可以上线了。

在本地化接口模拟的实现下,就可以做到前后端并行开发,只是在代码层面需要对 ajax 进行封装。

11、友好的沟通

不管工具多么厉害,很多时候都免不了要当面沟通,友好、心平气和的沟通也是很重要的哩!

新手须知,前端该如何与后端合作?相关推荐

  1. Vue:前端体系与前后端分离

    Vue:前端体系与前后端分离 概述 介绍 ​ Vue(读音/viu/,类似于 view)是一套用于构建用户界面的渐进式框架,发布干 2014 年 2 月. 与其它大型框架不同的是,Vue 被设计为可以 ...

  2. Vue:前端体系、前后端分离

    1.概述 Vue (读音/vju/, 类似于view)是一套用于构建用户界面的渐进式框架,发布于2014年2月.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue的核心库只关注视图层 ...

  3. 前端程序员和后端程序员有什么不同?我来告诉你薪资待遇差多少

    作为一个程序员,我发现后端程序员和前端程序员有很大的不同.后端程序员主要关注的是处理看不见的部分,如服务器.数据库.API等等.而前端程序员主要关注的是展现的部分,如网页的设计.交互和用户体验等等. ...

  4. 前端工作累还是Java工作累_前端开发累还是后端开发累?

    前端开发累还是后端开发累? 总的来说,在开发的过程当中,前端的工作量大于后端的工作量. [复杂度问题] 关于程序复杂度的问题,如果你的程序的规模,跟你的程序的复杂度成正比的话,说明你的程序架构出问题了 ...

  5. 大前端–Vue前端体系、前后端分离

    大前端–Vue前端体系.前后端分离 前言 Soc:关注点分离原则 HTML+CSS+JS(视图):给用户看,刷新后台给的数据 网络通信:axios 页面跳转:vue-router 状态管理:vuex ...

  6. 了解一下:前端和后端哪个工资高?做前端好还是做后端好?

    前端和后端哪个工资高?事实上,两个都是属于技术研发岗位,都是高薪有前途的职业,不存在说哪个工资更高些,都基本在一万到五万之间,工资的差别主要体现在个人技术上.要问做前端好还是做后端好?其实无论做前端还 ...

  7. 前端和后端哪个工资高?做前端好还是做后端好?

    前端和后端哪个工资高?事实上,两个都是属于技术研发岗位,都是高薪有前途的职业,不存在说哪个工资更高些,都基本在一万到五万之间,工资的差别主要体现在个人技术上.要问做前端好还是做后端好?其实无论做前端还 ...

  8. 前端和后端开发人员比例_前端开发人员vs后端开发人员–实践中的定义和含义

    前端和后端开发人员比例 Websites and applications are complex! Buttons and images are just the tip of the iceber ...

  9. python后端开发框架加密_Flask框架实现的前端RSA加密与后端Python解密功能详解

    本文实例讲述了Flask框架实现的前端RSA加密与后端Python解密功能.分享给大家供大家参考,具体如下: 前言 在使用 Flask 开发用户登录API的时候,我之前都是明文传输 username ...

最新文章

  1. webstorm设置TSlint格式化TypeScript代码快捷键Alt+X
  2. Ubuntu 18.04 固件的烧录方法
  3. 计算机无法搜索程序,电脑搜索功能不能用的解决方法
  4. 没有思路?一个数据案例,拯救你的产品优化切入点
  5. 启明云端分享|一组图带你快速了解乐鑫ESP MCU系列产品
  6. bzoj4152 The Captain (dijkstra)
  7. sap-erp实施心得_实施动态代理-比较
  8. 带有谓词的Java中的功能样式-第1部分
  9. java毕业设计大学生体检管理系统Mybatis+系统+数据库+调试部署
  10. Servlet过滤器
  11. [原创]淘宝天猫抢购软件“tbBuyer“
  12. Python练习题(三)
  13. FCM和Threshold
  14. KGB知识图谱开拓行业应用新展图
  15. 极光推送 简书android,极光推送第一篇:配置
  16. Python3 将本地时间转换成指定时区时间
  17. 平均年薪23万!为什么却很少见程序员炫富?
  18. mysql frm的意思_mysqlfrm
  19. android 树莓派 图片,Android Things:树莓派3上手就是这么简单
  20. 中文标注工具brat的使用

热门文章

  1. 华为杯数学建模2020什么时候出结果_关于组织参加“华为杯”第十七届中国研究生数学建模竞赛通知...
  2. 2021年衡阳仁爱中学高考成绩查询,南岳衡阳蒸湘仁爱中学简介
  3. 图解+笔记-4.2.1 字符串获取操作、字符串合并和重复操作
  4. php+redis实现消息队列
  5. Pipeline As Code With Jenkins2.0
  6. 【知识整理】这可能是最好的RxJava 2.x 入门教程(四)
  7. 『Material Design 入门学习笔记』前言
  8. 第五节 系统调用的三个层次(下) ——20135203齐岳
  9. Objective-C基础之基本数据类型
  10. A.2.3-猜数字游戏