利益相关,我是一个无名的阿里基层小技术主管,必须匿了。
经过ebay等海外风的吹拂,前后端分离成了阿里集团前端组织今年内部推行的几大领域之一。
目前在公司内部还只是处在早期探索阶段,。诚然经过半年的宣传和鼓吹,在前端工程师的圈子里已有了不小的影响力,但目前还缺乏后端工程师的理解和参与,也没有重量级的架构师(阿里架构师一般是指后端架构师)和技术管理层的充分讨论和鲜明支持,目前还是前端们的自娱自乐居多,各部门独立玩的居多,但已经呈现出比较活跃的发展态势,也是内部技术讨论热点,可谓道路曲折,前景光明。midway只是一个方案,不代表阿里在这方面的全部成果,很早之前就有nodejs/前后端分离的相关技术产品出世了。
在此不想评价midway的技术水平,应该说这是一个从实际场景出发、面向工程的技术架构,技术本身并有特别值得称道之处,但是勇气可嘉。从意义上来说,其实并没有非用不可的理由,midway宣称的那些好处,没有哪一条完全站得住脚,包括最基础的前后端代码共用和模板共用,仔细研讨起来也是过于理想主义的,忽视了实际工程的困难;至于利于性能优化或者bigpipe更是贻笑大方。
如果说前后端分离有什么好处,我觉得有三,需要辩证地看:
1,扩大了前端的势力范围,
对技术影响力、招聘、造轮子、发paper、晋升答辩极为重要。要知道在阿里前端最高的级别是P8,人数则一只手能数的过来。这不能不说是前端这一层过于薄、离业务核心太远导致的,现在从技术上侵入服务端,技能树终于开了新分支,可能性猛然大了无数倍,一下子似乎发现了新大陆。对个人成长的渴望,是大量面临瓶颈的资深前端工程师无法抗拒的诱惑!
2,前端开发模式的变革。
自己玩后端,技术上、项目上都不用去看后端项目的排期和配合了,极大提高了开发和测试的便利度、自主性。阿里很早就了nodejs写的开发服务器用于内部测试,现在走到线上,也是厚积薄发,这为提高开发效率,进一步榨取前端劳力提供了可能。
3,促进阿里后端web框架的进化。
这一点是没有很多人甚至阿里人没注意到的(前端不懂webx,后端不注意),webx框架发布已经很久,近期的技术升级非常少,技术形态已经陷入僵化,对现在的移动互联网趋势没有敏锐的发现机会并适应变革,导致了mtop这种畸形的架构流行。nodejs带来了重新发牌的机会,前端人员天然对多终端、多屏、交互、体验的关注会为后端框架吹过一缕新风,给这停滞的技术领域注入活力。——所以我是赞成后端工程师学习nodejs的。
同时问题也很多,这些困难和隐患不能不提:
1,不可忽视的后端技术门槛。
不能不提这茬,即便midway很务实的只挑选了视图层作为主攻方向,但不可避免的控制器层还会带进来大量技术问题需要解决,比如配管、部署、日志监控、运维工具、SOA、加解密、事务、缓存策略、消息队列、异步调用、安全问题,总有避不开的暗礁,对阿里目前的后端技术栈来说,这些技术背后是无数的系统和平台,缺一不可,midway目前还是个玩具。更何况nodejs/web framework本身都在飞速演变之中,ES5到ES6,技术特性变化剧烈。即便由前期探路者完成了基础设施建设,后期他人进入的学习成本也非常高。时间长了,前端工程师本身又自然会分化成纯前端和nodejs工程师,如此前后端天然又产生了隔阂,呵呵,分久必合,合久必分。
2,前端不务正业。
正是因为困难重重,后端技术比前端复杂,加上新领域容易出成果,客观上造成了前端精英力量会大量倾斜到这个领域,进而使纯前端技术停滞不前,内部人心浮动,如果管理上不能很好理清长期目标和短期计划、前后端如何分离等关系和利益的要害问题,对公司来说是喜忧参半的。
3,JS的技术缺陷
因为ES一直在进化中,ES6的yield部分解决了callback hell,module也初步有了,但是楼上推崇的前后端代码共享和模板共享,在我看来恰恰不太可行。对阿里来说,后端代码是需要保护的,大量模板、校验函数等代码如果暴露出去,对网站的安全是一大威胁,这个好处实在鸡肋。譬如最近我们就发现JDK的一个加密类库在js中根本找不到替代方案,自己写的话实在力有不逮。nodejs还太幼小,还有很多技术问题就不展开了。
4,好处不够明显,推广困难。
这才是midway真正的死穴。如前文所说,目前的前后端分离运动还是部分前端工程师的孤立行为,绝大多数后端工程师和一线主管对此毫不关心(我除外),因为midway宣称的痛点不是他们的痛点,宣称的优点只有节约后端人力这一条对他们有点意义,而这些人才是决定midway命运的人!随着时间的推移,这可能缓解,也可能尖锐,毕竟这是前端们的西部大开发运动,是扩地之战,总是要纠缠一番的。
总结。
目前midway至少还有半年的路要走,前端要克制自己的冲动,有限度使用nodejs,相信在这个领域大有可为,但那时候他们就不是前端了,他们会有一个响亮的名字叫 “NodeJS工程师”。
— 完 —
本文作者:匿名用户
【知乎日报】
你都看到这啦,快来点我嘛 Σ(▼□▼メ)
此问题还有 12 个回答,查看全部。
延伸阅读:
其他自然科学有像物理一样的理论和实验的分界吗?
如何设计一个实验称量灵魂的重量?