简单来说,对于原始的Web开发模式,前后端分离的意义当然是非常大的,但是是不是要具体到:
前后端只通过 JSON 来交流,组件化、工程化不需要依赖后端去实现。
这个有待商榷,具体的实现方式多种多样,前后端的解耦程度是否越大越好?这个不一定。Web开发是一个很复杂的工程性的问题,前后端分离只是其中一个小问题,采用何种方案进行分离,在什么层面/维度进行分离?这些都是实践中要根据具体情况去进行抉择的事情。
最后回到问题
Web 前后端分离的意义大吗?
1、该网站前端变化远比后端变化频繁,则意义大。
2、该网站尚处于原始开发模式,数据逻辑与表现逻辑混杂不清,则意义大。
3、该网站前端团队和后端团队分属两个领导班子,技能点差异很大,则意义大。
4、该网站前端效果绚丽/跨设备兼容要求高,则意义大。
记住,前后端只适合大厂,比如BAT之类的。
中小厂没有必要用前后端分离。
因为明显增加了工程量,也降低了开发效率。
著名的web开发框架Ruby on rails的DHH就不推荐中小厂初创使用前后端分离这种模式,DHH同时也是Webpack最初的主要作者,业界大神级别的存在。他的Rails这个框架催生了诸如TW、github、Hulu、Coinbase、Airbnb、Bloomberg、Dribbble、Fiverr、500px、Soundcloud、Groupon、Indiegogo、Kickstarter、Shopify、Twitch、GoodReads等等一系列独角兽企业的成功。开发效率相当高。
前后端分离的对中小厂没有明显的好处,即使用户体验好那么一点,但是不足以弥补牺牲的开发时间,用rails一个程序员一个一个月、半个月甚至一个星期(比如producthunter就用了一个星期开发出来的)整出一个完整的mvp项目,但是前后端分离的话,基本这很难办到,至少需要4~5倍的开发时间。
对于大多数中小厂,根本活不到需要重视这些细微的用户体验这一步。
所以,相对于中小企业,什么才是最重要的?是你有一个想法,可以在几天最多几周内上线,这是降低成本、风险、抢得先机的关键。所以Rails在过去帮助无数公司取得了成功。而前后端分离,用JS编写路由、状态管理,那个效率和DEBUG难度相对于Rails这种框架开销就太了。
不过国情来看,中国用Rails的比较少,大多java,java开发就是慢。所以你用前后端分离看不到明显哪里不好,可能还更快一点。
另外,我们现在大厂垄断,中小厂生存空间很小,初创项目艰难,氛围也不好。我承认前后端分离带来的界面和用户体验确实更好、更现代,国内网上讨论的也很火,但是适不适合你,还是要仔细考虑。
Rails之所有能帮助众多初创企业成功,就是因为它是The One Person Framework带来极致的开发效率,一个人,一个月,搞定一切。而不是前后端分离。