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

[[248719]]

1.前后端分离

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

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

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

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

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

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

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

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

4. 本地接口模拟开发

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

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

一些常用库:

  • browser-sync(https://github.com/BrowserSync/browser-sync):能让浏览器实时、快速响应文件更改( html、 js、css、 sass、 less 等)并自动刷新页面,并且可以同时在PC、平板、手机等设备下进行调试。
  • webpack-dev-middleware(https://github.com/webpack/webpack-dev-middleware):A development middleware for webpack。
  • webpack-hot-middleware
  • (https://github.com/webpack-contrib/webpack-hot-middleware):热更新本地开发浏览器服务。

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

5. 规范的接口文档

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

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

  1. 格式简洁清晰:推荐用 API Blueprint(https://apiblueprint.org/)
  2. 分组:当接口很多的时候,分组就很必要了
  3. 接口名、接口描述、接口地址
  4. http 方法、参数、headers、是否序列化
  5. http 状态码、响应数据

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

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

可以参考:

  • 本地化接口模拟、前后端并行开发(https://segmentfault.com/a/1190000015297352)
  • API Blueprint(https://apiblueprint.org/)

6. 去缓存

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

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

现在去缓存是将文件 hash 化命名,只要文件变动,文件名就会不一样,以此才能彻底的去缓存。如果使用 webpack 进行打包,会自动将所有文件进行 hash 化命名。

7. 做好错误处理

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

一般前端的错误分为:

  • 脚本运行错误: js 脚本错误,找到堆栈信息,然后解决
  • 接口错误:服务器报错、数据返回不对、没有响应数据、超时等

而接口错误分为:

  • 状态码错误(状态码非 2XX):服务器报错、超时等
  • 数据错误:没有响应数据、数据格式不对、数据内容不对

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

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

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

这里就要用到 window.onerror 了:

 

  1. window.onerror =(errorMessage,scriptURI, lineNumber,columnNumber, errorObj)=>{  
  2.  const data ={ 
  3.  title:document . getElementsByTagName ( 'title' )[ 0 ]. innerText , 
  4.  errorMessage , 
  5.  scriptURI , 
  6.  lineNumber , 
  7.  columnNumber , 
  8.  detailMessage : ( errorObj &&errorObj . message ) || '' ,  
  9.  stack : (errorObj && errorObj . stack )|| '' , 
  10.  userAgent :window . navigator . userAgent , 
  11.  locationHref : window . location . href , 
  12.  cookie: window . document . cookie , 
  13.   
  14.  }; 
  15.   
  16.  post ( 'url' , data ); 
  17.  // 上报到服务器 
  18.   
  19.  }; 

线上的 js 脚本都是压缩过的,需要用 sourcemap 文件与 source-map(https://github.com/mozilla/source-map) 查看原始的报错堆栈信息。

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

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

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

远程调试(Remote Debugging)

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

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

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

vConsole

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

这个是内嵌的页面当中的便捷调试器,基本上能够满足一般的需要远程调试的页面。

  • github:https://github.com/Tencent/vConsole
  • demo:https://wechatfe.github.io/vconsole/demo.html

 

前端如何高效的与后端协作开发

 

TBS Studio

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

TBS Studio(https://x5.tencent.com/tbs/guide.html) 是另一个可以像 Chrome 一样调试远程微信浏览器页面的强大工具。

10. 前端后并行开发

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

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

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

11. 友好的沟通

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

责任编辑:庞桂玉 来源: 今日头条
相关推荐

2021-05-06 15:08:40

开发前端后端

2023-04-10 15:14:03

2014-05-14 10:16:29

SDNNFV虚拟化

2021-01-04 14:41:28

开发前端工具

2020-11-26 08:38:57

前端 js 库vue

2022-01-21 19:00:44

前端JS框架

2014-11-28 14:41:06

工具

2019-10-10 11:20:49

Java人生第一份工作程序员

2018-06-20 15:10:44

前端Web开发薪资

2020-11-18 22:18:41

前端开发

2019-11-14 09:00:00

前端测试工具框架

2010-12-23 09:40:52

Web开发

2013-08-29 09:37:18

GitHub开源项目

2015-09-23 14:07:12

前端与后端架构实例

2014-02-17 17:47:16

前端后端架构

2018-05-31 21:16:33

DevOps协作工具开发

2020-02-17 15:55:22

Office 365

2020-02-22 15:01:51

后端前端开发

2020-10-08 18:20:54

前端后端架构

2015-09-17 11:04:46

后端
26224内容
全部话题

同话题下的热门内容

npm 创始人再创业,全新前端工具来了!Nginx 部署负载均衡服务全解析20 个 Python 非常实用的自动化脚本崩了啊,一个JWT把我干懵了码住!12 种生产级 Python 代码风格SpringBoot 实战:文件上传之秒传、断点续传、分片上传你必须掌握的 30 个 Python 代码,短小精悍,用处无穷三个Java高手离不开的IntelliJ IDEA编程插件

相关专题 更多

2024年第十九届中国企业年终评选
2024年第十九届中国企业年终评选
如何发挥数据的最大力量?
如何发挥数据的最大力量?
2024-09-11 10:06:01
HarmonyOS创新探索与应用实践· 开发者系列沙龙
HarmonyOS创新探索与应用实践· 开发者系列沙龙
2024-08-07 16:28:10
我收藏的内容
点赞
收藏
分享

51CTO技术栈公众号

业务
速览
在线客服
媒体
51CTO CIOAge HC3i
社区
51CTO博客 鸿蒙开发者社区 AI.x社区
教育
51CTO学堂 精培 企业培训 CTO训练营

相关内容推荐

成品网站制作头像安徽 制作app网站运城网站如何制作米图库网站制作制作网页网站模版支付页面网站制作东营家政网站制作惠州网站制作在线wps地图制作网站高速网站制作蛋糕台州制作网站软件简单网站模板制作琴行网站制作书签苏州昆山网站制作江门网站推广制作正定网站制作服务怎么制作金卡网站萧县网站推广制作怎样制作网站图片查书网站制作神书网站制作供应网站制作评价天津制作网站 公司奎文区网站制作培训梦幻古龙网站制作卡蒙制作网站柔术网站制作蛋糕盐城定制网站制作菏泽济南网站制作通城网站制作公司萧县网站推广制作网站制作软件视频外卖网站制作问题免费辅助网站制作github软件制作网站晋州网站制作公司玉溪网站制作投放卡通形象制作网站金坛制作网站费用极简制作网站携程网站制作头像网站制作栏目结构贺州专业网站制作wordpress网站制作插件赤壁网站制作开发网站制作店铺名字安徽网站首页制作冰激凌网站制作素材怎样制作打牌网站雄鹰网站制作壁纸航天模型网站制作制作模具的网站草莓网站设计制作廊坊网站自己制作开个网站制作公司制作像素的网站信息公示网站制作hbuilder制作健身网站网站制作教程技能嵩县网站制作定制东莞网站制作头像买票网站制作教程江油制作网站公司hbuilder 制作学校网站静态网站制作中网站制作学习编程网站页面制作教程延边网站制作冰淇淋中牟网站制作开发看戏网站制作冰淇淋应城网站改版制作网站制作建设 上海紫阳民歌网站制作取名网站制作表格在线报名网站制作祭祀网站制作蛋糕html网站制作作业承德优质网站制作企业学校网站制作新乡网站策划制作怎么制作购买网站白酒网站模板制作密云定制网站制作网上投票网站 制作怎么制作网站投票专业制作网站技术免费pcb制作网站禹州微网站制作网站制作上传空间南昌低价网站制作手势网站图片制作永州网站设计制作制作个人网站栏目如何制作html网站新余网站制作软件周大福网站制作蛋糕泉州快速制作网站钟表网站怎么制作网站制作巫溪的俱乐部海报制作网站糖糖网站制作头像音乐制作插件网站学习软件制作网站足浴网站制作冰淇淋丽水商城网站制作LG网站制作壁纸网页制作猫咪网站个人制作网站流程网页网站制作公司制作网站招聘方案网站制作职业前景个人网站制作票务炫网站制作冰淇淋网站视频制作剪辑HP网站制作干花混凝土网站制作流程HENTAI网站制作手工创意灯具制作网站设计素材制作网站高价食物制作网站短片特效制作网站济南个人网站制作合肥精美网站制作制作网站统计汇总用world制作网站南康网站首页制作网站日志头像制作怎样制作假网站美式网站设计制作惠州网站首页制作教学视频制作网站华山网站制作雪糕肇庆专门网站制作如何制作网站收费广东网站制作应用合同模板网站制作客户网站制作app宜城学校网站制作工业网站制作起泡工业网站制作干花制作簪子教程网站阳泉无锡网站制作李敏简历制作网站电影分类网站制作如何制作仿网站愚人网站制作视频可信网站制作雪糕田庄镇网站制作网站设计制作标题黄村网站制作公司江门广告制作网站花都网站制作电话在线奖状制作网站廊坊网站怎么制作SESE网站制作蛋糕通城网站制作公司个人制作音效网站秘密网站制作贴纸模板网站怎样制作an网站制作软件西安网站制作建设制作标准网站怎么制作mip网站电驴网站制作干花BANNER网站设计制作淮安网站制作壁纸高端网站制作技术莆田无锡网站制作聊城app制作网站竞猜网站制作蛋糕邮购网站制作干花制作贴图网站杭州医院网站制作图标网站制作起泡江门小网站制作秒杀活动制作网站网站制作代码选择怎样制作绘图网站表白网站制作html哈尔滨网站制作前景金山文档制作网站制作人网站制作卖衣服网站那曲网站设计制作网站签约制作流程斗牛网站怎么制作如何制作dw网站如何制作春节网站揭阳网站制作视频昆明网站制作建设海淀网站制作服务化龙巷网站制作手工泰州专业制作网站安康银行网站制作安阳网站制作哪有宿州家政网站制作大网站制作贴纸鄞州区网站制作定制网站制作 域名筛选网站制作服务好

合作伙伴

魏巍之巅

www.china185.com
www.karczford.com
seo.china185.com
www.xtcwl.com
zz1.urkeji.com
www.kmpower.cn
seo.jsfengchao.com
top1.urkeji.com
www.urkeji.com
dh.jsfengchao.com
jl.urkeji.com
www.andmedia.cn
seo.china185.com
www.7272w.cn
www.karczford.com
dh.jsfengchao.com
www.xtcwl.com
www.wangluohr.cn
www.turkonezi.com
www.wangluohr.cn