如今做一名后端开发人员感觉比20年前更难
对比当前与 20 世纪 90 年代末的后端开发格局,可以发现一个显着的变化。尽管进入软件开发领域的准入门槛已下降,但后端开发角色变得更加复杂,开发人员面临着更广泛的挑战和期望。
将当今的后端开发格局与 90 年代末的后端开发格局进行比较,可以发现一个重大转变。尽管软件开发职业的准入门槛已经降低,但这个角色现在更加复杂,开发人员面临着更广泛的挑战和期望。
如今,工程师们努力构建更大、更复杂的系统,并在软件开发的各个方面面临大量的选择。从使用哪种语言、工具、平台、框架等,到实现哪种解决方案、架构风格、设计模式等。
设计强大、可扩展且安全的分布式系统的需求增加了复杂性,该系统能够支持数千个并发用户,通常具有近乎完美的可用性,并符合严格的数据处理和安全法规。
本文深入研究了过去 20 年后端开发的演变方式,揭示了导致其难度增加的因素。
更高的用户期望
今天的计算机拥有指数级更大的内存和处理能力,以及其他以前难以想象的功能。这些技术飞跃使得能够开发出更加复杂和强大的软件。
随着软件功能的增强,用户的期望也随之提高。
现代用户需要的软件不仅可以在全球范围内访问,还可以提供无缝的跨平台体验、响应式设计以及实时更新和协作功能。他们期望卓越的性能、高可用性和持续更新,以通过新功能和增强功能满足他们不断变化的需求。
这种转变要求开发人员利用一系列技术来满足这些期望,从而使后端开发更具挑战性。
规模和系统复杂性增加
我们今天解决的软件问题的复杂性远远超过 20 年前。我们现在正在编排计算机网络,每秒处理数千笔交易,并扩展系统以容纳数百万用户。
开发人员现在需要知道如何处理大量的多语言代码库、实现分布式系统以及应对多线程和多处理的复杂性。此外,有效抽象和依赖管理的必要性使开发过程进一步复杂化。
对于复杂的分布式系统,抽象对于开发人员降低复杂性、隐藏不必要的细节并专注于更高级别的功能至关重要。
广泛使用抽象的缺点是调试更加困难,并且对系统的全面理解更具挑战性,特别是由于传统系统可视化工具的限制。
此外,API 的激增需要细致的依赖管理,以防止创建复杂、脆弱或不透明的系统,从而使它们难以理解、维护或扩展。
尽管许多开发人员仍然使用白板或非交互式图表工具来绘制他们的系统,但最近出现了更加动态和自动化的工具,可以提供对系统架构的实时洞察。
这些变化以及许多其他变化(例如,提高的安全性要求、缓存的引入、对测试覆盖率的期望增加、异常处理、编译器优化等)强调了现代后端开发的复杂性的增加。
单个程序员可以监督整个系统的时代早已过去,取而代之的是对大型分布式团队以及广泛协作、文档和组织技能的需求。
压倒性的选择
随着技术的快速发展,开发人员现在必须驾驭庞大且不断增长的编程语言、框架、库、工具和平台生态系统。
这可能会导致决策瘫痪,体现了选择的悖论:认为如果我们为开发人员提供更多选择,他们就会更快乐、更有效率,这是错误的。无限的选择在理论上比在实践中更有吸引力。
最新的 CNCF 报告记录了技术领域的众多选择- 其中显示了数百种选择!
虽然为解决方案选择最佳技术或工具时的一定程度的自主权很重要,但过多的选择可能会导致超负荷并最终压垮人们或导致拖延或无所作为。
解决方案是在为开发人员提供做出有意义的选择的自由和策划选项以防止选择过载之间取得平衡。通过提供经过严格审查、以目的为导向的建议,并培育知识共享和最佳实践的文化,我们使开发人员能够自信、高效地驾驭广阔的技术领域。
不同的技能组合
云计算的出现给后端开发人员带来了额外的复杂性,要求他们精通在云环境中部署和管理应用程序、了解容器化以及选择合适的编排工具。
除了技术知识之外,现代后端开发人员特别重视的技能还有:
管理遗留软件并减少架构技术债务。如今,开发人员从事的大多数项目都是“棕色领域”。了解如何调整和发展架构以适应不可预见的用例,同时管理(并可能减少)架构技术债务是一项宝贵的技能。
通过选择正确的技术来组装软件。随着软件即服务(SaaS)和开源软件的爆炸式增长,软件开发已经转向类似组装的方法,后端工程师需要精心选择和组合组件、库和框架来创建完整的软件每个部分都无缝配合的系统。
设计可扩展、高性能且安全的系统架构。 后端软件工程师也是设计师,他们必须对软件设计原理有深入的了解,才能创建可扩展和可维护的应用程序。
跨团队沟通。分布式系统是由许多不同利益相关者组成的大型团队构建的。优秀工程师的标志是能够有效沟通,促进所有利益相关者的共同理解和高效决策。
结论
回顾过去二十年后端开发的演变,很明显,该角色已经从相对简单的服务器端编程任务转变为需要广泛技能的多方面学科。
满足更高的用户期望、管理系统的规模和复杂性、应对大量的选择以及获取多样化的技能等挑战凸显了现代后端开发的复杂性。
虽然进入软件开发领域从未如此简单,但如今作为一名出色的后端开发人员需要适应更复杂且快速发展的技术环境。拥有系统架构、云服务、容器化和编排工具方面的专业知识,以及有效跨团队沟通所需的软技能,仍然是在这个动态领域取得成功的关键。
以上是如今做一名后端开发人员感觉比20年前更难的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

