Node.js-リーダーシップ説得ガイド

翻訳者から:私はNode.jsを詳しく調べ始めたばかりで、このマニュアルを見つけたとき、以前は目を引いていなかったことを後悔しました。 この翻訳が多くの人がNodeが何であり、それが何で食べられるかを理解するのに役立つことを願っています。



Node.jsを試すかゆみはすでにありますか?ボスの処理を開始する時ですか? 時間をかけてください! Node.jsが適切かどうかについてアドバイスした一部の企業にとって、正しい答えは「いいえ」でした。



このガイドは、社内でNodeを使用するのが理にかなっているか、もしそうなら、当局を説得する方法を知りたい人のための個人的な経験に基づいた一連のヒントです。





悪いオプション



重い計算


Node.jsは大好きですが、その使用が無意味な場合がいくつかあります。 これらの中で最も明らかなのは、非常に長い複雑な計算と少数のI / O操作を伴うアプリケーションです。 したがって、ビデオトランスコーダー、人工知能、またはその他の種類のデジタルグラインダーを作成する場合は、Node.jsを使用しないでください。 これは原則として可能ですが、C / C ++で記述する方が適切です。



一方、node.jsを使用すると、C ++でアドオンを簡単に作成できるため、もちろん、最高機密アルゴリズムの上でスクリプトエンジンとして使用できます。



シンプルなCRUD / HTMLアプリケーション


Node.jsは最終的にあらゆる種類のWebアプリケーションのクールなツールになる可能性がありますが、PHP、Ruby、Pythonよりも多くの利点が得られることを期待しないでください。 はい、アプリケーションはわずかに優れたスケーラブルであることが判明する場合がありますが、大量のトラフィックフローを処理できるという事実は、ノードを使用したという事実からのみこのフローが突然増加することを意味しません。



Node用の優れたフレームワークがすでに登場しているという事実にもかかわらず、Rails、CakePHP、またはDjangoに近いものはまだありません。 アプリケーションが主にHTMLテンプレートにデータベースのデータを入力することに従事している場合、Node.jsは具体的なメリットを提供しません。



NoSQL + Node.js +ファッショナブルなゴミ


将来のアプリケーションのアーキテクチャがNoSQL Cuisineシリーズのレシピコレクションに似ている場合は、息を吐き、一時停止し、次の段落を読んでください。



はい、Redis、CouchDB、Cassandra、MongoDB、Riakなどは非常に魅力的です。 イブが誘惑されたリンゴについて。 Node.jsを使用するリスクはすでにありますが、別の新しいテクノロジーでこのリスクを悪化させるべきではありません。



もちろん、ドキュメント指向のデータベースを支持する多くの議論を見つけることができますが、アプリケーションが利益を上げる必要がある場合、実証済みのテクノロジー(PostgresまたはMySQL)を使用することの信頼性は、ギークのようなFAQを上げて友人に見せびらかす機会よりも重要です。



良いオプション



JSON API


Node.jsは、軽量なREST / JSONインターフェースの構築に見事に対応しています。

ノンブロッキングI / OおよびJavaScriptにより、Nodeは、クライアントとJSON形式で通信するデータベースまたはWebサービスのラッパーを作成するための優れたオプションになります。



シングルページアプリケーション


Gmailのような複雑なAJAXアプリケーションを作成している場合、Nodeも非常に優れています。 ブラウザーでほとんどの作業を行う最新のWebアプリケーションの場合、数千の要求を同時に処理でき、応答時間が短いサーバーは優れています。 検証など、サーバーとクライアントで同じコードを再利用する機能もプラスです。



コマンドラインツールを使用する


Node.jsはまだ非常に若いですが、彼に必要なものをすべて書きたいという誘惑があります。 しかし、既存のコマンドラインツールの膨大な選択を使用する方がはるかに有益です。 Nodeは何千もの子プロセスを生成し、その出力データストリームを操作することができます。これにより、車輪の再発明を望まない人々に深刻なメリットをもたらすことができます。



ストリームデータ処理


