前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次前后端两兄弟的争执

记一次前后端两兄弟的争执

作者头像
一猿小讲
发布2019-08-16 16:23:52
3030
发布2019-08-16 16:23:52
举报
文章被收录于专栏:一猿小讲一猿小讲

【这是一猿小讲的第 33 篇原创分享】

1.

作为一个从事 Java 编程 10 年的后端研发人员,今天着重顶一下我的前端兄弟。

北京的天气像个闷葫芦似的,大家都像喝了闷倒驴。这不,一个前端的兄弟与一个后台的兄弟,在晕乎乎的状态下互掐了起来,在功能实现上进行了唇枪舌战。

2.

事情的发展是这样的。

缘起。产品大大要实现一个图片上传、预览的功能。

后端兄弟听了业务需求,内心窃喜。因为前两天刚在运营平台上,实现过相同的功能,直接提供一个图片上传的接口,然后再提供一个图片预览的接口,今晚就能吃鸡大吉大利啦。

前端兄弟听了业务需求,又结合自己以往的经验,这功能实现分分钟,只要后端那哥们接口定义好,具备联调能力就行,其实就坐等后端那哥们的接口能力输出就好。

最后,前后端两位兄弟商议,半天时间搞定。产品大大反应甚是吃惊,感觉技术人员这么给力,真是666。

干呗。说时迟那时快,后端兄弟直接从原有项目需求中,扒拉出一个接口文档,把文档创建人改吧改吧,另外又删除一些没用的信息,花了 2 分钟时间,给前端兄弟提供了接口文档。

前端兄弟接到接口文档,根据接口文档,外加自己以往的经验判断,直接从以往的项目需求中抽出 CSS、JavaScript 脚本、可复用的页面,大概用时 10 分钟抽出了上传、预览的功能页面,并尝试跑了一下,感觉还可以,就静等调试接口了。

联调。事情终于发展到了高潮部分,毕竟前后端两位兄弟,都是经验丰富的资深程序猿,不到一会儿的功夫,代码很快就开发完成。

当两位兄弟,沉浸在各自喜悦的功能实现时,未曾想调试预览功能,图片却死活展示不出来。

于是扯皮就正式开始了。后端兄弟要求前端,把代码贴出来分析一下,前端兄弟当然很配合,于是就贴出来代码

代码语言:javascript
复制
<img src='//test.com/user/images/auth.jpg' />

这代码一贴不当紧啊,后端兄弟火冒了三丈。

后端兄弟:你这写的有问题啊,应该是 http:// 或者 https:// 开头,所以你要整个配置或者考虑其它实现方案,但是一定要进行修改?

前端兄弟:我这么实现肯定没问题,因为线上已经有功能在跑了,是你接口实现的问题,赶紧查查咋回事呗?

但是后端我兄弟坚持去让前端去改,依然坚信前端实现有问题,已经濒临爆炸的边缘。最后情不得已,前端兄弟在猿门开坛设法,认真的用理论 + 实践展开了那激烈的讲解。

按照公司的安全规划,会进行网站的安全升级,那势必要支持 http 和 https 的无缝切换。但是实际网站的代码却只有一份,那么在这种情况下,咱们就可以使用相对 URL 的方式改写网页内资源的请求 URL。URL 相对路径其实你并不陌生,你应该经常见这样的写法。

代码语言:javascript
复制
<img src='/user/images/auth.jpg' />

那么网页中浏览的时候就变成了

代码语言:javascript
复制
<img src='http://test.com/user/images/auth.jpg' />

但是这种写法只适合前后端跑在一起的场景,像咱们这种前后分离这么彻底,前端要访问你的资源服务,有没有想过,咱们进行安全加固、协议升级,统一从 http 无缝切换为 https,那是不是前端都把代码要从头改到尾。

所以现在用的这种写法,是省略 URL 中的 Scheme 部分这样的相对路径,不过这种写法比较少见,所以你认为写的有问题。例如:

代码语言:javascript
复制
<img src='//test.com/user/images/auth.jpg' />

其实如果放在 http 的页面上,那么请求的资源就是

代码语言:javascript
复制
<img src='http://test.com/user/images/auth.jpg' />

如果放在 https 上,则访问的资源就是

代码语言:javascript
复制
 <img src='https://test.com/user/images/auth.jpg' />

那么这样一来咱们就无需为 http 和 https 而担忧了,而且也不用写不同的页面代码,这样一套代码就实现了 http 与 https 的无缝切换。

还是简单总结一下:// 缺省协议的使用,代表资源访问的协议和当前页面保持一致,如果当前页面是 http ,采用http 协议访问,如果是 https,则使用 https 协议访问。这样就不管是 http,还是升级到 https,都不用改动代码,很多 CDN 资源都是这样引用。

前端兄弟激情的讲解接近尾声,于是又跑了个真实的项目,效果确实杠杠滴。

真是术业有专攻,咱也不敢问,咱也不敢说。听完前端兄弟的讲解,后端的兄弟一头扎入自己的接口实现逻辑,麻溜的开始了经验性的 Debug。

过了大概 10 分钟,后端兄弟面带善意的微笑,找前端兄弟协助再联调一下,前端兄弟非常之配合。其实不出所料,图片功能预览正常。

3.

好了,今天的分享讲完了。其实分享的重点不是如何实现功能,而是想传达一下:从事码农工作的我们,除了跟计算机打交道以外,避免不了的就是日常的沟通,难免会遇到打太极、踢皮球,甚至会擦出火花,但是如果我们都能静下来,用我这位前端兄弟的态度去解决问题,可能事情处理的结果,会别有一番风味在心头。

最后说个正事:万水千山总是情,点个“在看”行不行(捂嘴笑

)。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一猿小讲 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
内容分发网络 CDN
内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档