作者:李旭光
引用请标明出处
前言
知乎真是个好地方,关注好自己喜欢的话题,经常会推送一些好的话题到你面前,这不刚刚就看到了一个人提问
前端全栈和大前端有啥区别
以前只听说过全栈,听说过大前端,但是没听说过前端全栈,对于前两个我自己也有一些理解,但从不敢说自己理解的对,带着强烈的好奇心我打开了这个问题,也看到了一位前端大神‘狼叔’的回复,感觉还是很到位的,也让我重新验证了自己的理解,所以就将狼叔的解答与我自己的认识相结合一下,做个记录。
狼叔说
狼叔在解答这个疑问之前直接上了一张图,图我贴在下面供大家看一下
这么一张图实际上已经胜过千言了,但是为了方便大家理解,狼叔还是在下面对图进行了解释
前端全栈:分node全栈和其他语言全栈,比如ror搞全栈是最早的,其他php、java也有,不过纯前端的不过,在react,angular之前搞后台还是可以的。
所以前端全栈,我理解是等同于node全栈的。node本身是做后端的,但在前端工程化和BFF领域大放异彩,所以node全栈涵盖了前端的方方面面,是比较合理的解释。
大前端:更泛化的概念,移动互联网时代开启后,hybrid曾经很火,基于h5和webview做跨端,确实是很理想的做法,但复杂交互搞不定,机器性能网络等是硬伤,所以后来出现了rn和weex,整体还是前端写法,所以hybrid里前端也是占了一定的开发,结合之前前端和node的关系,综合3者:1)app里的前端,2)前端,2)node全栈,统称为大前端。这里的”大“含义是可以做的事儿的范围更广,触达前后端移动端,对前端职责有明显提升。随着技术发展,基于electron的桌面开发也日进流程,ott和iot等领域采用js也愈来愈多,所以只要和用户直接触达的端采用了前端技术开发的都涵盖在大前端范畴内。
我说
之前我的概念里前端扩展开来再进一步的话分两个方向,一个叫全栈另一个叫全端,‘栈’的话是纵向的,简单理解的话就是一款产品一个人能从设计到前端实现后端实现运维等一个人搞定,那么他就可以称之为全栈,狭义一点理解,就是前端后端都会,那么这里所说的前端全栈,我理解是更方便前端掌握的一些后端技能如node、php、ror等,而不是java这种后端技能,所以叫前端全栈,我想这里大部分指的都是node作为后端;
那么我理解的全端是什么呢
‘端’我理解为容器,任何跟用户直接接触的技术都是端的技术,早期的pc端,后来的手机端,手机端里又出现了h5、hybrid、native这么几种,后来又出现了小程序之类的容器,pc端也出现了如electron等客户端技术,那么随着物联网智能家居的出现,更多的端出现了,就如狼叔说的OTT和IOT领域也成了端,大前端的大是指范围广,属于用户直达所承载内容容器的都是端。
总的来说跟狼叔的理解一致,我个人也努力在往全栈全端发展,不过真的好难还有很长的路要走。