电话

028-126520321

2022年软件开发领域的22项趋势预测经历了2020年的灾难性影响,2021年显示出人类的复原与反击能力。

标签: 2024-07-06 

由于科技的发展,各国可以大规模地为人们接种疫苗。2021年对于软件开发和IT行业而言是一个重要的一年,正如人们期待的那样。2022年,将会出现一场由冠状病毒变异和高科技驱动的疫苗研究的进化之争。在软件开发领域,当前的数字化潮流已经成为不可逆转的趋势,带来了许多变化、创新以及对现有技术的新应用。预测未来是一个充满挑战的任务。和过去两年一样,我在这里预测2022年软件发展的主要趋势。1. 集中式基础设施:云计算已经成为新的标准,就像西方世界几家大型超市取代了当地商店一样,公共云正在逐步取代区域性数据中心。未来几年,公共云将成为企业、政府和初创企业首选的基础设施。公共云目前是数字创新的孵化器,这种发展趋势预计将持续到2022年。公共云在安全和区块链民主化方面扮演着关键角色,通过可访问的方式向客户提供了许多创新。根据Gartner的预测,2022年公共云的收入预计将增长16%。

因此,如果您是数字公司的决策者,现在是时候认真重视云计算了。如果你是工程师,你可以通过注册一个免费账户或参加MOOC课程来开始学习云计算。2. 分布式基础设施:与公共云不同,边缘云的目标是将存储、计算能力和人工智能/机器学习集中在一个中心位置(如可用区或区域)。而边缘计算则是将这些资源带到离客户更近的地方。需要边缘计算的场景包括:低延迟的应用场景(如游戏)、网络带宽较差的地区(例如离岸站点)、无网络环境、受监管要求的场景、实时应用案例(例如联网车辆)、以及智能和高性能设备(如物联网设备)。随着5G、Web 3.0以及其他技术创新的兴起,边缘计算将在2022年及以后继续广泛应用。在接下来的几年里,零售商将广泛采用边缘计算技术。AWS、Azure和GCP等公共云服务提供商,通过提供多种边缘计算服务,一直保持领先地位。

一个新的倡议,名为“State of the Edge”,旨在推动边缘计算标准化的实现。3. 公共云:多云将获得更多的动力。采用公共云的一个主要问题是供应商锁定。一旦将基础设施、存储和计算迁移到公共云供应商,便会受到供应商的束缚。许多公司都尝试聪明地使用多个供应商,以避免被单一供应商所束缚。很遗憾,企业只是与多个供应商合作,而非只选择了一个供应商。如果不能在其他公有云服务上使用类似CosmosDB、AWS S3、BigTable等的公有云服务,就会出现供应商限制的情况。

庆幸的是,目前出现了一种反向的趋势,即提供与广泛的公共云服务的API兼容的服务。MinIO是一项能够与S3兼容的服务,Aviatrix提供云原生网络功能,Volterra则是一项分布式云服务,而LightOS专注于云原生存储方面。所有这些服务都致力于提供云中立性。除此之外,谷歌正致力于将其广受欢迎的服务(BigQuery)引入其他公共云平台,如AWS和Azure。

4. 在容器技术方面,Kubernetes是主导力量,而Docker则在拖后腿。 容器化已成为现代IT行业中不可或缺的关键技术。Kubernetes在推广和普及容器化技术以及实现民主化方面起到了重要作用。由于巨大的付出、精心的规划和执行,Kubernetes现在已发展成为一项稳定可靠的技术。它在服务器领域中的作用与Linux相同。Kubernetes 可以应用于众多场景,而不引入破坏性变化,这得益于其具有前瞻性的设计 (Operator、Volumn)。随着Kubernetes技术的不断完善,在接下来的几年里,Kubernetes的影响力可能会减弱。请不要误解我的意思,Kubernetes将成为现代软件开发的引擎。然而,我们将发现更多有关Kubernetes新采用和用例的吸引力,而由于其成熟度,Kubernetes本身将会慢慢发展。与Kubernetes一样,Docker作为容器化技术也扮演了至关重要的角色。遗憾的是,那家公司在其鼎盛时期努力将Docker 转化为盈利产品。Docker近期宣布将于2022年开始采用全新的订阅模式。它的价格设定方式是可以接受的。鉴于Docker对现代云原生开发的重要贡献,我希望它在新的订阅模式下取得成功。

5. 网络安全:每个人都应该认真对待安全问题

对于初创企业或中型公司而言,网络安全问题就像是“被放在房间中的大象”,必须引起足够的注意。他们意识到了网络安全的重要性,但由于资源匮乏,无法有效地加以落实。只有大型公司才能支付得起专门的安全团队。

