Node.js前后端分离的分界线
JavaScript越来越强大了,有人甚至做出了能在浏览器中装操作系统来运行的虚拟机。
在用Node.js前后端分离之前,一直都是通过越来越强大的浏览器中运行大量js代码,利用单页应用来实现前后端逻辑分离的。
首先来说说前后端分离的目的
一个典型的小型的MVC构架的Web项目,一般都是囊括着前端+后端的代码,
小型项目慢慢变大,更多的人员投入到项目中,
想让整个team在尽少信息冗余的情况下,能顺利地加feature、改bug,就需要分离。
尽少平均信息,包括但不限于:每个人平均下来,尽少的必须掌握、理解的代码,尽少的必要沟通,从而提高效率。
那么我们在实际开发过程中哪里沟通最频繁呢
还记得某个加班的深夜里,拿着前端丢过来的demo,一行行比对着与本地的差异,然后套到模板里吗?
还记得即使一行行比对,还是漏掉了某个地方,导致bug吗?
还记得每次写/改完模板标签/helper,就要给前端写/改文档来说明吗?
如果对待Web前端能够像Android,iOS等其他端一样,只用给和其他端同样的接口,就能完成沟通,是多么高效的一件事啊。
所以前端即使是放在服务器上,也应该是专注于表现层。
然而,激进的前端总是想让Node.js干更多的事
Node.js搭载着v8,又有活跃的npm社区红利,性能和可用资源做后端的确是足够了。
但是我们在做构架、分层的时候,应该是在语言之外做考虑。
怎样让在每个feature的添加,bug的修改的时候,需要的知识最少?
答案不应该是把业务逻辑尽可能多地拿到前端代码中,
而是让前端和移动端拥有同样的接口。