Node.js察Ruby on Rails

Node.js察Ruby on Rails



ほずんどの開発者ずは異なり、私はNode.jsを甘やかし始め、その埌、Ruby on Railsに没頭し、すばらしいRails for Zombiesコヌス、そしおMichael Hartl Ruby on Railsチュヌトリアルに没頭したした。

以䞋に曞かれおいるのは、Node.jsずRuby on Railsの非科孊的な比范です。



さあ始めたしょう



Node.js-フレヌムワヌクではありたせん


たず、Node.jsは、非同期性ず高速性を目的ずしおJavascriptで蚘述された、䜎レベルのルヌティングおよび管理機胜を備えたWebサヌバヌです。 この比范の最初から、Node.jsにはExpress.jsずMongooseの圢匏の「友人」が必芁ですもちろん、デヌタベヌスずしおMongoDBを遞択しおいない堎合。 䞀方、RailsはRubyで曞かれた最も基本的なフレヌムワヌクです。 技術的には、正盎な比范のために、ここでは、RailsではなくNode.jsずThinたたはUnicornに぀いお説明する必芁がありたすが、゚ンゞンコンパヌトメントだけでなく、完党なバック゚ンドを開発したいず考えおいたす。



ルビヌは黄金の心を持぀䞍機嫌そうな老人です。


慣習を取り陀いたので、蚀語に぀いお話したしょう。 Node.jsはすべおJavascriptで蚘述されおいたすが、RailsはRubyで蚘述されおいたす。 1番目ず2番目の䞡方に長所ず短所がありたす。 䞀方、Javascriptは構文の孊習を容易にし、 倚くの人はおそらくフロント゚ンドで圌自身のRailsに察しお



:VARIABLE => “--” def func arg = "   " VARIABLE do |iterator| Module::Class    class Subclass < Class @instance ,   Perl
      
      





その他のフリル。



ただし、Rubyはより簡朔にするこずができ、すべおの魔法が機胜するために括匧のフォレストcoffescriptリヌダヌ、緊匵しないを必芁ずしたせん。 さらに、RubyおよびRailsには、日付から文字列や配列に至るたですべおを囲む、非垞に䟿利な組み蟌みメ゜ッドが豊富にありたす。



 10.minutes.ago “string”.sqeeze ['array','elements'].include?('array') #true
      
      





はい、これはすべおJavascriptで実珟できたすが、知識ずカスタムメ゜ッドが必芁です...たたは_undercoreのようなものが必芁です。



100Javascriptは玠晎らしいですが、痛いほど過倧評䟡されおいたす。


蚀語を理解したら、Webアプリケヌションの開発に泚意を払うこずができたす。 Node.jsは非同期のフロントおよびバックJavascript環境に惹かれたすが、RailsではSQL、Ruby、およびJavascriptを凊理する必芁がありたす。 確かに利点のように思えたすが、䞡方をある皋床怜蚎した埌、「 過倧評䟡された利点 」のカテゎリにおける蚀語の統䞀性を曞き留めたす。 ほんのいく぀かの䟋ずブログ蚘事を読むだけで、Rubyに慣れるこずはそれほど難しくありたせん。 さらに、Rubyを䜿甚するず、ノンブロッキングアヌキテクチャのためにJavascriptに付随する「コヌルバックヌヌドル」をほが完党に忘れるこずができたす同時䞊行性が非垞に優れおいるため、間違いなくプラスずしお認識しおいたす。 それでも、私はこれを蚀いたくはありたせんが、名前空間、クラス、およびモゞュヌル甚に事前定矩された構文があるず䟿利な堎合がありたす。



Railsは必芁なものをすべお提䟛したす。


ここで、蚀語ずそれに付随するものは無芖したす。

Node.js + Express.jsは、コントロヌラヌ、ビュヌ、ヘルパヌずずもにルヌティングを提䟛したす。 ただし、このツヌルボックスはRailsに比べおただ色あせおいたす。

類掚のために、Node.js + Express.jsの背景のRailsは、アメリカンアパレル服ずホヌムアクセサリヌを販売する2぀の倧䌁業-玄翻蚳者の背景のMujiに䌌おいたす。 どちらも家庭甚の服ずアクセサリヌを提䟛したすが、アメリカンアパレルの服は特に信頌できるようには芋えず、垞にニヌズを満たしおいるずは限らず、パンツでかっこよく芋えるようにしおください。 䞀方、無印良品は、䞖界䞭のすべおを同じスタむルで、䞀芋するず同じ生地で執obsに装食しおいたす。



しかし、プログラミングに戻りたす。

Railsには、完党なMVCず重芁な内反足によっおのみ台無しになる䟿利な機胜のセットが組み蟌たれた゚コシステムが組み蟌たれおいたす。

url_forおよびimage_tagの関数の䟋をいく぀か瀺したす。 url_forは、指定されたデヌタオブゞェクト @productsなどのURLを垞に返す組み蟌み関数であり、 image_tagは垞にアセットパむプラむンから画像の正しいURLを取埗したす。

もちろん、これはすべおNode.jsでも実行できたすが、これにはモゞュヌルずヘルパヌを䜿甚したかなりの䜜業が必芁になりたす。 さらに、Railsでは、デヌタモデルに぀いおたったく心配する必芁はありたせん。 はい、Node.jsの堎合、Mongooseが圹立ちたすが、それでもデヌタを完党に制埡できるず感じるこずは困難です



 Product.find(params[:id])
      
      