公共云服务提供商的一个主要优势是,他们已经实现了网络安全的民主化。目前,借助公共云服务,初创企业或中等规模公司可以轻松地实施高度安全的应用程序。

公共云的一个安全隐患是,一旦遭受攻击,将直接影响数百万家公司BOB半岛下载。在2021年,公有云遭遇了一些备受关注的安全漏洞。2022年,公共云和Linux系统将更加注重安全工作。目前开源开发模式存在另一个安全问题。通常情况下,开发者会在业余时间开发一个关键的核心模块或库。遗憾的是,一旦该模块/库受损,几乎所有的公司都会受到影响。log4j漏洞是一个显著的问题,它将影响全球近一半的信息技术公司。

是时候了,大型企业正在重新审视当前的开源模式。 在这种模式下,开发者维护着一个核心软件,却并未得到经济利益或支持。

6. 区块链:最终,生活并不仅仅围绕在加密货币上

区块链经常被视为与加密货币紧密相关。每当涉及到数字货币诈骗事件时,区块链技术总是备受质疑。区块链技术是21世纪最具颠覆性的技术之一。区块链远非仅限于加密数字货币,尽管它是最为人熟知的应用之一。区块链技术有望在诸多领域革新我们的产业,对我们的日常生活产生深远影响。在2021年,我们见证了区块链技术一个新兴且极为流行的应用案例。非同质化代币。当前,非同质化通证主要被用于数字艺术领域。到了2022年,我们将看到非同质化代币(NFT)被应用在更多不同的场景和用途上。区块链技术正在受到人们的认真关注,预计到2022年,将会有巨大的投资支出。

被广泛批评,主要源于其高能耗的问题。现如今,许多区块链公司正在计划向节能的“股权证明”模式转变,避免长时间的“工作证明”过程对能源的消耗。2022年,以太坊这个被广泛使用和受欢迎的区块链将会实现绿色的“权益证明”模式转变。7. 机器学习:自动机器学习(AutoML)和无代码人工智能(No-Code AI)将推动机器学习的民主化进程。近年来,机器学习(ML)作为一项颠覆性技术取得了巨大成功并得到广泛应用。然而,鉴于需求,机器学习专家极度稀缺。许多公司希望以有限的方式应用机器学习技术,而不必聘请全职、昂贵的机器学习专家。AutoML(自动机器学习)是一项新的自动化举措,它可以在没有专业机器学习人员的情况下以有限的方式使机器学习变得更加自动化。对许多情况而言,您需要一位机器学习专家。在一些情况下,您可以利用AutoML来提升机器学习专家的能力,或者甚至在没有任何机器学习专家的情况下使用AutoML。在一定程度上,它类似于低代码或无代码运动。2021年AutoML获得了巨大的推动力。在2022年,我们将看到越来越多AutoML技术的应用和创新,因为AutoML在市场上有巨大的发展机遇。

自动机器学习是无代码人工智能趋势的一部分。2022年将是无代码人工智能迎来普及和广泛应用的高峰期。

8. 人工智能:狭义人工智能即将面临大规模应用的时刻。和机器学习一样,深度学习(AI)是另一项颠覆性技术,在过去十年中取得了广泛应用和快速增长。到了2022年以及未来,人工智能将会持续受到更多的应用、投资和创新的推动。人工智能的一个的一个重要目标是一个重要目标是实现一个要目标是实现“通用智能”,也就是让人工智能的智能水平达到目标是实现“通用智能”,也就是让人工智能的智能水平达到或标是实现“通用智能”,也就是让人工智能的智能水平达到或超过实现“通用智能”,也就是让人工智能的智能水平达到或超过人现“通用智能”,也就是让人工智能的智能水平达到或超过人类,具备类似人类的认知能力。我们离普遍智能的实现还有很长的路要走。然而,将更多地利用人工智能代理在特定领域辅助或增强人类,这被称为“弱人工智能”。2022年,我们会看到更多的狭义人工智能被应用在很多非关键领域,比如呼叫中心和IT领域,人工智能代理将利用狭义人工智能来辅助人类。

