0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

React.js, Angular.jsとDjangoを使ったアプリケーション開発

Last updated at Posted at 2018-12-26

クライアントサイドにReact.jsやAngular.jsを使い、サーバーサイドでDjangoを用いたWebアプリケーションって、どういう仕組みなのか気になっていたが、調べてみて、少しずつ理解していった。

参考

勉強会JS編<2> クライアントサイドMVCフレームワーク

"アプリケーションの変遷"という項目がスッキリさせてくれた。

  • スタンドアロンアプリケーション
    - Webアプリケーションではなく、スタンドアロン環境で動くGUIアプリケーション。
    - クライアント・サーバ方式(多数のスタンドアロンアプリケーションがDBサーバとSQLで通信)
  • シンプルWebアプリケーション
    • サーバ側でのプログラミングを中心にしたWebアプリケーション
    • 画面遷移とGUIの状態を一致させることで、状態を意識しないプログラム実行環境が実現
    • HTMLのGUI部品により、表現力や操作性はスタンドアロンアプリケーションに比べて低下したが、アプリケーション開発の生産性は大きく向上
  • リッチWebアプリケーション
    • リッチなGUIを持つWebアプリケーション
    • 画面遷移はほとんどない。
    • 裏でサーバと通信する必要があるデータだけリアルタイムでやりとりしたり、リッチなモーダルダイアログを表示する。
    • GUI制御のプログラムをJavaScriptで書く必要がある。

Backbone.js の機能

  • Key-Value型のデータとカスタムイベントを持つモデル
  • 複数のモデルをリスト化し、リストを操作するAPIが整ったコレクション
  • HTMLの描画とイベントハンドリングを担当するビュー
  • サーバとJSON(JavaScript Object Notation)をやりとりするRESTfulインタフェース

クライアントサイドMVCを使ったときのサーバサイドの役割

サーバーの役割の変化

HTMLを生成JSON APIを提供する

例えば Twitter API を使うと Twitter クライアントを作ることができますよね。iOS 用クライアント、Android 用クライアントなど様々なものがあって、そのなかのひとつとして HTML と JavaScript でできたクライアント (= twitter.com) がある、というようなイメージです。

とはいえ、すべてのドメインロジックがクライアントに移るわけでもありません。アクセス制御はもちろんとして、更新系で整合性を保つこと、クライアントの必要に応じた粒度でリソースをエクスポートすることなどはサーバサイドの責務です。データベースのレコードをそのままエクスポートするだけではこれらを実現できないので、サーバサイドでも MVC フレームワークを用いることは普通にありえることです。この場合、View は HTML の代わりに JSON を生成することになるでしょう

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?