这篇文章将为大家详细讲解有关PHP将行格式化为CSV并写入文件指针,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。将行格式化为CSV并写入文件指针步骤1:打开文件指针$file=fopen("path/to/file.csv","w");步骤2:将行转换为CSV字符串使用fputcsv()函数将行转换为CSV字符串。该函数接受以下参数:$file:文件指针$fields:作为数组的CSV字段$delimiter:字段分隔符(可选)$enclosure:字段引号(

这篇文章将为大家详细讲解有关PHP改变当前的umask,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP更改当前的umask概述umask是一个用于设置新创建的文件和目录的默认文件权限的php函数。它接受一个参数,这是一个八进制数字,表示要阻止的权限。例如,要阻止对新创建的文件进行写入权限,可以使用002。更改umask的方法有两种方法可以更改PHP中的当前umask:使用umask()函数:umask()函数直接更改当前umask。其语法为:intumas

这篇文章将为大家详细讲解有关PHP建立一个具有唯一文件名的文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在PHP中创建唯一文件名的文件简介在php中创建具有唯一文件名的文件对于组织和管理文件系统至关重要。唯一文件名确保不会覆盖现有文件,并便于查找和检索特定文件。本指南将介绍在PHP中生成唯一文件名的几种方法。方法1:使用uniqid()函数uniqid()函数生成一个基于当前时间和微秒的唯一字符串。此字符串可以作为文件名的基础。

这篇文章将为大家详细讲解有关PHP计算文件的MD5散列,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP计算文件的MD5散列MD5(MessageDigest5)是一种单向加密算法,可将任意长度的消息转换为固定长度的128位哈希值。它广泛用于确保文件完整性、验证数据真实性和创建数字签名。在PHP中计算文件的MD5散列php提供了多种方法来计算文件的MD5散列:使用md5_file()函数md5_file()函数直接计算文件的MD5哈希值,返回一个32个字符的

这篇文章将为大家详细讲解有关PHP返回一个键值翻转后的数组,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP键值翻转数组键值翻转是一种对数组进行的操作,它将数组中的键和值进行交换,生成一个新的数组,其中原始键作为值,原始值作为键。实现方法在php中,可以通过以下方法对数组进行键值翻转:array_flip()函数:array_flip()函数专门用于键值翻转操作。它接收一个数组作为参数,并返回一个新的数组,其中键和值已交换。$original_array=[

这篇文章将为大家详细讲解有关PHP将文件截断到给定的长度,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP文件截断简介php中的file_put_contents()函数可用于将文件截断到指定长度。截断是指删除文件末尾的部分内容,从而缩短文件长度。语法file_put_contents($filename,$data,SEEK_SET,$offset);$filename:要截断的文件路径。$data:要写入文件的空字符串。SEEK_SET:指定为文件开始处

这篇文章将为大家详细讲解有关PHP判断某个数组中是否存在指定的key,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP判断某个数组中是否存在指定的key:在php中,判断某个数组中是否存在指定的key的方法有多种:1.使用isset()函数:isset($array["key"])该函数返回布尔值,如果指定的key存在,则返回true,否则返回false。2.使用array_key_exists()函数:array_key_exists("key",$arr

这篇文章将为大家详细讲解有关PHP返回上一个Mysql操作中的错误信息的数字编码,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。利用PHP返回MySQL错误信息数字编码引言在处理mysql查询时,可能会遇到错误。为了有效处理这些错误,了解错误信息数字编码至关重要。本文将指导您使用php获取Mysql错误信息数字编码。获取错误信息数字编码的方法1.mysqli_errno()mysqli_errno()函数返回当前MySQL连接的最近错误号码。语法如下:$erro