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

简介: 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)


相关文章
|
安全 Linux 网络安全
组网神器WireGuard安装与配置教程(超详细)
组网神器WireGuard安装与配置教程(超详细)
39882 2
|
Shell Linux Docker
docker常用命令大全(基础、镜像、容器、数据卷)
这些命令仅仅是 Docker 命令行工具的冰山一角,但对于日常操作来说已经非常全面。通过熟练地使用这些基础命令,用户可以有效地管理 Docker 的镜像、容器、数据卷和网络。随着用户对 Docker 的深入使用,更高级的命令和选项将会变得必需,但上面列出的命令已经为用户提供了一个坚实的起点。对于初学者来说,理解和掌握这些常用命令是深入学习 Docker 的基础。
852 5
docker常用命令大全(基础、镜像、容器、数据卷)
|
12月前
|
SQL 算法 Oracle
写着简单和跑得快是一回事,SQL 为什么不可能跑得快?
本文探讨了代码性能优化的重要性及实现方法。通过对比SQL与SPL(esProc Structured Process Language)在处理大数据查询时的效率差异,指出SQL在复杂查询中存在性能瓶颈,如全排序操作导致的低效问题。而SPL凭借其集合化和离散性特性,能够以更简洁的语法实现高效的算法设计,显著提升运行速度。例如,从1亿条数据中取前10名或进行分组TopN计算,SPL不仅代码量大幅减少,还能避免不必要的排序操作,实测显示其执行速度远超SQL。此外,SPL还支持复杂的漏斗分析等场景,进一步证明其在高性能计算领域的优势。SPL现已开源免费,值得开发者关注。
|
Ubuntu NoSQL Linux
一文讲明Docker的基本使用,常见Docker命令使用 、Docker的安装使用等【详细说明+图解+概念+实践】
这篇文章详细介绍了Docker的基本使用,包括Docker的安装、常用命令、架构概念等,并通过图解和实践帮助读者快速掌握Docker的使用方法。
一文讲明Docker的基本使用,常见Docker命令使用 、Docker的安装使用等【详细说明+图解+概念+实践】
|
Shell 开发工具 git
最完整的OpenChatKit windows环境安装和使用
选择python3.10,下载后傻瓜式安装(最好确保你的系统之前没有安装过python,或者你先卸载掉之前安装过的python)。2.执行 conda install mamba -n base -c conda-forge。这个过程比较长,需要安装一些依赖库,国内网络源不是特别好,如果有条件可以使用合法的代理。我安装到了C:\ProgramData\Anaconda3\Scripts路径下,1.安装 git,这个很简单,网上一大堆教程, 这里不再赘述。安装过程中记录下你的安装路径,后边需要加入环境变量。
解决 idea中SVN一直 looking for xxx working copy root 或者performing vcs refresh
解决 idea中SVN一直 looking for xxx working copy root 或者performing vcs refresh
803 0
|
分布式计算 Java MaxCompute
|
Web App开发 Unix Linux
GNOME 简介、使用、技巧、快捷键
一.GNOME简介 1.什么是GNOME GNOME(The GNU Network Object Model Evironment)是基于GPL的完全开放的软件,可以使用用户很容易地使用和配置计算机。
3016 0