全栈开发工程师,就是个神话~【转载+整理】

原文地址前端

这篇文章颇有道理,若是放在十几年之前,说全栈工程师,还能够,那时的 Web 站点的访问量不是很大,大都是一台 Web 服务器和一台数据库服务器,采用分离的结构,更有甚者,Web 服务器和数据库服务器是同一台服务器,一个工程师,就能够完成全部的工做,包括,用 Oracle 或 MySQL 创建数据库,编写 Web 的前端和后端,前端包括 HTML,CSS,JavaScript,后端则可采用 Java,PHP,.NET,Ruby,更有用 Lisp 的(国外比较多)。如今的大网站,都是由当初的小网站起步的,即使是 Facebook,当初也是扎克伯格部署在宿舍里的。但如今,光靠一我的,这几乎是不可能完成的任务,尤为是想搞出个高可用,高性能的 Web 站点,好比,电商网站,每一年双11淘宝的访问量,估计你也看过,12306 在每一年春运的宕机~加之,均衡负载(各个层的均衡负载),CDN,读写分离,分库分表,主库备库,(消息)中间件,服务发现,如今的云,虚拟化,各类容器……等等一系列使人眼花缭乱的技术和策略,其中的任何一个均可以写本书出来~对了,还有移动端,再说全栈工程师,就显得极为不靠谱,谁有这么大能力和精力,把这些一套的东西,都弄明白呢,不仅要弄明白,还要让各个构件衔接起来~数据库

“全栈开发工程师(full stack developer)”一词常常出如今企业招聘的岗位描述中。但 Hello Pretty 联合创始人兼首席技术官 Scott Hadfield 在近日发表的一篇博文中指出,全栈开发工程师就是一个神话,即便不彻底如此,用人单位也很难找到一个这样的人。后端

为了进一步阐述这一观点,他列出了下面这样一个并不详尽的“栈”:服务器

1 aapxdvOS2pegg0DAqoOrYw

用人单位对全栈开发工程师的预期远远超出通常人的能力。全栈开发工程师至少须要对栈中的每一个组件都有足够深刻的了解,以便能作出明智的选择及向管理层解释。上图所示的技能表每一年每层都会增长新的组件,每隔几年又会增长新的层。所以,Scott 认为,在招聘时寻找全栈开发工程师不只不合理,简直就是愚蠢。架构

不过,Scott 也认可,确实有人具有全栈能力。也有许多距离全栈尚远,但仍然使人惊叹的开发人员、设计人员和项目管理人员。而有些自称全栈工程师的人也仅能列出上述一半多的组件,就更不用说组件之间的交互了。因而,他写道:框架

我看到的几乎全部使用全栈一词的状况(尤为是在招聘海报中),用人单位真正的意思只是寻找“使人惊叹的人”。运维

另外,Scott 指出,全栈开发工程师或许根本就不该该编写代码,而应该更多地充当系统架构师或集成工程师的角色。在使用“全栈开发工程师”这样一个流行术语时,应该说明是哪一个“栈”,好比是 Web 栈,仍是移动栈。工具

最后,Scott 总结道:性能

全栈开发工程师就是一个神话,不是由于不存在这样的人,而是由于这个术语没意义。网站

Scott 博文在 Hacker News 上引起了激烈的讨论。网友 andrewstuart 对“全栈开发工程师”的理解在参与讨论的网友中具备必定的表明性:

我对全栈开发工程师的定义是,他们可以本身构建和部署一个完整的、能够工做的应用程序,而不须要其余任何人的帮助。那意味着他们可以编写前端、后端代码,可以配置服务器,固然还可以设计数据库表。

不过,有网友认为运维技术也应该是开发过程的核心部分。若是花费大量时间构建的应用程序由于运维细节没法按计划部署,那会致使大量的返工。

有许多网友都持有与 andrewstuart 相似的理解,他们认为全栈开发工程师并非一个神话。BadassFractal 就是其中一例:

我就作全栈开发,包括Ops(经过各类CM工具配置AWS并向上部署应用程序……)、DB(PostgreSQL 用了5年……)、后端(独立构建相似Rails的框架……)、前端(能够综合运行原始 DOM、Backbone 及 React)等全部这一切。

缺点是,我在其中任何一个方面都不是真正的核心专家,所以,其中任何一个领域中的任意一名优秀专家都比我强。

BadassFractal 的后一部分观点颇具表明性。jvehent 也认为,一我的能够成为全栈开发工程师,但却没法成为一名全栈专家。对此,有网友指出,企业应该给这两种人都留有空间。另有网友表示,若是企业在招聘时只盯准了前端和后端均是专家级的开发人员,那很是惋惜,由于在一个多人团队中,他们全面的能力并不能获得有效的发挥。

相关文章
相关标签/搜索