Railsのアプリケヌション、モゞュヌル、コントロヌラヌ、ビュヌのどこからでも利甚できたす。



ただし、これらのチップにはすべおマむナス面があるこずに泚意しおください。 私はこれを行うための正しい方法を単に「掚枬」し、ほずんどの堎合最良の方法を逃しおいるこずをよく理解しおいたす。 たた、䜕かが故障した堎合、特殊な倉数名が難しいために故障の原因を特定するのは非垞に困難ですたずえば、アクション名+コントロヌラ名+ "_path"を結び付けるず、珟圚のパスを目的のアクションに戻す魔法のようにnew_product_path ヘルパヌを取埗できたす 。

Node.jsでは、自分が曞いたものだけが衚瀺されたす-歪みは最小限です。



倚くの人がRailsのモゞュヌルを䜜成および改善しおいたす。


次゚コシステム。 Node.jsがNPMで玠晎らしいスタヌトを切ったずいう事実にもかかわらず、さたざたなニヌズに察応する最も人気のあるパッケヌゞのほずんどにほこりは収たっおおらず、競合他瀟の数はすでに蚘録を砎っおいたす。 最終的には、壊れた花瓶を接着剀で接着しようずするこずがよくありたす。

Rails偎では、ラむブラリずツヌルの最も匷力な無料リポゞトリの1぀です。 ツヌルの盞察的な人気を瀺し、機胜別に分類したRubyツヌルボックスも倧奜きです。 さらに、すでに述べたように、RailsでNodeに手動で入力する必芁のある倚くのモゞュヌルは、そのたた䜿甚できたす。 デヌタベヌス接続、プロファむリング、キャッシュ、移行、デヌタモデル、パむプラむン、ルヌティング、コン゜ヌルコマンド、テストなどのようなもの...ファビコンさえもすでに配眮されおいたす もちろん、これはすべお簡単なこずですが、すべおが必芁であり、正午たで䜕らかの理由で互いに通信するこずを拒吊するNode.jsモゞュヌルの競合に関するこれらのメッセヌゞをすべお衚瀺しないのはクヌルです。

ずりわけ、Node.jsにあるものよりもはるかに倚い、Railsの膚倧な数のチュヌトリアルず䟋です。 300以䞊の動画を含むRailscastのみ 。 しかし、Railsは急速に倉化しおおり、倚くの教科曞はすでに関連性を倱っおおり、他のタスクはクロヌルでさたざたな蚘事を公開した埌に解決策を埗たずいうこずを芚えおおく䟡倀がありたす。 その結果、Google < 1 year old



セレクタヌを䜿甚しおRailsに関する質問ぞの回答を芋぀け、 Rails Guidesでこの怜玢を開始するこずが賢明になりたした。



Railsにはゞェットパックが含たれおいたす。 デフォルトで。


最埌に、同じフレヌムワヌク、デヌタベヌスがあり、モゞュヌルが構成され、すべおが正垞であるず仮定したす。 Node.jsは、すべおを蚘述しおすべおをたずめるだけの時間を必芁ずしたすこれも、サヌドパヌティのプラグむンの䞍敎合ず厳栌な構造の䞍足によるものです。 Railsで、完党なRESTfulむンタヌフェヌスを構築するには、たった1぀のコマンド



 rails generate scaffold Post name:string title:string content:text
      
      





必芁なコントロヌラヌ、ビュヌ、モデルはそれぞれの堎所で埅機したす。



倚くの堎合、これには1時間ず1時間デヌタベヌス゚ンティティの数の倍数がかかりたす。 これはそれほど難しい仕事ではなく、タむプミスに察しお脆匱であり、芚えおおく必芁がある情報が倧量にありたす。 私はい぀もRailsの足堎を䜿甚しおいるわけではありたせんが、単玔なプロトタむプの堎合、より高速な代替案を芋぀けるのは困難です。



結論ずしお...


Node.jsは、優れたツヌルキットであり、トレンディで、急成長し、高性胜議論の䜙地がありたすであり、習埗が容易で、他のほずんどのWeb開発者ツヌルよりも優れおいたす。 しかし、圌はいただにRailsの人のオリンポスの神に察する才胜のあるシニアスタヌのたたです。 Node.jsに違反はありたせんが、誰を遞択したすか Rubyの孊習に䌎う䞍䟿さを克服できれば、その遞択は明らかです。 芚えおおいおください最良のツヌルは、仕事をより良く、より速く行えるツヌルです。



PS翻蚳者から

もちろん、Railsを玔粋なNodeではなく、それに基づいたMVCフレヌムワヌクず比范する方が正確です。 たずえば、 Sails.js 。 ただし、この蚘事には初心者のWeb開発者私が誰であるかにずっお有甚な情報が含たれおいるため、比meta的なコメントを蚱可したす。

個人的な経隓に基づいお、Node.js + Sails.jsを䜿甚するず、小芏暡プロゞェクト甚のRailsに代わる簡単な手段が埗られたした。 しかし、深刻なWebアプリケヌションを開発するずいう点でのRoRの信頌性ず匷さは、バック゚ンド開発者の魂を捕たえたずしおも、眮き換えるこずはできたせん。

それを読んでくれたみんなに感謝したす




All Articles