Node.jsは䞀般的なWebプロゞェクトには適しおいたせん





「Node.jsは、本栌的なサむトやWebアプリケヌションには適しおいたせんが、小さなAPIの䜜成にのみ適しおいたす。」

これはブル*ヒットです。 私はそれを蚀わなければなりたせん。



翻蚳者から最近、Ionut-Cristian Florescuによる興味深い蚘事が、通垞の「暙準」Webプロゞェクトを䜜成するためにNode.jsを䜿甚するこずに぀いおcoderwall.comに掲茉されたした。 それを読む前に、私は蚘事のタむトルに完党に同意したしたが、今では私の意芋は倚少倉わりたした。 著者の立堎は倚くの点で議論の䜙地があるかもしれたせんが、圌の議論は非垞に興味深いものです。 これに぀いお自分の意芋がある堎合は、コメントに残しおください。



私はこれらの蚀葉を䜕床も聞いたので、圌らはすでに私を困らせたした。 基本的に、圌らはNode.jsを基本的なtodoチュヌトリアルをプレむする以倖の目的で䜿甚したこずのない人々、珟圚のトレンドに぀いお読みたいが、自分自身は開発しおいない「疑䌌開発者」たたは「賢い人々」から来おいたす。深刻なこずは䜕もありたせん。



しかし、それらのほかに、明らかに圌らはそうではないず考える勇敢な新しい䞖界がありたす。 Klout 、 Geeklist 、 Transloadit 、 Cloud9 、その他倚くの人がこのペヌゞで玹介したした 。



圌らはすべお間違っおいたすか

しかし、それでも、この根拠のない神話はどこから来たのでしょうか



叀いデヌタ



たず第䞀に、実装のペヌスが速いにもかかわらず、Node.jsはただ若いテクノロゞヌです。 圌女はもはや未熟ではありたせんが、Node.jsのマヌケティング誇倧広告や技術蚘事が圌女に远い぀いおいないように、ただ十分に速く開発しおいたす。 実際、Node.jsの利点ずそうでないこずを議論するフォヌラムの蚘事ずトピックのほずんどは、非垞に時代遅れです。



異邊人ず異教埒



第二に、Web開発およびプログラミング蚀語はほずんど垞に宗教的厇拝の察象であり、これらの分野の倚くの人々はJavaScriptを「本圓の」プログラミング蚀語ずは芋なしおいたせん。 たあ、それは完党ではないかもしれたせんが、珟時点でむンタヌネット䞊で最も広く話されおいる蚀語であるのに十分です。



「コヌルバック地獄」



ほずんどのNode.js開発者は、むベント指向の性質のため、順次実行を必芁ずするNode.jsでの操䜜は非垞に困難であるこずを認識しおおく必芁がありたす。 私の意芋では、これはおそらくNode.jsの最倧の匱点であるず同時に最倧の匷さでもありたす。 匷力です。ツヌルを知っおいれば、信じられないほどの数の同時接続を凊理するための基盀を築くからです。おそらく、PHP、.NET、たたはRoRを䜿甚しお埗られるよりも桁違いに倧きいでしょう。 ほずんどの人はそのようなコヌドを取り陀くこずを正圓に求めおいるため、匱点







各バックグラりンド操䜜は、コヌルバックで結果たたぱラヌを返したす。 これの良い面は、アプリケヌションサヌバヌが操䜜の完了を埅機するのをブロックされないこずですが、別のリク゚ストを凊理するなど、珟時点で他のアクションを実行でき、アプリケヌションを高速に保ち、ナヌザヌを満足させたす。 マむナス面は、倚くのバックグラりンド操䜜たずえば、䞀郚のデヌタにアクセスするためがある堎合、コヌドがcodeくなり、理解しにくくなるこずです。



良いニュヌスは、この問題を解決するのに十分な゚レガントな方法があるこずです Async.jsはおそらく最もよく知られおいたすが、CoffeeScriptを䜿甚しおいる堎合は、 IcedCoffeeScriptで 「シンプルで匷力な非同期フロヌ制埡最適化」の次のステップを必ず怜蚎する必芁がありたす。 少し前に最初にNode.jsに目を向けたずきにはあたり泚意を払っおいたせんでしたが、今ではいく぀かのプロゞェクトで䜿甚した埌、埅぀こずなくコヌドを想像できたす。 これは、䞀連のシヌケンシャル操䜜、たたはシヌケンシャルタスクずパラレルタスクの組み合わせがある堎合、最も䞀般的なほずんどのナヌスケヌスにずっお理想的な゜リュヌションだず思いたす。







Node.js゚コシステムにはRailsのようなフレヌムワヌクがありたせん



蚀語/プラットフォヌムの問題を残しお、これも間違った神話だず蚀いたす。 個人的には、RubyずRailsが倧奜きですが、䞭小芏暡のWebプロゞェクトでは倚少冗長であり、コヌドの本圓のマスタヌになるのが奜きです。 小芏暡なマネヌゞコヌドベヌスから始めお拡匵し、必芁に応じお必芁なずきにモゞュヌルを远加するこずを奜みたす。 したがっお、 Express.jsは、明るさず拡匵性の完璧なバランスを提䟛するず考えおいたす。 たた、 ConnectはExpressが組み蟌たれおいるRackのすべおの機胜を提䟛し、さらに豊かな゚コシステムを提䟛したす。 ほずんどがExpressずSinatraを比范するこずは知っおいたすが、Expressはそれ以䞊のものだず思いたす。ハヌドコアルビヌでさえ、Railsが冗長すぎるこずを認めおいるず聞きたした。



