ホームページ  >  記事  >  2018年のバックエンド技術分析の概要

2018年のバックエンド技術分析の概要

小云云
小云云オリジナル
2018-02-01 14:01:012128ブラウズ

以前、2018 年のフロントエンド テクノロジーのトレンドの概要を共有しました。今回は、2018 年のバックエンド テクノロジーの分析の概要を共有します。皆様のお役に立てれば幸いです。

Node.js

Node.js も非常に人気があり、人気がありますが、企業のバックエンドの主要なプログラミング言語として Node.js を使用している企業を見ることはまだまれです。 C++、Java、PHP、Python 言語にも、Node.js に似た非同期コールバック モードに基づく Swoole-1.0 など、同様のソリューションがいくつかあります。

その本質的な理由は、非同期コールバックの技術的ソリューションと、それに対して行われたいくつかの最適化ソリューション (Promise、Future、Yield/Generator、Async/Await など) がプログラム開発のスタイルと習慣を変えたことです。これらのテクノロジーを使用したい場合、エンジニアはこれらのキーワードと関数の使用方法をさらに学習する必要があります。

これらの技術的ソリューションの使用は、既存のプログラムと互換性がありません。研究開発費は巨額であり、スムーズな移行は難しいといえる。非同期コールバック技術スタックの人気に影響を与えました。このプログラミング モデルは誰にとっても受け入れがたいものです。

非同期モード

Go 言語はますます人気が高まっており、多くの大手インターネット企業がバックエンドに GO に注目しています。 Java 界隈ではよく知られたサービス指向フレームワークである Dubbo も、非同期モードへの移行を発表しました。これは大きなトレンドであり、非同期モデルは市場で検証され、認識されています。

Web サーバーの選択に関しては、数年前からほとんどの人が同期ブロッキング Apache ではなく、非同期ノンブロッキング Nginx を選び始めました。 Nginx のような非同期プログラムのおかげで、より優れた適応性と強力な同時実行機能を備えています。現在、バックエンドのビジネス開発プログラミングに関しては、強力な技術力を持つチームがテクノロジー スタックを同期モードから非同期モードに切り替え始めています。

同期ブロッキング モードには多くの欠陥があり、同時実行性が弱く、適応性が低く、リクエストが遅いため、サービスが利用できなくなります。たとえば、バックグラウンド インターフェイスでサードパーティ API を呼び出すシナリオでは、同期モードの効果は非常に低くなります。以前は、Java、PHP、C++、Python、Ruby 言語を使用して開発された同期ブロッキング モード フレームワークを使用する人はますます少なくなりました。

Coroutine

コルーチン モードでは、同期ブロッキングの保守性と、非同期ノンブロッキングの高い同時実行機能が考慮されています。将来的にはバックエンド開発分野における主流の技術ソリューションとなるでしょう。

最も重要なことは、コルーチン モードを実行するには既存のプロジェクト コードを少し調整するだけで済み、古いプロジェクトとも完全な互換性があるということです。互換性のために必要なのはフレームワーク層のみです。これにより、チームのスムーズな移行が可能になります。

コルーチン モードを使用すると、開発者は追加のキーワードや関数の使用法を学習する必要がまったくありません。コーディングスタイルは同期モードとまったく同じです。

さまざまなコルーチン技術の中で、<code><span style="font-size: 14px;">GO</span> 是最耀眼的那一个。协程、通道、静态语言、性能、富编译、标准库丰富、生态完整、Google 等,优势太多了。GO 语言,个人认为是目前所有编程语言中,最值得学习的

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

2018 年我重构了 swoole framework 这个很老的项目,底层支持 <span style="font-size: 14px;">Swoole 2.x</span> 协程模式。主要原因是车轮公司内部有很多项目基于这个框架,尤其是服务层全部用了 swoole framework。我们希望业务代码一行不改,可以一键切换为协程模式。理论上其他的同步阻塞 PHP 框架,如 Laravel 、Yii ,都可以实现只修改底层兼容 <span style="font-size: 14px;">Swoole 2.x</span>GOは最も素晴らしいものです。コルーチン、チャネル、静的言語、パフォーマンス、豊富なコンパイル、豊富な標準ライブラリ、完全なエコロジー、Google など、利点が多すぎます。

GO 言語は、現在のすべてのプログラミング言語の中で最も学ぶ価値があると私は考えています

🎜Swoole 2.x🎜🎜 を使用すると、20 年以上の歴史を持つベテランのバックエンド プログラミング言語である PHP にコルーチン機能を持たせることができます。 🎜🎜Go🎜🎜 のようなテクノロジーと比較して、🎜🎜PHP + Swoole🎜🎜 のテクノロジー スタックは、迅速な開発、迅速なイテレーション、ビジネス主導のシナリオにより適しています。 。結局のところ、動的言語は静的言語よりも柔軟で開発効率が高いのです。そして、🎜🎜Go🎜🎜 は、システムレベルのソフトウェアやコアビジネスの作成に適しています。 🎜🎜🎜🎜 2018 年に、非常に古いプロジェクトである Swoole フレームワークをリファクタリングしました。基礎となるサポートは 🎜🎜 Swoole 2.x🎜🎜 コルーチン モードです。主な理由は、ホイール会社内にこのフレームワークに基づいたプロジェクト、特にサービス層がすべて swoole フレームワークを使用していることが多いためです。ビジネス コードが 1 行も変更されず、ワンクリックでコルーチン モードに切り替えられることを願っています。理論的には、Laravel や Yii などの他の同期ブロッキング PHP フレームワークは、プロジェクト コード内でコルーチン モードのシームレスな切り替えを実現するために、基盤となる互換性のある 🎜🎜Swoole 2.x🎜🎜 コルーチンを変更することしかできません。 🎜🎜🎜🎜 コルーチンを使用した後、システム全体のパフォーマンス、同時実行性、安定性が大幅に向上しました。以前は、リクエストが遅いとサーバー全体がオンラインで停止することがよくあったという問題はもう存在しません。 🎜🎜

PHP & Swoole

Swoole 2.0 はまだ 2 年も経っていませんが、Go 言語の 10 年間の努力に比べれば、まだまだ長い道のりです。ただし、GO のような静的言語と比較すると、PHP はよりシンプルで使いやすく、より柔軟に使用できるという利点があります。

もちろん、新しいプロジェクトの場合は、<span style="font-size: 14px;">Swoole 2.x</span>Swoole 2.x 用に特別に設計されたフレームワークである Swoft を使用することをお勧めします。より良い安定性。

Swoole 2.0 コルーチンのおかげで、私たちは PHP の将来にまだ自信を持っています。


関連する推奨事項:

19 の便利な JavaScript 略語テクノロジーの共有

Web 開発者が 2018 年に知っておくべきテクノロジートレンドの分析

PHP テクノロジーの改善の経験と方法


🎜
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。