ホームページ バックエンド開発 PHPチュートリアル RailsとNode.js/PHP/Pythonなどの比較

RailsとNode.js/PHP/Pythonなどの比較

Nov 11, 2016 am 09:58 AM
ruby

まず、これは比較記事ではありません。言語とフレームワークは比較できますか?

第二に、私はそれらすべてを使用したわけではありません

この記事の唯一の目的は、本当に注意する必要があるものを自分 (そして閲覧しているあなた) に思い出させることです

PHP
PHP はシンプルですが汚い言語です。簡単な手段です。主に、wordpress、discuz など、PHP ベースの絶対確実なアプリケーションが多数あるため、学習曲線は低くなります。一般的なブログやフォーラムのニーズのみがある場合は、うまく活用する限り、 Google の場合、コードを 1 行も記述する必要はありません。しかし、PHP 自体は単純なのでしょうか?個人的にはそうは思わないので、理由を一つ一つ挙げるつもりはありません。汚いということは、言語設計がかなり貧弱であることだと思います。経験豊富な PHP プログラマー以外には、関数名を見てわかるだけでわかります。重大ではない脆弱なコード。

推奨される PHP 開発フレームワーク: 第一クラス: Yii、Yaf、Symfony; 第二クラス: Zend、Cake、CI

Django
Django は、数年前の Rails に非常によく似た Python ベースの Web 開発フレームワークです。 Rails よりも優れていました。良い点は、Python は Ruby よりも「信頼性」が高いということです。いわゆる信頼性とは、より多くの人が使用し、より多くのドキュメントがあり、質問することで答えを見つけるのが簡単であることを意味します。近年、Ruby が徐々に台頭しており (主に Rails によって推進されています)、Rails を使用する Web サイトがますます増えています。言語設計だけに関して言えば、Python は必ずしも Ruby より単純であるわけではなく、その一貫性は若干劣りますが、Python の唯一の利点は、この分野で世界のほとんどを占める多くの本格的な科学者がそれを使用していることであると言えます。一方、Ruby は日本製です (Ruby は Python から借用したものです)。もしRubyがPythonと同時期に欧米諸国で誕生した言語であれば、今はPythonでも何も問題はなかったと思います。

Rails
Rails は、Ruby の特性を最大限に活用した、現在主流の Web フレームワークのほとんどにその影が見られます。 Rails は、大規模、中規模、小規模のすべてのアプリケーションに適用できます。非常に大規模なアプリケーションは、スクリプト言語だけでは処理できません。長年の開発を経て、Rails はその栄光を洗い流し、現在では総合的な機能 (使いやすさ、シンプルさ、効率性、学習曲線など) の点で Rails を超えるフレームワークはないと言えます。 .)、NodeJS はだめで、他の「ニッチ」言語はさらにダメです。それどころか、Rails は急速に発展しており、超大規模アプリケーションの成功例も出てきます。今後も続々と。

NodeJS
NodeJS は有望な Web フレームワークですが、数年後に誕生したのは残念です。そうでなければ、まだ Rails と競合できるはずです。PHP、Django、Rails と比較すると、NodeJS はオープンソースが比較的少ないです。成功事例は若干少ないですが、設計や性能も非常にシンプルで効率的です。近い将来も光ると信じています。

ASP、JSPなど
複雑で肥大化したエンタープライズレベルの、人材の蓄積に依存する企業、国有企業、銀行、電子商取引、新興企業は、これらを使用すると自殺するでしょう。重要な部門がこれらを利用しないと自殺行為にもなりかねません(採用が下手で、アフターサービスしか使えない)。

その他
他の言語にも独自の用途がありますが、Clojure、Ioなど、厳密に言えば、それらはたまたまビジネスで使用されていると見なすことはできません。今のところここでは議論しません。

要約:

もう一度学習ルートを選択するように求められたら (サーバー、DB の側面を除く、言語のみ)、私は

php を理解します。深く学ぶ必要はありません

PHP 用の MVC フレームワークである Yii を理解します、必要ありません 深く

Ruby を基本的に学ぶ

Rails を基本的に学ぶ

Ruby を徹底的に学ぶ

Rails を徹底的に学ぶ

Python、Django、Lisp、Clojure、NodeJS などを理解する

------ ------------------- ----------区切り線------------------- --------------

この記事は Rails に関するものです。nodejs に適用できるシナリオが非常に詳しく説明されています。 Rails と Nodejs は、最も注目すべき 2 つのバックエンド テクノロジです。
免責事項: この記事は決して NodeJS と Ruby on Rails の利点や戦略について議論するものではありません。ここでは、意思決定プロセスにおける考え方の一部と、決定の背後にある理由についてのみ説明します。どちらのフレームワークも優れており、当初の設計目標をうまく達成しています。そのため、一部のモジュールは依然として NodeJS 上で実行されます。

