不存在所谓的全栈开发人员

2025-06-10

不存在所谓的全栈开发人员

** 如果您是拥有全栈头衔的多面手,那么本文并不是要攻击您对团队的宝贵贡献。

TLDR:我猜直接跳到结论部分

简介

这个词已经流行了一段时间了,而且它很有道理,因为理论上听起来不错。作为一名从事 Web 相关技术工作的人,你希望自己看起来精通该技术栈的所有领域,从而提高你的可聘用性。作为一名工程团队的领导者,你希望能够聘用能够无缝地为代码库的每个领域做出贡献的人员。虽然听起来很棒,但出于多种原因,这个概念并不成立。

每个堆栈都是不同的

没有一套专门的技术可以用来创建端到端的 Web 应用程序。有无数种编程语言、服务器框架、数据库平台、预处理器和包管理器可供选择,它们都旨在解决特定问题,而这些问题因您要构建的应用程序类型以及负责维护应用程序的团队的经验而异。“全栈开发人员”的称号充其量只能意味着您能够熟练地为您过去使用过的特定堆栈的每个层级做出贡献。任何寻找全栈开发人员的招聘经理实际上只是在寻找一个熟悉招聘公司目前用于交付 Web 应用程序的所有技术的人。同时,他们忽略了那些专注于其他技术和实践的人,而这些技术和实践可能会极大地提升其当前应用程序的可用性、功能性和性能。

专业化很重要

即使在自称全栈开发人员的领域,也存在一些人比其他人更熟悉某些技术,反之亦然。拥有计算机科学学位的开发人员有时可能对 GO、Rust 和 Node 更感兴趣,而自学成才的开发人员则为了更改 WordPress 博客的背景颜色而转入该领域学习 CSS。虽然这些差异绝对没有错(因为两者都有必要的用途),但期望两类开发人员以同样的熟练程度为代码库的相同部分做出贡献是完全不公平和不负责任的。即使是那些拥有全栈头衔的人,在加入工程团队后也倾向于选择他们最熟悉的技术。专注于全栈开发人员往往会忽略这些差异,这反过来会对应用程序的健康产生负面影响。

全栈对你的应用程序不利

全栈开发人员的招聘信息往往会吸引特定类型的候选人。通常,这类人精通高度程序化的语言,同时在 CSS、HTML 语义、可访问性和前端性能方面略有经验。在 JavaScript 逐渐成为主流编程语言,而新开发人员往往首先学习 JavaScript 的环境下,这种情况也就不足为奇了。因此,Web 开发中其他同样重要的方面就显得次要了,取而代之的是各种框架和工具,旨在使这些不太受关注的领域更易于管理。在这个精通 JavaScript 就能带来丰厚收入的世界里,有时在你的 Web 开发职业生涯中只专注于 JavaScript 似乎是一个明智的决定。这种模式导致了一些令人担忧的趋势,这些趋势在很多 Web 应用程序中都能找到。

关注全栈开发人员所带来的最大问题(并非双关语)是性能问题。Web 应用程序在首页加载时向用户毫无意义地提供数百 KB 的图片、CSS 和 JavaScript 代码,这已是家常便饭。大多数情况下,这些性能问题仅仅是由于开发人员对前端性能缺乏关注,他们对 Web 开发领域不感兴趣。作为招聘经理,团队中不关注前端性能的开发人员本身并没有错。然而,如果团队中没有人关注前端性能,那就糟糕了。

另一个未得到应有重视的问题是可访问性。让应用程序对残障用户无障碍访问始于HTML层面,而这恰恰是大多数进入招聘市场的全栈开发人员极易忽视的领域(这并非开发人员的错,学校和编程训练营也经常忽略这一点)。如果你领导一个工程团队,那么让你的应用程序服务于尽可能多的用户是一个显而易见且有利可图的策略,但如果团队中没有开发人员专注于可访问性,这一策略就无法实现。

为了简洁起见,我最后要谈的一点是前端技术的新兴特性和功能。Service Workers、响应式图像、新的 CSS 布局模块、推送通知和后台同步功能都是当今前端 Web 能够处理的功能,但大多数全栈开发人员几乎闻所未闻,因为它们需要除了全栈 Web 开发人员职位招聘中提到的传统技能之外,还要具备特殊的专注力。同样,不熟悉这些技术本身并没有错。如果管理应用程序的团队中充斥着不精通这些新兴领域的全栈开发人员,那么应用程序就有可能输给竞争对手。

全栈不利于你的招聘渠道

我参加过几次面试,技术评估只包含一些算法挑战和一些 JavaScript 框架相关的任务(例如用 React 实现一个可排序的表格)。最近,我参加过的技术评估只有这几次。这种做法强调全栈思维模式,即重视后端能力而非用户界面开发。如前所述,这可能会对应用程序的整体健康产生负面影响。招聘应该更加全面,在考察候选人对团队的整体贡献潜力的同时,关注个人的优势和劣势。

结论

《点球成金》是一部好电影。它教会了我们一个宝贵的道理,它不仅仅适用于棒球:个人贡献者各展所长,共同打造出一支比MVP阵容更出色的团队。成为一名全栈Web开发人员听起来很棒,但实际上,这往往意味着团队缺乏应用程序设计和开发特定领域的知识。专业化和平衡可以解决这个问题,并提升应用程序的整体健康状况。招聘经理、团队负责人、编程训练营和个人贡献者都应该放弃全栈的想法,因为堆栈非常庞大且非常复杂——与其雇佣两个对你的堆栈一无所知的全栈开发人员,不如雇佣一位CSS专家和一位Kubernetes老手,这样你的应用程序可能会更好。

鏂囩珷鏉ユ簮锛�https://dev.to/tevko/theres-no-such-thing-as-a-full-stack-developer-1m3i
PREV
使用 Vite、TypeScript、Jest 和 React 测试库 2025 轻松设置 React 测试
NEXT
使用 node.js 的 5 个理由