我们真的需要全栈开发吗?

简介: Web应用程序的开发涉及许多活动,例如:捕获用户故事

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

译者 | 弯月 责编 | 欧阳姝黎

出品 | CSDN(ID:CSDNnews)


相关文章
|
Shell Linux Docker
docker常用命令大全(基础、镜像、容器、数据卷)
这些命令仅仅是 Docker 命令行工具的冰山一角,但对于日常操作来说已经非常全面。通过熟练地使用这些基础命令,用户可以有效地管理 Docker 的镜像、容器、数据卷和网络。随着用户对 Docker 的深入使用,更高级的命令和选项将会变得必需,但上面列出的命令已经为用户提供了一个坚实的起点。对于初学者来说,理解和掌握这些常用命令是深入学习 Docker 的基础。
826 5
docker常用命令大全(基础、镜像、容器、数据卷)
|
自然语言处理 JavaScript 前端开发
聊聊什么是 i18n?JavaScript 中的 i18n 基本概念
聊聊什么是 i18n?JavaScript 中的 i18n 基本概念
2360 1
|
SQL 大数据 程序员
聊聊 SQL 语句中的占位符
大家都知道,在 SQL 语句中,可以使用 LIKE 进行模糊查询,但可能大家不知道的是,LIKE 语句的占位符除了 % 占位符之外,还有 _ 占位符,理解这些占位符可以帮助我们更有效地构造查询并进行字符串匹配,提高程序性能
822 0
|
存储 关系型数据库 MySQL
MySQL性能优化指南
【10月更文挑战第16天】MySQL性能优化指南
1066 0
|
缓存 前端开发 JavaScript
【亮剑】在React中如何通过点击事件控制组件显示与隐藏,包括基础概念和高级应用
【4月更文挑战第30天】本文介绍了在React中如何通过点击事件控制组件显示与隐藏,包括基础概念和高级应用。使用`useState`钩子和Context API可实现状态驱动的条件渲染,通过CSS类控制组件样式,或利用React Portals在DOM不同位置渲染。性能优化应注意避免不必要的渲染、合理使用Keys、优化事件处理器、使用Memoization及清理资源。测试和验证确保逻辑正确性,以构建动态用户界面并提升应用性能。
961 0
|
前端开发
全栈技术实践问题之全栈开发带来的主要好处是什么
全栈技术实践问题之全栈开发带来的主要好处是什么
209 3
|
存储 SQL Oracle
Seata 1.7.0 正式发布,大幅度提升稳定性
Seata 1.7.0 正式发布,大幅度提升稳定性
1222 97
|
Shell 开发工具 git
最完整的OpenChatKit windows环境安装和使用
选择python3.10,下载后傻瓜式安装(最好确保你的系统之前没有安装过python,或者你先卸载掉之前安装过的python)。2.执行 conda install mamba -n base -c conda-forge。这个过程比较长,需要安装一些依赖库,国内网络源不是特别好,如果有条件可以使用合法的代理。我安装到了C:\ProgramData\Anaconda3\Scripts路径下,1.安装 git,这个很简单,网上一大堆教程, 这里不再赘述。安装过程中记录下你的安装路径,后边需要加入环境变量。
|
Java Nacos Docker
Spring Cloud Alibaba【什么是Nacos、Nacos Server下载安装 、Docker安装Nacos Server服务、微服务聚合父工程构建】(一)
Spring Cloud Alibaba【什么是Nacos、Nacos Server下载安装 、Docker安装Nacos Server服务、微服务聚合父工程构建】(一)
402 0
解决 idea中SVN一直 looking for xxx working copy root 或者performing vcs refresh
解决 idea中SVN一直 looking for xxx working copy root 或者performing vcs refresh
692 0