前后端分离的项目开发策略并不是什么新鲜事,网上也有很多文章介绍这方面的内容。我是2014年接触的,一直对这个开发策略情有独钟。不管新项目还是老项目,我都会先从前后端分离的角度去思考。从2014年到现在,我实践了近3年的前后端分离。大约有4、5个项目,或大或小,但我从未对其中一个感到满意。原因和悲伤可能只有你自己才能体会。什么是前端分离?“前端”通常是指离用户比较近的一端,比如:APP、网页、桌面程序等,在实际开发中大多数情况下,可以理解为“客户端”;“后端”相对来说比较笼统,可以理解为为前端提供服务的一端。“分离”顾名思义就是将“前端”和“后端”分离,但这里的分离主要是从以下几个纬度来分离分离架构。前端不需要依赖后端架构,后端不需要了解架构师分离,前后端使用的技术不需要各自了解other在根,可以完全透明(当然相互理解会更好)。工作分离是基于项目或产品的单一功能的水平工作分离和任务划分。更细化的关注点分离,前端偏向于用户,后端偏向于系统本身。优缺点分离(相对于一体化发展战略)有很多优点。例如,一些明显的后端技术不再受到限制。后端可以根据不同的业务场景选择合适的技术实现接口服务。技术和人一样。他们往往不是什么都擅长,长期专注于某个领域的人在处理具体问题的时候更有优势,比如ruby、python、nodejs很多语言都有自己擅长的领域擅长。团队扁平化和soa开发idea代理一样。一个项目有20多个系统。如果没有这样的soa开发思路,你想在半年内开发完成,你再多的人也没用。就像过独木桥一样。因此,从某种意义上说,前端分离为我们提供了一个桥梁,相对扁平化的团队降低了项目风险,提供了项目质量。这种分离可以让项目有更多的切入点来降低项目风险,同时因为侧重点不同。项目的质量将明显提高整体开发效率。大多数时候,你只需要使用你擅长的东西。前后端很舒服,效率自然就上来了。SEO过程中需要解决的困难和难点,这个首当其冲。如果不进行额外的处理,SEO将无法满足通信成本的增加。在功能沟通中,增加了前端的作用,往往是产品、设计、后端。多方通信是安全的。与集成前端相比,存在更多的安全问题。最简单的例子:后端接口基本都暴露了。出现这个问题的根本原因是国内的搜索引擎不解析js代码,所以基于js的页面无法被seo支持,也就是说必须向搜索引擎提供完整的html。没有解决这个问题的好方法。主要是利用集成前端提供了一套专门针对爬虫的页面。它只做数据渲染,不做UI/UX。使用nodejs实现服务端渲染(为什么选择nodejs?)安全,传统的cooike/session也可以,但是jwt这样的认证方式更能总结前后端分离,值得尝试都是前端,虽然累了也会自责:“我这是在干什么,明明只要写js效果就可以完成工作了,干嘛天天加班,到处找人交流(产品设计不合理的时候要沟通,不考虑设计适配的时候要跟他商量,界面偷懒的时候要看人的心情)”;但是,当你真正去做一段时间后,你会收获更多,不仅仅是技术层面,更多的是技术设计层面
