当前位置: 首页 > 科技观察

架构师:“前后端分离还没有用,那太out了”

时间:2023-03-17 23:42:55 科技观察

今天:公司的架构师说:项目需要使用前后端分离,vue+golang,大家先了解一下技术栈吧!别说你不会用,现在很流行!确实,近些年angular、react、vue等前端框架很火,用途广泛,大有前端一统化之势!Web、APP、小程序,公众号,无所不能,一次开发,多端运营!从事互联网行业的人,不懂几个前端框架,就觉得自己抬不起头来。作为一个入行多年的老程序员,其实一开始,我是排斥的。一个人就能搞定的事情,为什么要分开浪费人力?,还要对接调试,不就是找事吗!呵呵,请原谅我老人家接受新事物慢,需要时间。仔细一想,事情总是在往好的方向发展。今天先来看看优势:1、前后端耦合度低前端工程师负责页面开发、前端设备兼容性、用户体验等;后端工程师负责系统性能、扩展性、负载能力、分布式集群部署等;分工更明确,更专业。以前流行MVC架构,不管什么语言,都有很多MVC框架可用,都可以用一种语言搞定前后端;比较流行的有Java的spring,Python的django,PHP的Laravel,thinkphp,ci等等,比如图:mvc和现在MVVM的前后端分离比较彻底。一般通过网络请求的接口将返回的数据写入到ViewModel中,ViewModel通知Controller获取相应的数据并显示在View上。像vue这样的框架使用双向绑定技术,当Model发生变化时,ViewModel会自动更新,当ViewModel发生变化时,View也会自动发生变化。mvvm2。提高开发效率之前的开发流程:a.开会讨论需求;b.用于界面设计的UI;C。将设计图切割成html;d.后端工程师集成页面;e.功能测试;F。部署上线;一旦需求变了,UI变了,后面的所有流程都得重新来一遍,做过的人都知道是什么感觉!前后端分离后,开发模式如下:开会讨论需求;b.UI界面设计;C。前后端工程师订购接口,开始自己的开发d.接口调试;e.功能测试;F。部署上线;后面页面的修改优化可能不需要在后台修改。3、前端静态页面开发、部署、升级更容易,nginx支持,做CDN缓存,后端服务化。每一个都是用熟悉的语言开发的,升级对用户的影响越来越小。4.多设备应用,行业发展趋势以前的应用主要是web,最多只有一个移动端,现在用户设备多样化,同样的数据需要在不同的设备上展示。如果数据和页面放在一起,就很不方便了。分离后,后端API只需要提供json数据,提高代码复用,不关心页面。前端如何显示和修改不会影响后端。多终端接入5.提高后端可扩展性目前的应用,无论用户数量多少,考虑分布式集群部署,用户认证,数据缓存,图片文件访问等都不像单体应用那么容易控制,而且每个function是针对Service化改造的,性能和扩展性是后端考虑的重点,这些和前端关系不大。前后端分离,避免了前端受到后端变化的影响。再说说缺点:(1)开发维护成本高。维护部署任务多,必然增加人力。对于老板来说,怎么做并不重要。他更关心成本。遇到抠门的老板,还是用比较简单的方法比较好,否则等着加班。事实上,对于很多应用来说,根本就没有大量的用户,这时候使用简单的架构可能会更好。(2)前端的难度越来越大:框架百花齐放,前端在学习框架,对js原生的东西了解越来越少。之前面试的前端只知道vue、react、javascript的原型继承、事件驱动、异步执行队列等概念很少了解,因为前端更新速度快,这也导致前端-终端开发者在学习新框架时疲于奔命,原理更不明白。好吧,如果你是建筑师,你会选择什么样的建筑!