フロントエンドとしてAngularJSで使用するための良いバックエンドに関するあなたの提案を知りたいです。
提案されたバックエンドが優れているのはなぜですか?それは使いやすく、学習しやすいですか?
この質問には、意見に基づく回答に対するかなりのリスクがあるため、より批判的な評価をお勧めします。
... angularでの作業がかなり簡単になり、苦痛が少なくなります。また、HTTP仕様に忠実であり、それに伴うすべての優れた機能が実現します。選択したどの言語でも、フレームワークがこれを行う際の最小限の労力を許容することを確認してください。
私の経験では:
PHP:
Vanilla PHPとCodeigniterは有能ですが、これを行うのが苦手なので、それらを避けることをお勧めします。 Symphonyおよびより大きなORMベースのフレームワークについて話すことはできませんが、学習曲線は自明ではないことを理解しています。 wordpressやdrupalなどのCMSアプリケーションには近づかないことを強くお勧めします。この種のことは彼らの目的ではないからです。
Laravelはかなり低い学習曲線を提供する可能性があり、 RESTFulインターフェースが焼き付けられていることを理解しています 。
NodeJS
NodeJSは、サーバー側に非常に多くのフレームワークを提供しており、Expressとそのバリアントは、それらの多くの明らかなベースです。 ExpressはRESTfulインターフェースを作成する柔軟性を提供しますが、デフォルトではこれを行いません。より構文的な砂糖を使用するには、通常、独自のミドルウェアを接続する必要があります。
Ruby on Rails私が理解していることから、 RESTful apis with Rails がかなりサポートされています。
PHPVanilla PHP mysqliデータベースのサポートは機能しますが、使用するには低すぎます。 CodeIgnighter、Symphony、Lavel、およびその他のフレームワークはすべて、さまざまな程度でデータベースを操作するために必要な抽象化とセキュリティを提供します。これで両者を区別することは、主に好みの問題です。 PHPフレームワークは、NoSQLタイプの新しいデータベースのサポートに苦労する場合があります。
NodeJSExpress NPMリポジトリの文字通り何千ものオプションを備えた適切なミドルウェアを備えたすべての主要なデータベースをサポートします。いつものように、さまざまな難易度で自分を表現するためにそれらを結び付ける必要があります。
Ruby on RailsRailsは、セキュリティとすぐに使える使いやすさの両方を提供するアクティブレコードパターンをサポートします。これにより、一般的な標準リレーショナルデータベースの大部分がサポートされます。ただし、NoSQLデータベースの統合については説明できません。
これは主観的すぎるため、いくつかの落とし穴以外の多くのことを言うことはできません。NodeJSコミュニティは、かなり高いスキルを始めることを期待しており、 callback hell 問題は十分に大きい学習者のサーバーサイド開発に対する深刻な障壁。
PHPVanilla PHPはセキュリティがほとんどないため、お勧めしません。 Codeigniter、Laravelおよび他のフレームワークは、少なくとも文字列エスケープによる保護とSQLインジェクション攻撃に対する保護を提供します。
NodeJSExpressはすぐに使用できるセキュリティ機能をあまり多く提供していませんが、 helmet 。これは、アプリケーションの非ピニオン化された性質を反映しているため、欠陥ではありません。
RailsRailsは、Active Recordによる基本的なSQLインジェクション保護とCSRF保護を提供しています ボックス 。
個人的には、私は自分のサーバーサイド開発者にAngularで作業するためにKoa(エクスプレスに取って代わるアプリケーション)を使用します。私のレガシープロジェクトはCodeIgnighterを使用しています。
(免責事項:私はRubyonRails開発者です)
RubyonRailsはjsonバックエンドとして使用するのに適していると思います。
次のように、Angularとの統合に関する多くの資料とスクリーンキャストを簡単に見つけることができます。
Railsを使用して適切なJSON APIを構築すると、モバイルアプリなどを作成するのに役立ちます。また、優れたRailsRESTful Apiの作成に関する非常に優れた資料もあります。
バックエンドはユーザーが選択でき、すべてのバックエンドはAngular JSと同じように対話する必要があります。
検討すべき選択肢はたくさんあります。
Python:FlaskおよびDjango
Javascript:Node JS
Ruby:Ruby on Rails
PHP
それぞれに学習曲線と落とし穴があります。
私は偏見があり、大量のリソースを消費することなく、大量の同時リクエストを処理し、高速(5000以上)にできるため、Goをお勧めします。
ただし、2つの言語間をジャンプするのは苦痛な場合がありますが、最終的にはプログラミングのより広範な理解が得られます。したがって、言語を切り替えたくない場合は、エクスプレスフレームワークとnode.jsをそのまま使用します。これは、すべてのチュートリアルも含まれているためです。たとえば、MEANスタック(mean.io)