什么样的人能够被称之为全栈工程师?


什么样的人能够被称之为全栈工程师?

文章插图
本文经授权转载自:CSDN(ID:CSDNnews)
最近,每当我谈论起全栈开发时,很多人都深表怀疑,他们说世界上并不存在全栈工程师,而且大多数开发人员只适合后端或前端的工作 。
针对全栈开发的大多数批判都可以归结为以下两点:
  • 没有人可以同时成为前端和后端的专家,所以最好还是术业有专攻 。
  • 大多数人只适合前端或后端的工作 。
然而,这些批判都未能切中全栈的要点 。
什么样的人能够被称之为全栈工程师?

文章插图
1.全栈指的不是代码,而是责任全栈指的不是你所熟悉的编程语言或掌握的技术,而是指你能够利用工具和相应的权限,克服所有困难,负责某项任务的始末 。
【什么样的人能够被称之为全栈工程师?】将一个任务拆分成不同的职责,然后交给不同的人员处理,这中间会造成不必要的断层,此外还需要额外的协调,而且通常很难实现跨层的解决方案 。
假设我们有一个非常简单的Web开发任务,需要后端开发人员提供新API,同时还有部分前端的开发工作,比如显示某些指标或活动的图表 。
开发这类功能的时间表通常如下所示:
什么样的人能够被称之为全栈工程师?

文章插图
如果范围发生变化,或有关该任务的新技术出现了,那么就需要对原来的架构进行调整,这时两位开发人员会成为彼此的瓶颈——他们会牵制彼此的连续工作,会给彼此施压,而且在切换思路时也很痛苦,最终有可能在两位开发人员之间引起怨恨和冲突 。
由于大多数工作本质上都是有顺序的(如上图所示,前端开发人员需要API),而且在前一个任务完成之前,后一个开发人员必须等待,或者想变通的方法(如上图所示,使用模拟API) 。
最重要的是,很多时候某一层中遇到的难题可以在其他层简单地解决 。而当开发人员只负责前端或后端时,通常他们不会考虑自己职责范围之外的解决方案 。
2.全栈开发的优点
  • 没有瓶颈:你不需要等待另外一个人即可连续工作 。
  • 更快的迭代:你可以随时修改API,并在客户端查看修改后的结果,然后通过修改UI来处理新的API,而且你可以连续推进这种迭代 。
  • 与利益相关者拉近距离:你可以利用应用程序的可视化部分,为利益相关者展示你的工作进度,并与他们进行交流,这有助于拉近你与利益相关者之间的距离 。
  • 所有权:直接与各方人士(利益相关者、质量保证、产品、管理)联系,更为顺畅地沟通和管理,肩负起一定的责任 。
3.任何人都可以胜任全栈开发
为了回应“并非每个人都可以胜任全栈开发”的批评,我想指出,如今的前端放到几年前就是后端,特别是最困难的部分—— 路由、状态管理、缓存、甚至业务逻辑现在常常放到前端完成 。
大多数前端问题不需要详细了解语言的设计、UI性能或浏览器兼容性,通常只需添加几个div,然后修改一些css值(假设你的客户端是Web的话) 。
同理,大多数后端问题也不需要详细了解并发模型、字节码操作或ORM的内部机制,通常只需向数据库或API模型添加新字段 。
成为一名全栈工程师并不意味着你需要成为掌握所有技术的专家,也不意味着你需要以一己之力承担起所有的工作 。如果你需要在不太熟悉的领域开发某个功能,也并不意味着你不可以求助于他人 。你应该向那些专注于该领域且经验丰富的专家寻求指导和帮助 。
4.全栈开发人员也可以专攻某项技术
成为一名全栈开发并不意味着你不可以专攻某项技术,或成为某个方面的专家 。
有人说你无法同时掌握前端和后端,那么这是否暗示了如果你潜心研究某一层,就可以深入掌握这方面的技术?这很荒谬,前端和后端也分很多区域,任何人都不可能成为全面掌握了某一层的专家 。
你可以成为一名全栈开发,同时还可以成为图形库的专家 。
你可以成为一名全栈开发,同时还可以成为ORM的专家 。
就像其他开发人员一样,全栈开发最终会深入某些领域的专业开发知识,因此将这些领域中较为复杂的任务分配给专门研究这些领域的开发人员是很自然的事情 。
不要按照前后端划分开发人员 。
5.全栈不仅仅是后端和前端


推荐阅读