従来のWebアプリケーションスタックは通常、HTTPリクエストとレスポンスをアトミックイベントとして扱います。 しかし、これらは実際にはスレッドであり、Node.jsアプリケーションはこの事実を利用できます。 素晴らしい例は、サーバーへのアップロード中にファイルを処理したり 、異なるレイヤー間でデータを転送したりすることです。



ソフトリアルタイムシステム


Node.jsのもう1つの優れた機能は、ソフトリアルタイムシステムを簡単に作成できることです。 Twitter、チャット、スポーツイベントへの賭け、IMプロトコルへのインターフェースなどを意味します。



注意してください! これはJavaScriptであり、ガベージコレクターがウェッジする場合(応答するJavaScriptの実行スレッドをブロックする場合)、応答時間は大きく異なる可能性があります。 そのため、保証された応答時間でNodeにハードリアルタイムシステムを構築しようとしないでください。 これにはErlangの方がはるかに優れています。



当局を説得するには?



Node.jsが適切であると確信できたので、今度は上司にそれを試してもらうよう説得してください。



プロトタイプを作成する


攻撃を開始する最良の方法は、システムのプロトタイプまたはその一部を1週間で提案することです。 通常、上司は彼に何の義務も負わないため、簡単に同意します。



作業用のプロトタイプとテスト結果が手元にある場合、これらはすでにNode.jsを支持する説得力のある議論です。



開発者はどこで入手できますか?


JavaScriptをどう考えても、それは普遍的な使い捨てWebプログラミング言語になります。 1つまたは複数のJavaScriptインタープリターがブラウザーの一部としてほぼすべてのコンピューターで利用可能であり、Web開発者はほとんど確実に小さなJavaScriptを知っています。



これは、労働市場のあらゆる好みや色に対応する膨大な数のプログラマーを意味します。おそらく、あなたの会社にはすでに適切な人材がいます。 したがって、積極的に採用している成長中の会社で働いている場合、これはNode.jsを支持するもう1つの議論です。



アクティブなコミュニティ


Node.jsコミュニティは現在、途方もない速度で成長しており、業界で最高の開発者を惹きつけています。 これは、Nodeエコシステムが成長していることを意味し、無料または商用ベースでサポートを取得することが容易になっています。



性能


この引数は強制しないほうがよいですが、アプリケーションのパフォーマンスが重要な場合は、Node.jsが提供するものがあります。 Googleの基盤となるNode V8エンジンは、すでに非常に高速で毎日改善されています。これは、ブラウザー市場の5つの主要プレーヤー(Mozilla、Google、Apple、Microsoft、Opera)が競合他社よりも優れたJavaScriptエンジンを作成するために努力しているためです



ノンブロッキングノードI / Oモデルも考慮する場合、遅いアプリケーションを作成する必要があります。 ほとんどのNodeアプリケーションは、完全に通常のハードウェア上で数千の同時接続を簡単に処理できます。



大企業のサポート


若いオープンソースプロジェクトを使用する場合のリスクの1つは、著者からの長期的な保証がないことです。 しかし、これはNode.jsの問題ではありません。 Joyentは Ryan Dahlと他のいくつかの主要なNode開発者を雇い、プロジェクトを後援しているため、Node.jsの将来は深刻な経済力によって保証されています。



これは主に、Yahoo! HPはすでに新製品でNodeを使用することを決定しているため、例として挙げて上司に自信を持たせることができます。



クライアントを説得する方法は?



あなたがフリーランサーであるか、注文するウェブサイトを作っている小さな会社で働いているなら、あなたは少し違ったやり方で異なった行動をし、顧客を説得する必要があります。 結局のところ、彼らはあなたの決定に非常に依存しており、あなたが書いたアプリケーションをサポートすることを願っています。



私のアドバイスは、より保守的で、Nodeが本当に彼らに合っているかどうかをより良くチェックすることです。 その場合は、サポートするのに十分な時間とリソースがあることを確認してください。 Nodeの新しいバージョンが頻繁にリリースされます。3〜6か月ごとに更新する必要があることを考慮する価値があります。



Twitterとautra ブログ



All Articles