私は NodeJ の大ファンです。これは非常にエキサイティングなテクノロジーであり、今後ますます人気が高まると信じています。最近、Targeter アプリを NodeJS から Ruby on Rails に移行しましたが、私はこのテクノロジーに非常に感謝しています。

NodeJSを使って開発した理由は簡単です。私はアプリを非常に迅速にオンラインにするパッケージを持っています (これには 54 時間かかりました)。Ruby よりも JavaScript をよく使用します。私たちの技術アーキテクチャには MongoDB が含まれているため、私のこれらの専門知識は NodeJS 環境でのみ意味を持ちます。しかし、アプリケーションのサイズが大きくなるにつれて、このアプリケーションの実装に NodeJS を選択したのは間違った選択であったことに気づきました。その理由を説明しましょう。

NodeJS は、有効期間の短いリクエストを大量に扱うアプリケーションに適しています。従来の CRUD アプリケーションの場合は問題ありませんが、理想的ではありません。 PHP、Ruby、Python 言語には、この種のアプリケーションを処理するための非常に成熟し、最適化されたフレームワークがあります。 NodeJS 内のすべてが非同期で実行されるという考えは、CRUD アプリケーションには影響しません。他の言語で人気のあるフレームワークは、非同期実行を含むすべてのニーズを満たす非常に優れたキャッシュ テクノロジを提供します。

NodeJS は非常に若いテクノロジー フレームワークであり、その周囲のライブラリはあまり成熟していません。私は、優秀で多くの優れたライブラリを開発してきたコード提供者に対して、何の悪気もなくこれを言います。ただし、ほとんどのライブラリは改善が必要であり、NodeJS の環境は急速に成長しているため、最先端のテクノロジを使用する場合は、バージョンがアップグレードされるたびに多くの変更が加えられるため、できるだけ早く最新の状態に保つことが非常に重要です。のバージョン。これは起業家企業に多くの問題をもたらします。

もう 1 つの理由はテストに関するものです。 NodeJS のテスト フレームワークは悪くありませんが、Django や RoR プラットフォームのフレームワークと比較するとまだ劣っています。毎日大量のコードが送信され、1 ~ 2 日以内にリリースされるアプリケーションの場合、プログラムに問題がないことが重要です。問題がなければ、苦労した甲斐がありません。愚かなバグの修正に 1 日を費やしたい人はいません。

最後の点ですが、必要なのはすべてをキャッシュできるものであり、できるだけ早く実装する必要があります。私たちのアプリケーションは成長しており、毎秒数万件のヒットが発生しますが、大量のアクセス要求が発生することはありません。これはチャット プログラムではありません。メインプログラムは最大 1000RPS に達しますが、Ruby on Rails や Nginx にとってはこのような負荷は関係ありません。

もしあなたが今もこの記事を読んでいるなら、あなたは私が言わなければならないことをすべて理解しているでしょう、そしてあなたは非常にしつこく、私たちのアプリケーションがどこでまだNodeJSを使用しているのか知りたいかもしれません。さて、私たちのアプリケーションは 2 つの部分で構成されています。 1 つ目はインターフェイス、つまりユーザーに表示される部分で、2 つ目はレポート管理とログ機能を担当する部分です。後者は、多数の短いサイクルのリクエストが存在する NodeJS の最適な使用シナリオの 1 つです。アクションのこの部分は、データのプッシュが完了する前であっても、できるだけ早く実行する必要があります。リクエストの実行がまだ終了していない場合、ブラウザは応答が終了するまで待機し続け、ユーザー エクスペリエンスに影響を与えるため、これは重要です。 NodeJS の非同期の性質が私たちを救ってくれました。データはデータベースに保存されるか処理され、リクエストが完了すると、ブラウザは他の重要な作業を開始できるようになります。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Golang と Ruby の類似点と相違点の詳細な分析 Golang と Ruby の類似点と相違点の詳細な分析 Jun 01, 2024 pm 08:46 PM

Go と Ruby の主な違いは、Go は軽量な並列処理と効率的なメモリ管理をサポートする静的型付きのコンパイル言語であり、同時実行性の高いアプリケーションの作成に適しているのに対し、Ruby は真の並列処理をサポートする動的型付きのインタープリター言語ですが、メモリ管理がサポートされていないことです。手動制御が必要であり、柔軟な Web アプリケーションの作成に適しています。

Python、Ruby、その他の言語でインクリメント演算子が廃止されたのはなぜですか? Python、Ruby、その他の言語でインクリメント演算子が廃止されたのはなぜですか? May 11, 2023 pm 04:37 PM

