-
我们真的需要全栈开发吗?
Web应用程序的开发涉及许多活动,例如:
- 捕获用户故事
- 创建原型设计
- 开发核心组件
- 构建原型
- 开发可运行的应用程序
- 部署
- 测试
- 最终被企业用户接受
Web应用程序开发的整个生命周期需要用到很多技术。近来,我们看到全栈开发人员的需求持续高涨。
假设有一个足球队(或其他任何体育团队)。我们需要专业的前锋、中场、后卫,还有一个守门员。有时,全能选手可以帮助我们赢得一场比赛甚至一系列比赛。但是,所有团队都需要一些专业人士。全栈开发人员很有必要,但仅靠全栈开发还不够。
为什么我们需要一个全栈开发人员?
简单来说,可能我们需要某个人同时兼顾后端API和UI组件。
公平地说,在下列情况下,全栈开发人员能够发挥出很大作用:
- 小团队,最多3~4个成员
- 改进项目,而且预算很有限
- 支持和维护项目,开发人员需要对应各类工作
但是,如果团队有很多成员,那么全栈开发人员就不会带来任何好处,甚至造成负面影响。
为什么?
服务/API的基本原理是服务抽象:
服务抽象包含有关服务内封装的所有细节(比如逻辑、实现和构建服务所用的技术等),可以向服务使用者提供有关服务的详细说明,而用户可以通过特定的方式使用该服务。
现在,我们来仔细思考一下,就会发现负责端到端实现的开发人员将很容易被自己的行为和责任所误导。这样的代码库会出现许多几个问题,而团队需要等到将来才会发现。
相反,我们可以要求全栈开发人员担任UI或后端专家,并随着项目的推进,将他们切换到其他角色。
从开发周期的角度来看,下面几个方法可以让团队不再依赖于全栈开发人员:
- API合约
- 模拟服务
如果你认为上述两种方法不过是小事一桩,那便最好不过了。
但如果你认为这两项工作非常耗时,而且大有裨益,则请注意以下几点。
- API合约并不意味着必须拥有OpenAPI / Swagger文档。API合约也可以只是API和UI开发人员之间通过书面或电子邮件达成的协议。
- 测试驱动的开发(TDD)是很好的选择。但是,正确理解并正确执行TDD并非易事。相反,你应该从模拟服务开始,并辅助你完成单元测试或端到端的测试。
- React拿到了16.8万颗星星,Vue拿到了18.3万颗星星.
- Mirage有4千颗星星,MSW有5千颗星星。
GitHub上的这些数据表明,前端开发社区刚刚开始采用测试驱动的方法。
Mirage减少了对API的依赖,并可以快速跟踪Web应用程序的开发。
总结
我自己就是一名全栈开发人员,而且也是架构师。
本文所表达的意思完全是我个人的看法,希望对你的团队有所帮助。
原文链接:https://javascript.plainenglish.io/do-you-really-need-a-full-stack-developer-72b36c4949b1
作者 | Prasad Jayakumar
译者 | 弯月 责编 | 欧阳姝黎