0

0

如今做一名后端开发人员感觉比20年前更难

betcha

betcha

发布时间:2024-04-02 16:38:32

|

2505人浏览过

|

来源于DZone

原创

对比当前与 20 世纪 90 年代末的后端开发格局,可以发现一个显著的变化。尽管进入软件开发领域的准入门槛已下降,但后端开发角色变得更加复杂,开发人员面临着更广泛的挑战和期望。

如今做一名后端开发人员感觉比20年前更难

将当今的后端开发格局与 90 年代末的后端开发格局进行比较,可以发现一个重大转变。尽管软件开发职业的准入门槛已经降低,但这个角色现在更加复杂,开发人员面临着更广泛的挑战和期望。

如今,工程师们努力构建更大、更复杂的系统,并在软件开发的各个方面面临大量的选择。从使用哪种语言、工具、平台、框架等,到实现哪种解决方案、架构风格、设计模式等。

设计强大、可扩展且安全的分布式系统的需求增加了复杂性,该系统能够支持数千个并发用户,通常具有近乎完美的可用性,并符合严格的数据处理和安全法规。

本文深入研究了过去 20 年后端开发的演变方式,揭示了导致其难度增加的因素。

更高的用户期望

今天的计算机拥有指数级更大的内存和处理能力,以及其他以前难以想象的功能。这些技术飞跃使得能够开发出更加复杂和强大的软件。

随着软件功能的增强,用户的期望也随之提高。

现代用户需要的软件不仅可以在全球范围内访问,还可以提供无缝的跨平台体验、响应式设计以及实时更新和协作功能。他们期望卓越的性能、高可用性和持续更新,以通过新功能和增强功能满足他们不断变化的需求。

这种转变要求开发人员利用一系列技术来满足这些期望,从而使后端开发更具挑战性。

规模和系统复杂性增加

我们今天解决的软件问题的复杂性远远超过 20 年前。我们现在正在编排计算机网络,每秒处理数千笔交易,并扩展系统以容纳数百万用户。

开发人员现在需要知道如何处理大量的多语言代码库、实现分布式系统以及应对多线程和多处理的复杂性。此外,有效抽象和依赖管理的必要性使开发过程进一步复杂化。

对于复杂的分布式系统,抽象对于开发人员降低复杂性、隐藏不必要的细节并专注于更高级别的功能至关重要。

广泛使用抽象的缺点是调试更加困难,并且对系统的全面理解更具挑战性,特别是由于传统系统可视化工具的限制。

此外,API 的激增需要细致的依赖管理,以防止创建复杂、脆弱或不透明的系统,从而使它们难以理解、维护或扩展。

尽管许多开发人员仍然使用白板或非交互式图表工具来绘制他们的系统,但最近出现了更加动态和自动化的工具,可以提供对系统架构的实时洞察。

这些变化以及许多其他变化(例如,提高的安全性要求、缓存的引入、对测试覆盖率的期望增加、异常处理、编译器优化等)强调了现代后端开发的复杂性的增加。

单个程序员可以监督整个系统的时代早已过去,取而代之的是对大型分布式团队以及广泛协作、文档和组织技能的需求。

陌言AI
陌言AI

陌言AI是一个一站式AI创作平台,支持在线AI写作,AI对话,AI绘画等功能

下载

压倒性的选择

随着技术的快速发展,开发人员现在必须驾驭庞大且不断增长的编程语言、框架、库、工具和平台生态系统。

这可能会导致决策瘫痪,体现了选择的悖论:认为如果我们为开发人员提供更多选择,他们就会更快乐、更有效率,这是错误的。无限的选择在理论上比在实践中更有吸引力。

最新的 CNCF 报告记录了技术领域的众多选择- 其中显示了数百种选择!

虽然为解决方案选择最佳技术或工具时的一定程度的自主权很重要,但过多的选择可能会导致超负荷并最终压垮人们或导致拖延或无所作为。

解决方案是在为开发人员提供做出有意义的选择的自由和策划选项以防止选择过载之间取得平衡。通过提供经过严格审查、以目的为导向的建议,并培育知识共享和最佳实践的文化,我们使开发人员能够自信、高效地驾驭广阔的技术领域。

不同的技能组合

云计算的出现给后端开发人员带来了额外的复杂性,要求他们精通在云环境中部署和管理应用程序、了解容器化以及选择合适的编排工具。

