他のMVCフレームワークと同様に、Sailsは開発者の幸福と、設定よりも規約を重視する哲学に基づいて構築されています。しかし、Node.jsはこの原則を次のレベルに引き上げます。Sailsの上に構築するということは、アプリがすべてJavaScriptで記述されることを意味します。JavaScriptは、あなたとあなたのチームがすでにブラウザで使用している言語です。コンテキストの切り替えに費やす時間が少なくなるため、より一貫したスタイルでコードを記述でき、開発がより生産的で楽しくなります。
Sailsには、強力なORMであるWaterlineがバンドルされており、使用しているデータベースに関係なく、シンプルで動作するデータアクセスレイヤーを提供します。多数のコミュニティプロジェクトに加えて、MySQL、MongoDB、PostgreSQL、Redis、ローカルディスクに対応した公式サポートのアダプターが存在します。
Sailsは、データモデリングをより実用的にすることを目的とした、親しみやすいリレーショナルモデルに対する新しいアプローチを提供します。これまで使用してきたもの(一対多、多対多)と同じことをすべて実行できますが、モデルごとに複数の名前付き関連付けを割り当てることもできます(たとえば、ケーキには「食べる人」と「持っている人」という2つの人のコレクションがある可能性があります)。さらに良いことに、異なるモデルを異なるデータベースに割り当てることができ、関連付け/結合はNoSQLとリレーショナル境界を越えても**依然として機能します**。Sailsは、MySQLテーブルをMongoコレクションと暗黙的/自動的に結合することに問題はありません。
Sailsには、コードを記述せずにアプリのバックエンドをすぐに開始できるブループリントが付属しています。sails generate api dentist
を実行するだけで、歯科医の検索、ページネーション、並べ替え、フィルタリング、作成、破棄、更新、および関連付けができるAPIを取得できます。これらのブループリントアクションはSailsと同じ基盤技術で構築されているため、Websocketおよびサポートされているデータベースともそのまま連携して動作します。
過去には、リアルタイム/「コメット」機能を追加することは、2つの別々のコードベースを維持することを意味していました。しかし、Sailsのリクエストインタープリターは、受信したソケットメッセージを翻訳するため、Sailsアプリのすべてのルート、および既存のExpressルート/ミドルウェアと自動的に互換性があります。パラメータの正規化、セッション、ストリーミングインターフェイスはすべて処理されます。つまり、あなたが記述するコードは、追加の作業をせずにWebSocketsとHTTPで動作します。
Sailsは、ポリシーの形で、デフォルトで基本的なセキュリティとロールベースのアクセス制御を提供します。ポリシーとは、コントローラーとアクションの前に実行されるシンプルで再利用可能なミドルウェア関数です。ポリシーを記述することで**カプセル化**が促進され、ビジネスロジックが大幅に簡素化され、記述する必要があるコードの総量が削減されます。ポリシーはExpress/Connectミドルウェアと互換性があるため、Passportのような一般的なnpmモジュールをプラグインできます。最後に、Sailsのほとんどのことと同様に、ポリシーはWebSocketsとHTTPの両方で自動的に動作します。
「すべてを支配する1つの言語/フレームワーク」という約束は確かに魅力的ですが、必ずしも現実的ではありません。Sailsは、Angular、Backbone、iOS/ObjC、Android/Java、Windows Phoneなど、まだ発明されていないものであっても、あらゆるフロントエンド戦略と互換性があります。さらに、別のWebサービスや開発者コミュニティで使用される同じAPIを簡単に提供できます。
ブラウザ用のアプリを構築している場合、あなたは幸運です。SailsにはGruntが付属しています。つまり、フロントエンドのアセットワークフロー全体が完全にカスタマイズ可能であり、すでに存在するすべての優れたGruntモジュールのサポートが付属しています。これには、LESS、SASS、Stylus、CoffeeScript、JST、Jade、Handlebars、Dustなどのサポートが含まれます。本番環境に移行する準備ができたら、アセットは自動的に最小化およびgzip圧縮されます。静的アセットをコンパイルしてCloudFrontのようなCDNにプッシュして、アプリの読み込みをさらに高速化することもできます。
異なるツールチェーンを好みますか?ジェネレーターについて学ぶ。
Sailsは、開発者がJavaScriptで驚くほど高速でスケーラブルなネットワークアプリケーションを記述できるようにする、人気のある軽量のサーバーサイドテクノロジーであるNode.js上に構築されています。Sailsは、HTTPリクエストの処理にExpressを使用し、WebSocketsの管理にsocket.ioをラップします。したがって、アプリが非常に低レベルになる必要がある場合は、生のExpressまたはsocket.ioオブジェクトにアクセスできます。もう1つの良い副作用は、既存のExpressルートがSailsアプリで完全に動作するため、既存のNodeアプリの移行が簡単であることです。
Sailsコアチームと直接関わることで、開発努力から障害を取り除きます。フラッグシッププロフェッショナルサポートは、技術的な決定を通知し、問題の迅速な解決を促進し、開発タイムラインから数日または数週間を短縮します。
フラッグシップの詳細 または、 当社と提携する。