9. 深度学习平台:尽管有许多人工智能库,但Tensor Flow仍将继续领先,并有两个库从其他来源脱颖而出。TensorFlow是由谷歌开发的,而PyTorch是由Facebook开发的。TensorFlow 在其 2.0 版本中进行了重新设计,并加入了动态图、更加友好的 Python 支持和许多其他改进。Tensorflow还提供了Tensorflow.js,可在浏览器中使用这个AI库。Tensorflow的另一项创新是Tensorflow Lite,它可以帮助在移动设备和网络上使用Tensorflow。TensorFlow还推出了TensorFlow Extended(TFX),该平台是用于部署生产级别的端到端机器学习管道的。PyTorch是另一个主导人工智能领域的库,它将动态图和Python作为首要语言引入。它也更加开发者友好。它还推出了PyTorch Mobile,支持在Android和iOS设备上运行PyTorch。它使用PyTorch Profiler来为开发者提供更友好的调试工具,以便调试大型人工智能模型。TensorFlow依然是目前最流行的人工智能库。

资料来源:Stack Overflow 开发者调查,2021年

在2022年,TensorFlow 将继续作为主导的人工智能库,因其在可视化和大规模采用方面表现更为优越。

10. 近年来,我们看到多模式和多用途的数据库逐渐兴起,人们开始采用适合特定使用情况的特殊数据库。关系数据库管理系统(RDBMS)适用于具有结构化数据的事务型用例。 宽列数据库适用于低延迟、分布式数据库。 键值存储是分布式缓存的一种形式。 图形数据库适用于极端关系型数据。 文件数据库适用于半结构化数据的事务性应用案例。 搜索引擎(例如基于位置的搜索)适用于全文和高级搜索。 是一种分布式SQL,其用途是为分布式数据库提供低延迟的查询,同时具备事务性保证。 用于数据仓库和数据分析的 OLAP 数据库,其一个缺点在于需要为一个应用提供多个数据库。

目前存在一种新趋势,即每个数据库都将提供一个以上的模型来服务于多个用例。PostgreSQL(支持多种数据模型),Azure CosmosDB(支持多种数据模型和多种用途),SingleStore(同时支持OLAP和OLTP)是这些数据库的领先者。2022年将会出现更多支持多模型和多用途的数据库。

11. 数据密集型计算:Spark与公共云服务

