关于2018年后端技术分析总结

前面我们和大家分享过2018年的前端技术趋势总结,本文我们针对后端再和大家分享一下关于2018年后端技术分析总结,希望对大家有用。

Node.js

虽然 Node.js 也很热门,很流行,但仍然很少见到企业将 Node.js 作为公司后端方面的主要编程语言。C++、Java、PHP、Python 语言同样也有一些类似的方案,包括 Swoole-1.0 也是基于类似于 Node.js 的异步回调模式。

本质原因是异步回调的技术方案,以及在它之上所做的一些优化方案,包括 Promise、Future、Yield/Generator、Async/Await 等,改变了程序开发的风格和习惯。如果要使用这些技术,那么工程师需要额外学习这些关键词和函数的使用方法。

使用这些技术方案是无法兼容已有程序的。可以说研发成本巨大,难以平滑过渡。影响了异步回调技术栈的普及。这种编程模式很难让所有人都接受。

异步模式

Go 语言越来越热门,很多大型互联网公司后端正在转向 GO 。Java 圈知名的服务化框架 Dubbo 也宣布转型异步模式。这是一个大趋势,异步模式已经被市场验证和认可。

在 Web 服务器选择上,几年前大部分人就开始选择异步非阻塞的 Nginx,而不是同步阻塞的 Apache。就是因为 Nginx 这样的异步程序,它的适应性更好、并发能力更强。现在在后端业务开发编程方面,技术力量强的团队已经开始将技术栈从同步模式切换为异步了。

同步阻塞模式存在较多缺陷,并发能力弱、适应性差、慢速请求导致服务不可用。如:后台接口中调用第三方 API 的场景,同步模式效果极差。过去那些使用 Java、PHP、C++、Python、Ruby 语言开发的同步阻塞模式框架,用的人越来越少。

协程

而协程模式,兼顾了同步阻塞的可维护性和异步非阻塞的高并发能力。将会成为未来后端开发领域的主流技术方案。

最重要的,协程模式只需要对已有项目代码进行少量调整就可以运行起来,甚至可以完全兼容老项目。只需要框架层进行兼容即可。这使得团队可以平滑过渡。

使用协程模式,开发者完全不需要学习额外的关键词和函数用法。编码风格与同步模式下是完全一致的。

各种协程技术里,GO 是最耀眼的那一个。协程、通道、静态语言、性能、富编译、标准库丰富、生态完整、Google 等,优势太多了。GO 语言,个人认为是目前所有编程语言中,最值得学习的

Swoole 2.x 让 PHP 这门 20多年历史的老牌后台编程语言也能有协程的能力。相比 Go 这样的技术,PHP + Swoole 的技术栈,更适合快速开发、快速迭代、业务驱动的场景。毕竟动态语言比静态语言还是要更加灵活、开发效率更高。而 Go 更适合编写系统级软件、核心业务。

2018 年我重构了 swoole framework 这个很老的项目,底层支持 Swoole 2.x 协程模式。主要原因是车轮公司内部有很多项目基于这个框架,尤其是服务层全部用了 swoole framework。我们希望业务代码一行不改,可以一键切换为协程模式。理论上其他的同步阻塞 PHP 框架,如 Laravel 、Yii ,都可以实现只修改底层兼容 Swoole 2.x 协程,实现项目代码无缝切换协程模式。

使用协程后,整个系统的性能、并发能力、稳定性有了巨大提升。过去,线上经常出现一个慢请求导致整个服务器卡住的问题不存在了。

PHP & Swoole

虽然 Swoole 2.0 只有不到两年的历史,相比 Go 语言 10 年的耕耘,还有很长一段路要走。但相比 GO 这样的静态语言,PHP + Swoole 还是有很多优势的,PHP 更加简单易用,PHP 是动态语言,使用起来更加灵活。

当然,如果是新项目还是推荐使用 Swoft 这个专门为 Swoole 2.x 的框架,它的历史包袱更少,因此稳定性更好。

现在有了 Swoole 2.0 协程,我们对 PHP 的未来仍然充满信心。

相关推荐:

