Help us understand the problem. What is going on with this article?

coding79 > UIとロジックを分離する | データバインディング

More than 3 years have passed since last update.

内容

UIとロジックを分離する

Coders at Work by Peter Seibel
p411以降

実際私はLevel 1 PostScriptインタプリタをグラフィックスなしで、グラフィックスのコードの最初の1行を書く前に書いたのです。マニュアルを開いてオペレータを見てもらえばわかりますが、グラフィックスを参照しているものはありません。グラフィックスの設計に取りかかる前に全て実装したのです。

UIとロジックを分離した良い例。

分離していない場合の問題点

UIとロジックがスクラムを組んだコードの悪い点

  • 派生品を作りにくい. 再利用しにくい
    • 派生品はUIが変わる
    • ロジックだけ使いまわししにくい
    • UIの変更にひっぱられて、同じロジックのコードがコピー生産される
  • コードリーディングがしにくい
    • 1つのクラスにUIとロジック両方が入っている場合、片方だけ振舞を追おうとしても読みにくい

結果として、UIとロジックが分離されていないクラスやパッケージは追加修正時にトラブルのもとになる。

実際に分離した結果

実際に分離されていないクラスを分離してみた。

  • 1つのロジックを使いまわすことができるようになった
  • UIだけ変更した派生品を短時間できちんと動作検証して作成できるようになった
  • クラスの中身の理解を短時間で行い、クラスの変更ができた
  • おかしな実装がいくつも見つかった
    • 中身が読みやすくなったことで、おかしい実装が目立つようになった

データバインディング

(追記 2017/06/01)

http://www.atmarkit.co.jp/ait/articles/0905/19/news145_5.html

データ・バインディングを使うべき理由
... そもそもこのバインディングを使うと、どんな良いことがあるのだろうか。それはずばりUIとロジックをきれいに分離できるという点である。

7of9
セブンオブナインです。Unimatrix 01の第三付属物 9の7という識別番号です。Star trek Voyagerの好きなキャラクターです。まとめ記事は後日タイトルから内容がわからなくなるため、title検索で見つかるよう個々の記事にしてます。いわゆるBorg集合体の有名なセリフから「お前たち(の知識)を吸収する。抵抗は無意味だ」。Thanks in advance.
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away