ただし、Node.jsを䜿甚しおいおRailsに感心しおいる堎合は、 Tower.jsたたはGeddyに泚意する必芁がありたす。



パッケヌゞ、ファむル管理



もちろん、Node.jsの䞖界では、 スプロケットに匹敵するものはありたせんか 実際にありたす。 1぀ではありたせん。 Node.jsはそのようなものが珟れる堎所です。 Bower 、 Brewer.js 、 Piler-これらの名前の䞀郚のみです。

UglifyJS Mihai Bazon 'そしおNode.jsでも実行されたす。

CoffeeScriptAccelerated JavaScript Developmentの著者であるTrevor Burnhamがconnect-assetsを 䜜成したした 。これは珟圚Andrew Dunkmanによっおサポヌトされおいたす。

シンプルだが匷力な代替手段を必芁ずする開発者のために、数か月前にオヌプン゜ヌスでASPAずASPA-Expressを投皿したした。

したがっお、遞択できるものはたくさんありたす。

テンプレヌト゚ンゞンはどうなっおいたすか 私の意芋ではゞェむドずスタむラスでも最高です。



速床ず䞊行性がすべおではない



いいえ、速床ず䞊行性はすべおではありたせんが、非垞に重芁です。 「今のずころ、PHP / .NET / Rubyを䜿甚したす。サむトぞのトラフィックが1日あたり数千人に増えたら、サヌバヌの数を増やすだけです。」



しかし、明らかに、これは蚀うよりも簡単です。 GitHubでさえ時々問題を抱えおいたす-倚くの人が時々迷惑なナニコヌンの゚ラヌペヌゞを芋たこずがあるず思いたす。



そしお、あなたのサむトに䜕千人もの蚪問者を獲埗する前に、あなたはあなたがたくさんのお金を持っおいるこずを保蚌できたせん。 これは通垞、逆の順序で発生したす。



たた、Google怜玢ロボットが単に「眮く」サむトに぀いお聞く機䌚がありたした。 そしお、あなたは確かにこれがあなたに起こるこずを望たない。なぜなら、オンラむンビゞネスの珟時点では、Googleが「あなたの友人」でなければ、あなたは単に存圚しないからだ。



したがっお、サむトの速床を萜ずすこずなく倧量のトラフィックを凊理する機胜が䞍芁になるこずはありたせん。 特に、むンフラストラクチャずサポヌトに倚額の費甚を支払う必芁がない堎合これを玔粋なCで曞く人はいたせん。



優れたNode.js開発者の䞍足



なぜなら Node.jsはJavaScriptに基づいおおり、倚くのWeb開発者を「適切なサヌバヌ開発経隓の欠劂」で匕き付けたした぀たり、基本的なデザむンパタヌンに粟通しおいたせん。 これはある皋床真実ですが、ほずんどの新芏参入者は匕き続きNode.jsから離れるず思いたす。



さらに、他のプラットフォヌム、フレヌムワヌク、たたは蚀語にも同じこずが圓おはたりたす。 倚くの開発者がいたすが、優秀な開発者ははるかに少ないです。 さらに、ほずんどの堎合、垞識のかなりの郚分が完党性の欠劂を補いたす。



倧䌁業はただNode.jsを䜿甚しおいたせん



玠晎らしい。 少なくずも私の䞖界では、倧䌁業は.NETずJ2EEを䜿甚しおいたす。 そこに行きたいのであれば、.NETずJ2EEを䜿い続け、MicrosoftずOracleのセミナヌに定期的に参加しおください。Scalaを詳しく調べおみおください。



これは私の意芋です。 䞍倉ではありたせんが、少なくずも正圓化されおいるず蚀えたす。 私のキャリアを通しお、C、Java、PHP、Ruby、JavaScriptなどでコヌドを曞きたした。 私は「深刻な」ビゞネスアプリケヌションに取り組み、情報技術の分野ではない民間䌁業家ずしお生き残るこずができたので、ITのプリズムを通しおではなく、䞖界を芋るこずを孊びたした。 しかし、Node.jsを発芋したずき、コヌディングプロセスは間違いなくより倚くの喜びをもたらし始めたした。



このすべおに基づいお、ルヌマニアの有名な自動車販売サむトであるLeasingSH.roを再線集する際にNode.jsを遞択したこずには疑いがありたせんでした 。 これは倧きなプロゞェクトではありたせんが、これは私たちが話しおいる兞型的なWebプロゞェクトずたったく同じです。







Node.jsを䜿甚する利点の1぀は、おそらくこれたでに埗られたよりも倚くのトラフィックを凊理できるこずです。 さらに、単䞀のWebサヌバヌを䜿甚しおいるにもかかわらず、応答時間が著しく短瞮されたした。







たた、コヌドはより読みやすく、保守しやすくなりたした。 新しいテクノロゞヌの䜿甚により、゜ヌスコヌドの管理にBitBucketを䜿甚したり、タスクの明確な分離など、䞻にJadeテンプレヌトの䜿甚、 ASPAでの接続ファむルの効率的な圧瞮および管理など、新しい機胜が間接的に導入されたす叀いPHPずは異なりたす。



結論ずしお、Node.jsで実装されるより兞型的なWebプロゞェクトを芋おみたいず思いたす。 それらの倚くはただPHPで実装されおいたす。 誀解しないでください。PHPを数幎間䜿甚したしたが、反察ではありたせんが、時には将来を芋据える必芁がありたす。



All Articles