ホームページ  >  記事  >  ウェブフロントエンド  >  Nodejsを学ぶ目的は何ですか?

Nodejsを学ぶ目的は何ですか?

藏色散人
藏色散人転載
2022-08-08 10:50:092174ブラウズ
フロントエンドの知識は更新が早いので、疑問を持つ人が多いのですが、開発ではノードを全く使っていないようなのに、なぜ学ぶ必要があるのでしょうか?

実際には、node を学ばなければならないという意味ではありませんが、職場でのより良い開発、特により高度なプログラミング的思考を学ぶためには、node を学ぶことが必要です。

以下は、node の学習の必要性について詳しく説明します[推奨事項: node.js ビデオ チュートリアル]

1.node.jsは最も基本的な機能です。機能はブラウザなしで js を実行できるようにすることです。node をよく学べば、もはや「純粋なフロントエンド」にはなれません。#2。nodejs の学習はフロントエンド エンジニアリングの基礎です ( NodeJS Stream)
3. ノードをよく学ぶと、サーバー側 API を作成して独立した開発プロジェクトを実装できるようになります
4. 中間層として (詳細な質問: 中間層とは何ですか?)

中間層 (BFF) はアプリケーション層とも呼ばれ、アーキテクチャ内のサービスです。 層 (Java) とクライアントの間の主な機能:

    クライアント要求の受信
  • HTML ページのレンダリング
  • Bigpipe、Comet、Socket
  • マージ インターフェイス リクエスト
  • ルートのカスタマイズ
  • データ キャッシュ
#では、なぜフロントエンドは独自の API を記述する必要があると言われているのでしょうか?

1. 古典的な 2 層構造: フロントエンド サーバー

2. 3 層構造: フロントエンドおよびバックエンド サーバー (現在の中規模および大規模プロジェクトで使用されている構造)

3 層構造のサーバー側は、データベースの操作、データの管理
、バックエンドへのデータの返却のみを担当します。基本的に純粋なデータであり、データ サービスは含まれません。
バックエンドはフロントエンドが開発されている場合は、フロントエンドの学習コストが最も低いため、nodejs を優先します。

キャリアポジションが純粋なフロントエンドを生涯続けることである場合、nodejs を学ぶ必要はありませんが、実際には、純粋なフロントエンドを生涯続けるのは困難です一般的に、35歳になると、あなたの能力は「レンガを動かす」だけになり、職場での価値はどんどん低くなっていきます。

CTO は多くの場合、サーバーサイド エンジニアによって務められます


理由:

1. 会社全体の技術アーキテクチャを設計する必要があります

2。この問題はグローバルな観点から検討する必要があります

3. 会社の最も重要な資産であるデータを管理する必要があります (データを管理している人には発言権があります)

ノードをよく学習するということは、 CTOになることもできますが、少なくともフロントエンドの職場のステータスを大幅に向上させることができます。

技術的に言えば、自分の能力を使って自主的にプロジェクトや製品を完成させることは、非常にやりがいのあることです。


上記の理由をすべて排除したとしても、純粋なフロントエンドとして、ラーニング ノードにはプログラミング的思考を養い、問題について考える視野を広げることができるという大きな利点もあります。

NodeJ の長所、短所、および適用可能なシナリオ

NodeJ の 2 つの主要な特徴: イベント駆動型、ノンブロッキング I/O

したがって、この 2 つはNodeJs の最大の利点

1. 高い同時実行性の処理 他のバックエンド言語と比較して、各接続は NodeJS エンジン プロセスで実行されるイベント (Event) を発行し、接続ごとに生成するのではなくイベント キューに入れます。 . 新しい OS スレッド (およびそれにサポートするメモリを割り当てます)
2. I/O 集約型アプリケーション

JavaScript のシングルスレッドの性質のため、NodeJs は CPU 集約型アプリケーションには適していません; CPU 負荷の高いアプリケーション Node に生じる主な課題は次のとおりです: JavaScript のシングルスレッドの性質により、長時間実行される計算 (大規模なループなど) がある場合、CPU タイム スライスが解放されず、後続の I/ O を開始できません;

解決策 ソリューション: I/O 呼び出しの開始をブロックせずにコンピューティングをタイムリーに解放できるように、大規模なコンピューティング タスクを複数の小さなタスクに分解します。 NodeJs に適用できるシナリオ

:

RESTful API これは、NodeJS にとって最も理想的なアプリケーション シナリオです。数万の接続を処理できます。多くのロジックはありません。必要なのは、API をリクエストして、返すデータを整理することだけです。基本的には、データベースからいくつかの値を検索し、それらを応答に組み立てるだけです。応答は少量のテキストであり、受信リクエストも少量のテキストであるため、トラフィックは高くならず、最も多忙な企業の API ニーズも 1 台のマシンで処理できます。

  • Web アプリケーションの UI 層を統合する
    現在の MVC アーキテクチャ、つまり Web 開発には 2 つの UI 層があり、1 つは最終的に表示されるブラウザーにあり、もう 1 つはサーバー側で、ページの生成と結合を担当します。


  • 大量の Ajax リクエストを含むアプリケーション

    たとえば、パーソナライズされたアプリケーションでは、各ユーザーに異なるページが表示され、キャッシュが無効であり、Ajax を開始する必要があります。リクエスト、NodeJS は大量の同時リクエストに応答できます
  • つまり、NodeJS は同時実行性が高く、I/O 集中型で、少量のビジネス ロジックを使用するシナリオでの使用に適しています


以上がNodejsを学ぶ目的は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjianshu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。