今天聊:先后端分界线与 GraphQL

著做权归做者全部。商业转载请联系 Scott 得到受权,非商业转载请注明出处[务必保留全文,勿作删减]。
天下苦先后端协同久矣

过去一年多太多同窗问我对于 GraphQL 的态度,就小小做文一篇,瞎聊一下。前端

先后端,从十几年前开始明确的分化,不管前端后端,到如今都经历了太屡次的技术变迁,多少程序员黑发到白发,长发到秃头沉沉浮浮,先后端现在的边界在哪里,咱们大脑皮层遇到这个问题的第一个反应,每每就是,前端开发页面,服务端渲染页面或者与页面异步同步数据,剩下的事情就交给浏览器了,边界仿佛就在静态页面开发和数据渲染这里,那么它真的是在这个地方么?程序员

要回答这个问题,先聊一聊个人职业生涯,我从事前端开发快 10 年了,算是一个老前端,在个人眼中,前端后端的边界愈来愈模糊了,并且这个边界也在不一样的公司,不一样的团队,甚至不一样的业务模式下,不断的发生着变化,这不是废话么,那到底边界线哪里,是什么?面试

我我的以为,就是数据的控制权和与视图所依赖的 API,这里就是目前先后端的边界,数据控制权属于后端,API 属于后端,把先后端简单看作是一个完整的系统,这个系统中自 API 向下天然是后端的,API 向上则慢慢属于前端,为何是慢慢属于前端,先后端的职能变化,先后端的分工边界,先后端的角色变迁,都跟咱们这一次以 GraphQL 为表明的数据方案有着密切的关系。后端

不过话说回来,虽然 Scott 从业已久,但这个问题依然是回答的战战兢兢,缘由就在于对于技术方向的判断,大多数资深的工程师都会有类似的判断,但对于某一层或者某一块具体的技术实现方案,你们得出的结论会相差甚远,这个有一小部分是人的问题,好比技术视野,技术胸怀,技术背景,以及我的的职业规划,但大部分是客观环境的问题,咱们老是站在本身熟悉的若干客观环境下,以此举例和类推,得出整个世界也基本上是相似的状况相似的运做模式这样的结论。浏览器

其实不一样公司不一样团队甚至不一样风格的工程师组合在一块儿,是彻底没办法经过理论推导来达成统一的,因此我须要再次重申一下,GraphQL 有多是不能解决你当下甚至将来的团队合做效率、开发模式问题的,可是它必定会给你带来一些不一样的视角来认识到两件事情:微信

  • 第一个,先后端的合做成本其实很高,源于语言栈源于主导权,也源于各自职能的不一样,这个是必然的,即使是有了各类的 Mock 方案,团队规范,工具基建,都没办法大幅度的下降这个成本。
  • 第二个,先后端的边界既不像咱们认为的那么清晰,先后端的职能壁垒也不像咱们认知中的那样不可逾越,他跟咱们心里对本身的工程师身份认同有很大的关系。

因此你们要问本身一个问题,为何我必定是一个前端工程师,为何我必定是一个后端工程师, 为何我必定不想去关心任何系统底层或者上层 UI 的问题,为何我以为端上的体验和页面或者服务搭建,几乎是我工做的所有重心,为何做为前端,每每会以为上线那一刻起本身的工做就已结束。前端工程师

这一二十年先后端技术演进的过程当中,先后端各自的能力边界都获得了很大的扩展,互相合做才有了今天互联网的繁荣,我我的的角度是,前端后端的边界模糊也好,清晰也罢,本质上咱们是一个系统的上下组合部分,经过各类咬合来保证产品正常上线运行为公司创造价值。less

至于咱们咬合的部分,是须要双方都有足够的勇气和胸怀,迈出一步甚至两步,以团队效率为根本出发点,而不是仅仅职能,前端工程师尽可能不要限定本身的界限,能够放大本身的能力甚至是权利,主动承担灰色地带的事情,这些事情的承担看上去是苦活累活,但最终解放的依然是咱们本身的价值枷锁。异步

说的有点玄乎,一句话收尾,先后端在变化,边界也在变化,不管先后端都应该开放心态,调研新工具,实践新方案,站在一块儿来让工程师的技术价值最大化,帮公司省更多钱,给公司赚更多钱,这个须要决策者的心胸格局和专业度。工具

这个边界到底如何变化呢,我认为截止到目前,GraphQL 是一个可小范围尝试的解决方案,它能解决问题也同时带来挑战,你们用的时候要当心慎重,而这两年大火的 Serverless,它也有它特殊的生存环境,咱们依然能够用 open 的心态看待,小范围试用的尝鲜,但具体到生产环境,咱们依然要当心慎重。

image.png

Scott 近两年不管是面试仍是线下线上的技术分享,遇到许许多多前端同窗,因为团队缘由,我的缘由,职业成长,技术方向,甚至家庭等等缘由,在理想国与现实之间,在放弃与坚守之间,摇摆不停,心酸硬扛,你们能够找我聊聊南聊聊北,对工程师的宿命有更多的了解,有更多的看见与听见,Scott 微信: codingdream,也能够来 关注 Scott 语雀跟进最新动态,本文未经许可不准转载,得到许可请联系 Scott,不然在公众号上直接转载,尤为是裁剪内容后转载,我都会直接进行投诉处理。

2.png
1.png

相关文章
相关标签/搜索