19 个 JavaScript 有用的简写技术分享

2018年web开发者不得不知的技术趋势分析

php技术提升心得与方法

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2594926.html

(0)
上一篇 2025年3月6日 17:41:24
下一篇 2025年3月6日 17:41:31

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • PHP中如何使用Redis技术?

    redis是一种高性能的内存数据存储系统,允许作为缓存系统使用,也可以作为一个发布/订阅系统、消息队列、计时器等等。随着web应用程序的高速发展,redis已经成为广泛使用的缓存、数据库和消息队列。php是一种使用广泛的编程语言,也可以和r…

    编程技术 2025年3月6日
    200
  • C++中的目标检测技术

    c++++是一种广泛使用的编程语言,也是实现目标检测技术的重要工具。目标检测是计算机视觉领域的一个重要研究方向,它可以识别图像中的特定物体,并能够对物体进行定位和分类。在c++中使用目标检测技术,既可以加速算法的处理速度,又可以深化对物体识…

    编程技术 2025年3月6日
    200
  • C++中的日志管理技术

    在软件开发过程中,日志管理是一个必须考虑的重要因素,尤其是在c++++语言中。c++是一种强类型的、高效的面向对象程序设计语言,支持泛型编程和模板,它广泛应用于操作系统、网络通讯、游戏开发等方面。在c++应用程序的开发过程中,开发人员经常需…

    编程技术 2025年3月6日
    200
  • C++中的内存管理技术

    在c++++编程中,内存管理技术是一个十分重要的话题。正确地使用内存管理技术可以帮助我们写出高效且健壮的程序,避免出现内存泄露和野指针等问题。本文将介绍c++中的主要内存管理技术,包括: new/delete运算符 C++中的new和del…

    编程技术 2025年3月6日
    200
  • C++中的字符串查找技术

    在C++中,字符串查找技术是一项非常重要的技能,因为它是处理字符串操作中的必需技能之一。C++提供了多种内置函数和算法来帮助我们进行字符串查找,这些函数和算法提供了一组通用的技能,可以在多种不同的情况下进行使用。 本文将介绍几种常用的C++…

    2025年3月6日
    200
  • C++中的机器翻译技术

    C++一直以来都是软件开发的利器,不仅仅限于系统软件的开发,也广泛应用于人工智能的开发。机器翻译就是其中的一项重要应用。本文将从C++中机器翻译技术的基本原理、实现方法、现状以及未来展望等方面进行阐述。 一、基本原理 机器翻译的基本原理是通…

    2025年3月6日
    200
  • C++中的语音识别技术

    语音识别技术是一种可以将人类语言转换成计算机可识别的文本信息的技术。随着科技发展,特别是人工智能技术的日益成熟,语音识别技术越来越应用于日常生活中。C++是一种流行的编程语言,而且C++也可以用于开发语音识别系统。本文将介绍C++中的语音识…

    2025年3月6日
    200
  • C++中的情感分析技术

    在当今的信息时代,我们日常生活中产生并积累了大量的文字数据。这些数据包含丰富的社交媒体、新闻报道、信息评论等等。对这些文字数据进行情感分析,从而获取用户对某些信息的情感评价,可以帮助我们更好地了解用户需求、调整营销策略、提高客户满意度等等。…

    2025年3月6日
    200
  • C++中的JIT编译技术

    C++中的JIT编译技术 随着软件技术的发展,编译与解释两种运行程序的方法已经成为了常见的程序执行方式。C++作为一种编译型语言,其设计初衷是为了快速执行效率高的程序。然而,C++也可以使用JIT(即时编译)技术来提高运行效率。 JIT编译…

    2025年3月6日
    200
  • C++中的推荐系统技术

    推荐系统技术在今天的社会中已经成为了一个不可或缺的部分,它通过分析用户行为和需求,为用户推荐更加符合他们兴趣和需求的内容。在这些技术中,C++是最流行和广泛使用的一种编程语言,因为它可以提供更好的性能和灵活性。在本文中,我们将探讨C++中的…

    2025年3月6日
    200

发表回复

登录后才能评论