多くの人は、一部の最新のプログラミング言語 (もちろん、「最近の」プログラミング言語を指すわけではありません) で、インクリメント演算子とデクリメント演算子がキャンセルされているという現象に気づいたかもしれません。言い換えれば、これらの言語には i++ や j-- のような表現はなく、i+=1 または j-=1 のような表現があるだけです。この回答では、この現象の背景と理由を設計哲学の観点から探ります。主流のプログラミング言語の中でインクリメント演算子とデクリメント演算子をサポートしていないのは Python、Rust、Swift だけと思われるため、厳密に言うと「i++ が消滅する」と言うのは偏見かもしれません。私が初めて Python に触れたときも、

Ruby は MySQL を操作するために Mysql2 接続をどのように使用しますか? Ruby は MySQL を操作するために Mysql2 接続をどのように使用しますか? Apr 17, 2023 pm 10:07 PM

Rubyはmysql2を使ってMySQLを操作し、mysqlに接続してmysqlを操作します。 geminstallmysql2 は mysql に接続して接続を確立します: require'mysql2'conn=Mysql2::Client.new({host:'192.168.200.73',username:'root',password:'P@ssword1!'}) 受け入れられた接続オプションには次のものが含まれます: Mysql2::Clie

MySQLとRubyを使った簡単なデータ変換機能の実装方法 MySQLとRubyを使った簡単なデータ変換機能の実装方法 Sep 21, 2023 am 08:07 AM

MySQLとRubyを使って簡単なデータ変換機能を実装する方法 実際の開発作業では、あるデータ形式を別のデータ形式に変換するデータ変換が必要になることがよくあります。この記事では、MySQL と Ruby を使用して簡単なデータ変換機能を実装する方法と、具体的なコード例を紹介します。まず、MySQL と Ruby 環境をインストールして構成する必要があります。 MySQL データベースがインストールされており、コマンド ラインまたはその他のツールを介してデータベースに接続できることを確認してください。さらに、インストールする必要があります

MySQLとRubyを使って簡単なデータ分析レポート機能を実装する方法 MySQLとRubyを使って簡単なデータ分析レポート機能を実装する方法 Sep 20, 2023 pm 05:09 PM

MySQL と Ruby を使用して簡単なデータ分析レポート機能を実装する方法 はじめに: 今日のデータドリブンの時代において、データ分析は企業の意思決定と開発において重要な役割を果たしています。データ分析の重要な部分であるデータ分析レポートは、データを整理、視覚化、解釈する上で非常に重要です。この記事では、MySQL と Ruby を使用して簡単なデータ分析レポート機能を実装する方法と、対応するコード例を紹介します。 1. データベース設計とテーブル作成はデータ分析とレポート機能を実現する必要がある

MySQLとRubyを使った簡単な非同期タスクスケジューリング機能の実装方法 MySQLとRubyを使った簡単な非同期タスクスケジューリング機能の実装方法 Sep 20, 2023 am 10:48 AM

MySQL と Ruby を使用して単純な非同期タスク スケジューリング機能を実装する方法 以前の Web アプリケーションのほとんどは、同期メソッドを使用してリクエストを処理していました。つまり、ユーザーがリクエストを送信した後、サーバーは即座にリクエストを処理し、結果を返します。 。ただし、アプリケーションの複雑さが増すにつれて、同期メソッドの処理効率は徐々に非効率になるため、非同期タスク スケジューリングは、最新の Web アプリケーションでは一般的な要件となっています。この記事では、MySQL と Ruby を使用して、タスクを含む簡単な非同期タスク スケジューリング機能を実装する方法を紹介します。

Vue.js と Ruby を使用してスケーラブルな Web アプリケーションを構築する方法 Vue.js と Ruby を使用してスケーラブルな Web アプリケーションを構築する方法 Aug 03, 2023 pm 02:27 PM

Vue.js と Ruby 言語を使用してスケーラブルな Web アプリケーションを構築する方法 近年、Web アプリケーションの開発とニーズの増大に伴い、スケーラブルな Web アプリケーションの構築が重要なテーマになっています。軽量の JavaScript フロントエンド フレームワークとして、Vue.js は柔軟で効率的かつスケーラブルなソリューションを提供します。同時に、Ruby は簡潔で読みやすいプログラミング言語として、強力なバックエンド システムを構築するために使用できます。この記事では、Vue.jsとRuby言語を組み合わせて構築する方法を紹介します。

さらに詳しく: PHP に代わる Web サイト構築 さらに詳しく: PHP に代わる Web サイト構築 Mar 21, 2024 am 08:51 AM

今日のインターネット時代において、ウェブサイト構築は多くの人にとって不可欠なスキルの 1 つとなっています。 PHP は広く使用されているバックエンド プログラミング言語として知られており、多くの開発者によって使用されています。ただし、Web サイトを構築するには PHP 以外にも多くのオプションがあります。この記事では、PHP 以外の Web サイト構築オプションを詳しく説明し、具体的なコード例を示します。 PythonPython は、Web 開発で広く使用されている強力で習得が簡単なプログラミング言語です。 Pythonの使用

See all articles