除了技术知识之外,现代后端开发人员特别重视的技能还有:

  • 管理遗留软件并减少架构技术债务。如今,开发人员从事的大多数项目都是“棕色领域”。了解如何调整和发展架构以适应不可预见的用例,同时管理(并可能减少)架构技术债务是一项宝贵的技能。

  • 通过选择正确的技术来组装软件。随着软件即服务(SaaS)和开源软件的爆炸式增长,软件开发已经转向类似组装的方法,后端工程师需要精心选择和组合组件、库和框架来创建完整的软件每个部分都无缝配合的系统。

  • 设计可扩展、高性能且安全的系统架构。 后端软件工程师也是设计师,他们必须对软件设计原理有深入的了解,才能创建可扩展和可维护的应用程序。

  • 跨团队沟通。分布式系统是由许多不同利益相关者组成的大型团队构建的。优秀工程师的标志是能够有效沟通,促进所有利益相关者的共同理解和高效决策。

结论

回顾过去二十年后端开发的演变,很明显,该角色已经从相对简单的服务器端编程任务转变为需要广泛技能的多方面学科。

满足更高的用户期望、管理系统的规模和复杂性、应对大量的选择以及获取多样化的技能等挑战凸显了现代后端开发的复杂性。

虽然进入软件开发领域从未如此简单,但如今作为一名出色的后端开发人员需要适应更复杂且快速发展的技术环境。拥有系统架构、云服务、容器化和编排工具方面的专业知识,以及有效跨团队沟通所需的软技能,仍然是在这个动态领域取得成功的关键。 

相关专题

更多
什么是分布式
什么是分布式

分布式是一种计算和数据处理的方式,将计算任务或数据分散到多个计算机或节点中进行处理。本专题为大家提供分布式相关的文章、下载、课程内容,供大家免费下载体验。

326

2023.08.11

分布式和微服务的区别
分布式和微服务的区别

分布式和微服务的区别在定义和概念、设计思想、粒度和复杂性、服务边界和自治性、技术栈和部署方式等。本专题为大家提供分布式和微服务相关的文章、下载、课程内容,供大家免费下载体验。

233

2023.10.07

线程和进程的区别
线程和进程的区别

线程和进程的区别:线程是进程的一部分,用于实现并发和并行操作,而线程共享进程的资源,通信更方便快捷,切换开销较小。本专题为大家提供线程和进程区别相关的各种文章、以及下载和课程。

482

2023.08.10

Python 多线程与异步编程实战
Python 多线程与异步编程实战

本专题系统讲解 Python 多线程与异步编程的核心概念与实战技巧,包括 threading 模块基础、线程同步机制、GIL 原理、asyncio 异步任务管理、协程与事件循环、任务调度与异常处理。通过实战示例,帮助学习者掌握 如何构建高性能、多任务并发的 Python 应用。

143

2025.12.24

java多线程相关教程合集
java多线程相关教程合集

本专题整合了java多线程相关教程,阅读专题下面的文章了解更多详细内容。

5

2026.01.21

C++多线程相关合集
C++多线程相关合集

本专题整合了C++多线程相关教程,阅读专题下面的的文章了解更多详细内容。

5

2026.01.21

PHP 命令行脚本与自动化任务开发
PHP 命令行脚本与自动化任务开发

本专题系统讲解 PHP 在命令行环境(CLI)下的开发与应用,内容涵盖 PHP CLI 基础、参数解析、文件与目录操作、日志输出、异常处理,以及与 Linux 定时任务(Cron)的结合使用。通过实战示例,帮助开发者掌握使用 PHP 构建 自动化脚本、批处理工具与后台任务程序 的能力。

31

2025.12.13

系统架构有哪些种类
系统架构有哪些种类

系统架构种类有单库单应用架构、内容分发架构、读写分离架构、微服务架构、多级缓存架构、分库分表架构等。想了解更多系统架构的相关内容,可以阅读本专题下面的文章。

190

2023.11.14

AO3中文版入口地址大全
AO3中文版入口地址大全

本专题整合了AO3中文版入口地址大全,阅读专题下面的的文章了解更多详细内容。

1

2026.01.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Node.js 教程
Node.js 教程

共57课时 | 9万人学习

Rust 教程
Rust 教程

共28课时 | 4.6万人学习

Vue 教程
Vue 教程

共42课时 | 6.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号