IT系のアウトプットをすることでより知識が深まってええやーんてことで
気軽にブログ書いていきたいなーと思います。
今回は、私もよく使っていて大好きなnode.js!
プログラムはよく打つけど、実際何がすごいんだっけ?というのを再度整理しようということで以下にざっくりまとめました。
もしこれからプログラミング学びたいよーという方へ、参考になれば嬉しいです♪
目次
・Node.jsとは
・Node.jsの特徴
・Node.jsを使用したWeb開発の利点
・Node.jsが提供する主な便利な機能
・Node.jsを使用した実際のプロジェクトの例
・Node.jsを採用しているIT企業
・Node.jsを使用する際の注意点
・Node.jsを学習するためのリソース
Node.jsとは
Node.jsは、JavaScriptをサーバーサイドで実行するためのプラットフォームです。
(※言語ではありません)
JavaScriptを用いて、Webサーバーやサーバーアプリケーションを構築することができます。また、非同期処理を採用することで、高速でスケーラブルなアプリケーションを構築することができます。
Node.jsの特徴
Node.jsには、次のような特徴があります。
1. JavaScriptをサーバーサイドで実行することができます。フロントエンドのUIフレームワークはJavascript系のフレームワークがよく採用されるためバックエンドで同じ言語を使用することができ、開発効率が向上します。
2. Node.jsは、非同期処理を採用しています。これにより、複数の処理を同時に行うことができ、アプリケーションの実行スピードが向上します。
3. Node.jsは、大量のリクエストをリアルタイムに処理することができます。
スケーラブルなアプリケーションを構築することができます。
(他の言語とは違いノンブロッキングI/O方式という前の処理が完了していない状態でも次の処理を開始できる方式のため)
4. 「C10K問題」を解決できる。
C10K問題とは、一定数を超える同時接続数により、ハードウェアのスペック的には余裕があっても処理が遅くなることを指します。
この問題の原因の1つがプロセス数の上限です。
Node.jsでは、ノンブロッキングI/O方式を採用することで、1つのプロセスで複数の処理を実行することができ、C10K問題の原因を回避することができます。
Node.jsを使用したWeb開発の利点
Node.jsを使用すると、Web開発において次のような利点があります。
・JavaScriptを使用することで、フロントエンドとバックエンドを同じ言語で書くことができるため、Web開発者が習得する必要のある言語が少なくなります。
・Node.jsは非同期処理を扱うことができるため、非常に高いスケーラビリティを実現することができます。これにより、大量のリクエストを処理するWebアプリケーションを作ることができます。
・Node.jsには、多くのパッケージが用意されており、そのパッケージを利用することで、Web開発の効率が向上します。また、Node.jsコミュニティは活発であり、新しいパッケージが頻繁に追加されているため、開発者は常に最新の技術を利用することができます。
・オープンソースであるため、無料で利用することができます。
・Node.jsコミュニティは活発であり、最新の技術やトレンドをすぐに取り入れることができます。他の言語にできてNode.jsでできないことはほぼないです。少なくともweb開発中にNode.jsの進化が遅いなどの理由で困ったことはありません。
・外部サービスのAPIと連携する際、Node.jsに対応したAPIが多いため様々な機能連携を可能にします。そのため、外部連携が豊富なアプリケーションを作りやすいです。
Node.jsを使用した実際のプロジェクトの例
例えば、実際にNode.jsを使用している次のような有名なプロジェクトがあります。
①Paypal
決済サービス「Paypal」のWebアプリケーション開発にはNode.jsが使用されています。サーバー側の開発言語をJavaからNode.jsに切り替えることにより、フロントエンドとバックエンドの開発が同じJavascript言語になったため、開発スピードが向上し、より高い生産性が得られるようになったらしいです。
②Uber
タクシーの配車サービスを提供している「Uber」も基幹システムにNode.jsを使用しています。Uberのサービスは世界中で同時に利用されています。そのため、膨大なネットワークシステムを運用する必要があり、Node.jsが採用されました。
③LinkedIn(モバイル版)
ビジネスに特化したソーシャルネットワーキングサービス「LinkedIn」のモバイル版にもNode.jsが使用されています。以前はRuby on Railsを使用していましたが、アクセスの速度を上げるためにNode.jsに移行されました。
Node.jsを採用しているIT企業
現在ではさまざまなIT企業がNode.jsを採用して開発に取り組んでいます。以下にIT企業をざーっと並べておきます。
○ 合同会社DMM.com
○ 株式会社ディー・エヌ・エー
○ 株式会社サイバーエージェント
○ 株式会社AbemaTV
○ 株式会社Cygames
○ auコマース&ライフ株式会社
○ 株式会社ドリコム
○ SBテクノロジー株式会社
○ アネックス株式会社
○ 株式会社カプコン
○ チームラボ株式会社
○ 株式会社一休
○ さくら情報システム株式会社
○ 株式会社ラクス
○ 株式会社コロプラ
○ 株式会社エイチーム
…etc
参考URL:【2019年完全保存版!】Node.jsを採用して開発している企業・会社一覧 | Offers Magazine
Node.jsを使用する際の注意点
Node.jsを使用する際には、次の点に注意する必要があります。
• Node.jsは、JavaScriptをサーバーサイドで実行するための環境です。そのため、Webブラウザー上で実行されるJavaScriptとは異なる点があるので注意しましょう。
• Node.jsは、イベント駆動型のプログラミングモデルを採用しており、非同期処理が前提となっています。そのため、同期的なプログラミングスタイルで書かれたコードをそのまま使用しても、期待通りに動作しない可能性があります。Promiseやasync,awaitの概念を事前に学習しましょう。
• Node.jsは、イベント駆動型のプログラミングモデルを採用しています。そのため、コードを書く際には、イベントのフローやハンドラーの関係性を理解する必要があります。
• Node.jsは、膨大な数のパッケージやモジュールが利用できます。そのため、依存関係やバージョンの管理を適切に行う必要があります。
Node.jsを学習するためのリソース
以下のリンク先のサイトなどが、Node.jsの学習に役立つかと。
- Node.js公式サイト: https://nodejs.org/ja/
- Node.jsのドキュメント: https://nodejs.org/ja/docs/
- 侍エンジニアさんプログラミング初心者のためのNode.js入門: https://www.sejuku.net/blog/category/programming-language/javascript/javascript-study
- w3schoolsのNode.jsのチュートリアル: https://www.w3schools.com/nodejs/default.asp
- サーバーサイドJavaScriptの基本: https://developer.mozilla.org/ja/docs/Learn/Server-side/First_steps/Introduction
- Express公式サイト 〜Node.js のための高速で、革新的な、最小限のWebフレームワーク〜:
https://expressjs.com/ja/
以上、私の好きなよく使う言語Node.jsについてざっくり箇条書きで紹介してみました。
やはり普段Node.jsをプログラムで使っているけど、こうやってアウトプットするためにまとめると、新たな学びがありますね〜✨
学びたいものをざっくりアウトプットするとよりインプットできるのでいいですね〜^^
Node.js好きな方いらっしゃいましたら開発の雑談など是非しましょう〜♪
ありがとうございました♪
・プログラミング教える3児のパパ
・現役エンジニア(7年くらい)
・エンジニア育成の企業研修講師リピート多数
・焼肉とJavascriptとお酒とアジャイルが大好物
…etc
【SNS】
・twitter
日々、情報収集しているサイトをシェアしたり、僕の考えを軽くつぶやいてます。
ID: @akira_papa_IT
・Facebookページ
自分に関連する重要な出来事(ITや生活など)を書いたり、Youtubeやブログの告知を投稿しています。
ページ名: @あきらパパ【プログラミング教えるパパ】
・Line@
プログラマならではの悩みや相談を受けたり、プログラミングの知識をシェアしています。
公式アカウント名: @あきらパパのIT時短学習部屋
・tiktok
tiktok試しにプログラミング系の話をめちゃ短く軽く喋ってます。
ユーザー名: @akira_papa_it
ぜひフォローお願いしますー♫