2016-03-31 10 views
0

私は、平均的な複雑さのウェブアーキテクチャの問題について、あなたの意見を歓迎します。シングルページアプリケーションはCRMに適していますか?

コンテキスト:顧客、契約書、請求書などのエンティティでCRUD操作のみを実行するカスタムCRM(クライアントリレーションシップマネジメント)Webプラットフォームを構築する必要があります。登録、認証、認可(ユーザーが実行できるアクションの種類を定義する役割)などのユーザー管理を処理する必要があります。より詳細なアイデアをご希望の場合は、data modelをご覧ください。

制約:私が使用して、サーバー側では、義務だ:

  • CakePHPの2.7(PHP 5.5
  • のMySQL 5.5

クライアント側の場合ブラウザの制限なしに、HTML、CSS、JavascriptのフロントエンドWebフレームワークとライブラリコンポーネントを自由に使用できます。

私の主な関心事は、クライアントとサーバーの分離の問題です。このため、私はSPAアプローチを使用しています。 CakePHPテンプレートファイル(.ctp)を使用して、バックエンドでレンダリングビューをできるだけ避けたいと思います。可能であれば、私はバックエンドによってクライアント側のほぼ完全に無関係なものを作りたいと思っています。

初期HTML、CSSやJSアプリのファイルを提供する場合を除き、私はAjax呼び出しを介して、クライアントが消費することになるEVERY CRUD操作のための全体のJSON RESTのAPIとして機能するために私のバックエンドを使用したいと思います。 AngularJSを使用してMVVMクライアントのすべての部分を処理することを検討しています。

質問:シングルページアプリケーションはこのアプローチに適していますか?あなたならどうしますか?すべてのリンクやドキュメントは非常に高く評価されます。

問題についての洞察に感謝します。

良い一日を。

答えて

2

私は確かに私の答えに偏っていますが、フロントエンドにはAngular、バックエンドにはノードで少し作業しました。 JSONにREST APIを提供する場合は、フロントエンド用に選択したものとは関係なく、同じように動作するはずです。

Angularを使用すると、MVCパターンを簡単に適用できます。このように、フロントエンドに接続されたロジックを使用することは非常に簡単です。 for A&A多くのチュートリアルとサンプルがありますが、APIはJSONに(ほぼ)すべて対応し、すべてのリクエスト(サービスあり)でAuthヘッダーに添付するのは簡単ですから、JWTを使用してお勧めします。

Angularには、あなたが提供するURLに基​​本POSTとGETを許可する$ httpメソッドがあり、エラーと成功を簡単に処理します。

サーバーとのやりとり以外にも、ブラウザに情報を表示するための便利で便利な方法がいくつかあります。ユーザー情報やロールなどは、{{user.name}}のように二重中括弧例。

質問はお気軽にお問い合わせください。

+0

アドバイスありがとうございます!あなたは同様のプロジェクトをやったことがありますか?もしそうなら、どのようにDOM操作を処理しましたか? –

+0

はい、私は今実際に1つを開発しています!これまでのところDOMを操作する必要はありませんでしたが、すばやいリサーチでこれを私に導いてくれました:http://ng-learn.org/2014/01/Dom-Manipulations/ディレクティブはそれを続ける方法ですが、まあ! – Forget

1

cakePhpでApi Restを行うことができれば、フロントエンドを行うには角度が適しています。

$ resourceをあなたのapi restと一緒に使うことをお勧めします。それは$ httpがより効果的です。大評判の良い会社に雇用

https://docs.angularjs.org/api/ngResource/service/$resource

+0

ありがとう、私はそれを見てみましょう! –

1

、私たちは同じことをしなければなりませんでした。ルーティングを処理するためにui.routerを使用して大きなSPAを構築しました。 ui.routerは「事実上」の角度ルーティングソリューションであると主張しています。実際、これは優れており、最も成熟したソリューションです。

AngularフロントエンドとNodeバックエンドがありますが、フロントエンドとバックエンドは完全に無関係です。

懸念事項をさらに分けるためには、解決策、Webファイル、Webサーバーを1つのコンテナに固定し、他のコンテナでバックエンドと話をすることを検討してください。

PSあなたがドッキングウィンドウに慣れていない、あなたは非常に簡単な概要が表示さ場合:

Are changes to Docker images automatically transferred to deployed containers?

私はあなたがドッカーの使用を制限することができるが、そうでなければ、それは驚くべきことだ感謝!

+0

私はこの概念に精通していますが、それを使う機会は決してありません。私は彼らがそれに沿ってタグを付けるだろうと思うが、素晴らしいですね。しかしui.routerのアドバイスをありがとう! –

関連する問題