\nSpark是数据密集型计算的默认框架,已几乎取代了Hadoop生态系统。许多公共云服务提供了Spark作为其数据处理服务的核心组件。Spark还能够通过相同的应用程序界面(API)来支持几乎实时的流处理。最近几年来,Apache Beam变得越来越受欢迎,因为它提供了一个统一的编程模型,用于定义和执行数据处理流水线。批处理和数据流。Google的Cloud Dataflow是一项强大的服务,它支持Apache Beam的实现。此外,Azure和AWS均支持批处理服务。如果你想避免与云有关,你可以考虑使用Spark或Cloud Dataflow(GCP)。12. 实时流处理:Flink与云服务的比较。尽管对于90%的情况来说,几乎实时的流处理就足够了,但在一些情况下(如欺诈检测、异常检测、基为了处理规则警报和特别分析实时数据,您将需要实时数据流。 Apache Flink在实时数据处理方面无疑是市场的领导者。该系统还提供了对Apache Beam API的支持,并提供了处理实时流数据的供应商中立解决方案。如果你希望避免受制于供应商锁定,你应该选择使用Flink,而不是依赖于公共云特定的技术。此外,Flink的能力要远超过公共云服务供应商提供的类似产品。

13. DevOps:在现代的DevOps实践中,智能观察能力

已经成为几年前仅对大型企业至关重要的因素。然而,随着云原生开发和微服务架构的快速普及,对现代软件开发来说,可观察性变得至关重要。除了常规的监控手段(比如日志记录、监控系统和追踪工具),我们还需要获取Kubernetes集群的遥测数据和拓扑信息。此外,我们会看到趋势是使用人工智能和时间序列数据库来开发智能可观察性平台。2022年以后,智能、云原生的可观测性将持续增加。14. 快速应用开发:低代码/无代码(LCNC)将持续蓬勃发展。低代码/无代码(LCNC)倡议旨在降低开发网络和移动应用程序的障碍,使得开发人员(或少量开发人员)无需过多参与。在接下来的几年里,我们仍然需要程序员来开发应用程序。不过,使用低代码/无代码框架/工具也有许多优势,可以显著提高应用开发速度。在2022年,我们会看到越来越多的LCNC的应用实例。

网络和移动应用程序的开发 网站和登录页面设计 结合对话流的智能聊天机器人开发 电子商务平台搭建 机器学习技术 人工智能在视频、音频和图像方面的应用 工作流程管理优化 利用RPA实现流程自动化 15. 软件架构:企业微服务和微前端

目前,我们有三种后端应用开发的选择。单片机、微服务和无服务器技术。它们各有优缺点,在某些特定场景中表现出色,但在其他情况下则无法达到预期效果。微服务使得应用程序开发成为可能。在这种模式下,多个团队可以在同一个应用程序上并行工作。除此之外,微服务与云原生开发紧密相联,因为高昂的运营成本可以通过简化代码来转嫁到云端,从而实现优化。因此,对企业而言,微服务架构将成为2022年的首选。如果你想了解如何设计最佳实践的微服务架构,那么可以阅读我的博客。我们现在在前端应用开发领域面临两个选择。Monolith和微前端。我们经常忽视前端应用的复杂性,因为大多数建筑师通常是后端开发人员。前端单片机和后端单片机同样糟糕。因此,对于企业前端开发而言,微前端将成为2022年的优先架构选择。一个令人振奋的消息是,目前所有流行的JavaScript前端框架都已支持微前端技术。16BOB半岛入口. 软件开发:AI将协助开发者和质量保证(QA)

我认为人工智能是人类的助手或帮手。人工智能能够处理繁琐、可预测、重复和困难的任务,这样人类可以集中精力做更具思考性和智能化的工作。在软件开发中,我们也需要完成许多乏味、可预期和重复的工作。人工智能可以利用GPT-3和其他自然语言处理库来实现这些任务的自动化。已经使用人工智能实现自动化测试。一些人工智能驱动的助手还可以帮助开发者自动生成源代码。Tabnine、GitHub Copilot和Codota。尽管它们在协助软件开发方面仍处于早期阶段,还不是很成熟,但我预计这些由人工智能驱动的代码助手将在2022年变得更加成熟,从而有助于我们更快地开发和交付软件。17. 编程(主流):Python将引领潮流\n在最近几年中,我们见证了Python作为一种通用编程语言的迅速崛起。Python最终在流行的编程语言排名网站TIOBE上占据了领先地位,成为目前排名第一的编程语言。{TIOBE}

来源:TIOBE

作为一种业余项目开发的编程语言,Python降低了编程门槛。这对Python的创始人Guido van Rossum和其他语言设计者来说是一个了不起的宣言。Python具有简洁、解释性强、动态、易学、简单和功能强大等特点。Python的独特卖点在于它的简单性和较低的学习曲线。Python是数据科学和数据工程领域中首屈一指的编程语言。然而在许多其他领域,它被认为是第二或第三流的编程语言。在2022年,Python仍将保持主导地位,因为将有许多新的开发人员加入,而这些人可能会选择以Python作为起点。在决定采用哪种编程语言之前,仍然有必要对该领域进行进一步的关注。我有一些建议想分享关于编程语言。

代表着网页开发。JavaScript,TypeScript 进行后端开发。Java、Golang、JavaScript和TypeScript在安卓开发中都有广泛的应用。Kotlin 适用于iOS开发。Swift是一种用于系统编程的编程语言。C、C++、Rust 和 Golang,数据科学和数据工程 。Python很受欢迎,因此作为初学编程语言的新手,你可以选择从Python入手。

18. 在相当长的一段时间里,Java一直是最受欢迎的编程语言。它是一种能够解释执行、复杂度适中、支持多线程、具备垃圾回收和强大功能的编程语言。除此之外,JVM经过了严格的实战检验,具备强大、成熟的特性,被公认为业界最优秀的进程虚拟机之一。选择Java作为大型、单体企业应用的理想解决方案。

遗憾的是,随着微服务和无服务器的盛行,Java 处于不利位置,因为JVM 看似过于笨重(内存占用较高)和较慢(启动时间长)。此外,在现代基于容器的开发过程中,容器的资源是受限的。因此,人们开始在云原生开发中采用灵活、轻巧、高效的编程语言,例如Node.js、Golang。最终,Java社区开始采用GraalVM来提供现代化的Java解决方案。这个JDK版本支持AOT编译和多语言编程。另外,它能够直接转换为本机代码,非常适合云原生开发,占用内存少,启动时间短。此外,Java 17最终加入了许多现代功能,比如模式匹配,这些使得Java对开发者更具吸引力。Java将在2022年成为企业软件开发的首选编程语言,这得益于其严格的向后兼容性、GraalVM、以及最新的更新。2019年,客户端网络框架方面企业普遍使用React和Angular。在现代网络应用程序开发中,JavaScript/TypeScript的框架占据主导地位,而且这一趋势将在2022年持续下去。有许多基于JavaScript/TypeScript的网络框架,但有两个框架在众多竞争者中脱颖而出。其中一个是Facebook开发的React框架。另一个是谷歌推出的Angular(Angular 2及以上版本)。React是这两个框架中最受欢迎的,无可争议的,创新的,灵活的,对搜索引擎优化友好的框架。在另一方面,Angular是一个带有决策性、覆盖全方位、模块化的、安全性高的框架,它有明确的配置规范。Angular是一个具备"一站式"功能的框架,利用其强大的CLI工具可以开发出高度复杂的企业级Web应用。

数据源:NPM趋势

预计2022年,React和Angular仍将主导网络开发。尽管Vue.js是最受欢迎的框架,但因为存在安全问题并且过于依赖单一开发者,它不太可能在行业中被大规模采用。20. 本地框架(Java):针对微服务和无服务器应用的服务器端的Java框架{s}

,Spring MVC/Spring Boot是Java中流行度最高的服务器端框架。正如之前提到的,Spring使用的是传统的OpenJDK,在云原生Java开发领域逐渐丧失了吸引力。Quarkus 是一款领先的云原生开发框架,与传统的 OpenJDK 不同,它采用了 GraalVM 技术。因此,采用Quarkus开发的应用程序具有更小的体积,更快的启动时间,更适合用于基于容器的开发。最终,Spring 宣布推出了 Spring Native,该版本将利用 GraalVM 进行云原生开发。

它仍然处于实验阶段,将在 2022 年 10 月发布的 Spring 6 版本中正式推出。Spring Native的一个好处是,你能够将Spring MVC项目迁移到Spring Native项目,而无需重新编写大部分或全部代码。出于这个原因,若要在2022年开发云原生的Java应用程序,建议考虑使用其中的一个Java原生框架。尽管如此,对于单片式Java开发,仍然可以采用传统的框架(如Spring MVC),这些框架基于传统的OpenJDK。

21. 应用程序开发:本地应用更加灵活 BOB半岛老版本

到2022年,随着手机用户数量的持续增长,应用程序下载量也将继续增长。预计到2022年,下载的App数量将达到1710亿个。手机应用程序开发是当前软件开发领域中蓬勃发展的一个市场。目前有四种方法可用于开发移动应用程序,这些数据来自Statista。本地应用的开发、跨平台应用的开发、混合应用的开发和基于云的应用。

是其中最常见的应用开发方式,用于本地应用开发和跨平台应用开发。尽管在时间和资源方面,本地应用开发是最为昂贵的选择,但它所提供的灵活性也是最高的。一般来说,企业更偏爱本地应用开发的灵活性。跨平台应用开发使得开发者可以使用几乎相同的代码在iOS和Android平台上进行应用开发。初创企业更青睐这种方法,因为他们喜欢跨平台应用开发的速度和较低的维护成本,但灵活性相对较低。

2022年,由于跨平台应用开发不如本地应用开发灵活,本地应用开发将保持领先地位。22. API技术:REST、gRPC和GraphQL在现代软件开发中并存。通常,现代软件开发以API为驱动。客户端应用程序(网络、移动端)通过调用API与后端应用程序进行交互通信。同时,后端应用也可以通过API调用与另一方进行通信。不同服务之间的通信一直是软件开发行业的一个传统范式,有许多技术可以满足这一要求。然而,在这些技术中,有三种技术表现出色。REST、gRPC与GraphQL。

REST是最早的技术之一,诞生于2000年。它利用互联网和超文本传输协议(HTTP)技术进行客户端和服务器之间的通信。它是被广泛使用且处于成熟阶段的。Google开发了gRPC,作为一种用于服务器之间通信的API,它基于传统的RPC(远程过程调用)技术。在这里,每个要求都被组织成一个函数调用。gRPC与REST使用不同的数据传输方式。REST通常使用文本格式(如JSON或XML)来传递信息,而gRPC则采用基于协议缓冲区的二进制格式。所以,相较于REST,gRPC在服务之间的通信方面更高效和快速。如果数据结构复杂,从网络客户端到服务器的通信就会涉及多次往返。为了解决这一问题,Facebook在2015年推出了GraphQL API。在GraphQL中,每个客户端都可以定义特定用例的数据结构,并在单个请求中检索所有所需数据。从上述内容可以看出,这三种API技术(REST、gRPC、GraphQL)各自都有擅长的应用场景,但也存在一些不那么适用的情况。2022年,开发者和公司也将根据其具体用途选择其中一种。

{呢}

{拍}

2022年软件开发领域的22项趋势预测经历了2020年的灾难性影响,2021年显示出人类的复原与反击能力。

BOB半岛官方

BOB半岛平台


BOB半岛下载

推荐新闻