質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Q&A

3回答

2599閲覧

チャットアプリのサーバー運用について

msssss

総合スコア64

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

0グッド

2クリップ

投稿2020/02/26 21:40

node.jsで簡単なチャットアプリを作成したのですが、もしLINEのような大規模アプリの場合、チャットサーバーはnode.jsで大丈夫なんですか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

何も問題ありません。
理由は2つ

  • ベンチャー: 開発速度の為にスクリプト言語を選ぶという選択をすべき
  • 大企業: TypeScriptがあるから型の問題は解決

Webサービスを成功させる最も重要な要素は開発スピードです。
自分が得意とする言語、最も作業が早い言語で開発するべきです。

Webサービスは基本的に一山当ててやるぞという意気込みでやるものですが、
実際にはポシャって消えるサービスの方が大量にあるので、
作っては壊してを繰り返して大量にサービスを作る事になります。

実際に人気アプリを生み出した例はいくつかあるので、私の知っている範囲で紹介します。
共通しているのは「速度面での問題が出てきてから高速な言語に乗り換える」ということです。


業務用チャットアプリのChatworkは初期はPHPで開発しており、
規模が大きくなって速度面での問題が浮上し始めたので、
ScalaというJVM使う言語に切り替えたということで勉強会で発表していました。

他にもTwitterは初期はRubyで開発しており、
速度面での問題が浮上してからこれまたScalaに乗り換えました。
Twitter社は他にも色々やってますね。

Facebookは初期PHPで開発され、
これまた人気爆発したら速度面での問題が出ました。
ユニークなのはPHP言語をC言語にコンパイルし直すというメタプログラミングで押し切るという選択ですね。

ニコニコ動画は初期からC++ですが、
開発陣のリーダー的存在の方がC++なら俺に任せろレベルの人だったので、
最初からトラフィックの問題も出るだろうしC++で良くね?という判断をしただけのようです。
(社内ではScalaの人やNode.jsの人も抱えて手広く試していたみたいですね)


因みにコンパイル言語とスクリプト言語では20倍程の差がありますが、
客が20倍に増えたら20台のマシンを並列で動かして捌けばいいんですよ。

参考記事: ロードバランシング - e-words

Amazon AWS等のクラウドサービスでは負荷に応じてサーバ台数を増減出来ますので、
まず金を生むサービスを生み出してから、高速な言語に切り替えてコストカット
これを徹底すべきです。


大企業での発想は「分業」です。
完成済みの仕様書や設計書が配布され、それを元にモジュールを開発する形になります。

なので静的な型を持つ言語が採用されるケースが多いですね。
Java系(ScalaやKotlin含む)やC#が好まれる傾向にあります。

Node.jsは中身がJS(動的型付け)で一見敬遠されそうですが、
マイクロソフト社が出している次世代JavaScriptを謳っているTypeScriptという言語があります。
これはJavaScriptのスーパーセットであり、型を付与して開発出来るので大規模開発にも対応出来るという側面があります。

Webサービスならフロント側のJavaScriptからは逃げられないので、
フロントを大規模開発でやるなら大流行して一人勝ちしているTypeScriptを選択するのは自然でしょう。
だったら裏側のバックエンドもTypeScript + Node.jsで良くね?
……という発想で選ばれる可能性は非常に高いでしょうね。

つまり二重の意味でNode.jsで問題ないよねと思ってます。

投稿2020/02/27 03:03

編集2020/02/27 03:06
miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

node.jsで簡単なチャットアプリを作成したのですが、もしLINEのような大規模アプリの場合、チャットサーバーはnode.jsで大丈夫なんですか?

大丈夫と言えば大丈夫ですが、ダメと言えばダメです。

要件や予算や期間次第です。

投稿2020/02/26 23:51

kyoya0819

総合スコア10429

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

大丈夫かどうかは知りませんが、LINE は Java がメインみたいですね。

投稿2020/02/26 22:23

nskydiving

総合スコア6500

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問