资讯专栏INFORMATION COLUMN

前后端分离思考

余学文 / 1011人阅读

摘要:前后端分离的项目开发策略已经不是什么新鲜东西了,网上介绍这方面的文章非常多。我自己是在年的时候接触到的,对这种开发策略一直爱不释手,不管新老项目都会首先用前后端分离的思维先去思考一番。

前后端分离的项目开发策略已经不是什么新鲜东西了,网上介绍这方面的文章非常多。我自己是在14年的时候接触到的,对这种开发策略一直爱不释手,不管新老项目都会首先用前后端分离的思维先去思考一番。从14年到现在在前后分离上面也实践了近3年的时间,项目大大小小的也差不多4,5个吧,但是却从来没有一个是自己觉得很满意的,其中的原由和心酸可能只有自己才能体会了。

前后端分离是什么

“前端”通常指的是,相对来说更接近用户的一端,例如:APP,网页、桌面程序等,在现实开发中大部分情况可以理解为“客户端”;

“后端”相对来说就更泛化了,可以理解为是为前端提供服务的一端。

”分离“顾名思义就是将”前端“和”后端进行分开“,但是这里的分开主要从下面几个纬度进行分离

架构分离,前端不需要依赖后端架构同时后端也不需要知道前端使用何种架构

人员分离,前端后端使用的技术相互之间根部不需要相互了解完全可以在做到透明(当然相互了解会更好)

工作分离,基于项目或者产品的单个功能的横向进行工作分离,任务划分更细

关注点分离,前端偏向用户,后端偏向系统本身

分离的优缺点(相对于一体化的开发策略) 优点

非常多,例举一些比较明显的

后端技术不再受局限
后端可以根据不同的业务场景选择合适的技术进行实现接口服务,技术和人一样,什么都能做的往往不是很精而长期专注某个领域的在处理特定问题的时候就比较又优势,例如ruby,python,nodejs等很多语言都有自己非常擅长的领域。

团队扁平化
这和soa的开发思路代理的好处是一样的,一个项目20多个系统,如果没有这种soa是开发思路要想半年内开发完成,给你再多人都没用。这就像过独木桥一样。因此前端分离某种意义上来说又给我们提供了一座大桥,相对的团队更扁平化

降低项目风险提供项目质量
这种分离让项目有了更多的切割点降低项目风险,同时因为关注点不一样项目的质量会明显提高

整体开发效率提升
大部分时间都只需要使用自己擅长的东西,前后端都很舒服,自然效率就会上来

缺点

与其说缺点,实际上可以理解为是在实践前后端分离的过程中需要解决的困难和难点

seo,这是首当其冲的,再不进行附加处理的情况下seo是无法满足的

沟通成本增加,在功能沟通中多了前端这个角色,而且往往是产品、设计、后端多方沟通

安全,相对于一体化的前端,安全问题更多,最简单的例子:后端接口基本全部暴露

如何解决前端后端分离带来的问题

seo,这个问题主要针对前端是web端情况。导致这个问题的根本是因为国内的搜索引擎不会分析js代码,因此在基于js实现的页面就无法得到seo的支持,那么也就是说必须给搜素引擎提高完整的html。解决这个问题并没有太好的方式,主要还是2方面入手

使用一体化前端专门为爬虫提供一套页面,只做数据渲染,不做UI/UX

使用nodejs实现服务器端渲染(为什么选择是nodejs?)

安全,传统的cooike/session也是ok的,只是类似jwt这种认证的方式更好些

总结

前后端分离,值得所有前端去尝试,虽然累到最后你会自己责备自己:“我这是在干吗,明明只要写写js效果就完成工作的事情,为什么现在天天加班,还到处找人沟通(产品设计不合理的时候需要沟通下,设计适配没考虑的时候需要和他讨论下,接口偷懒的时候还得看人家心情)”;但是,但是当你真的做了一段时间之后你会又更多的收获,不仅仅是技术层面,更多的是技术设计层面的东西

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/92449.html

相关文章

  • 《从零构建前后分离web项目》探究 - 深入聊聊前后分离架构

    摘要:什么是前后分离前后端分离并不是什么新鲜事,到处都是前后端分离的实践。然而一些历史项目在从一体化设计转向前后端分离的架构时,不可避免的会遇到各种各样的问题。搞了一个前后分离,需要分离部署。 探究 :深入聊聊前后分离架构 前后分离,一直是一个相当泛泛的问题,前后分离到底好不好?没有绝对的对,没有绝对的错,业界就这个问题已经激烈的探讨几年了.出现讨论的点在于:分离当然是好的,但是以什么样的服...

    whinc 评论0 收藏0
  • 《从零构建前后分离web项目》探究 - 深入聊聊前后分离架构

    摘要:什么是前后分离前后端分离并不是什么新鲜事,到处都是前后端分离的实践。然而一些历史项目在从一体化设计转向前后端分离的架构时,不可避免的会遇到各种各样的问题。搞了一个前后分离,需要分离部署。 探究 :深入聊聊前后分离架构 前后分离,一直是一个相当泛泛的问题,前后分离到底好不好?没有绝对的对,没有绝对的错,业界就这个问题已经激烈的探讨几年了.出现讨论的点在于:分离当然是好的,但是以什么样的服...

    Corwien 评论0 收藏0
  • 《从零构建前后分离web项目》探究 - 深入聊聊前后分离架构

    摘要:什么是前后分离前后端分离并不是什么新鲜事,到处都是前后端分离的实践。然而一些历史项目在从一体化设计转向前后端分离的架构时,不可避免的会遇到各种各样的问题。搞了一个前后分离,需要分离部署。 探究 :深入聊聊前后分离架构 前后分离,一直是一个相当泛泛的问题,前后分离到底好不好?没有绝对的对,没有绝对的错,业界就这个问题已经激烈的探讨几年了.出现讨论的点在于:分离当然是好的,但是以什么样的服...

    lunaticf 评论0 收藏0
  • 设计架构

    摘要:先来看一张系统前后端架构模型图。一种接口的约定本文用于定义一种统一的接口设计方案,希望具有参考价值。,和都是常见的软件架构设计模式,它通过分离关注点来改进代码的组织方式。 如何无痛降低 if else 面条代码复杂度 相信不少同学在维护老项目时,都遇到过在深深的 if else 之间纠缠的业务逻辑。面对这样的一团乱麻,简单粗暴地继续增量修改常常只会让复杂度越来越高,可读性越来越差,有没...

    graf 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<