DelFusa Blog 総本山

プログラミングの話題とかです。

NEW | PAGE-SELECT | NEXT

≫ EDIT

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

| スポンサー広告 | --:-- | comments(-) | trackbacks(-) | TOP↑

≫ EDIT

Visual Live Binding は使えるのかな

この記事は Delphi Advent Calendar 2012 に参加しています。


ちょっと前になっていますが、
デベロッパーキャンプ、こっそり参加してました。


|,,∧   オシノビダゾ
|Д゚彡
| U
| ミ    
| U


タイムキーパーではありません。


さて、
Visual LiveBindingを見せてもらいました。


Microsoftの同様の仕組みにプロパティバインディングというものがあって、LiveBindingというのはこれのクローンなんじゃないのかな、と、使った事ないけど、名前だけで思いこんでいます。

あんまり.NET系は興味はないのですが、Delphiで培ったスキルがあるので、VB.NET WPF開発を、ちょっと一般開発者とはレベルの違う開発スピードで自在に使いこなしていた時期があります。

そのときにお隣のチームの方と仲良くなりまして、いろいろお聞き出来るときがありました。

自分のチームでは元から使われてなかったし使わなかったのですが、お隣のチームの方は、そのプロパティバインディングで苦しんでいたんですよ。

俺のせいでも、そのチームの方のせいでもないんですが、
システムの既存ソースがぐちゃぐちゃでして、、、、、
(WPFで新規開発なのに短時間でソースがぐちゃぐちゃになっていっているという、最低のプロジェクトでした......大手の仕事ってこんなのばっか.....)

わたしも、その方々も既存ソースに手こずってやっておりまして、

うちはまだましだったのですが、隣のチームは泥沼と化していました。

そちらの方曰く、

「どこがどことバインディングされているか、
 すげー複雑になって、デバッグ実行しても、あっちこっちで値が変更されて
 結局ソースを追い切れないんですよ。」

という話を聞いていました。

そりゃ、もっともの話ですよ。

ジョエルも言っています。『ソースは書くより、読む方が難しい』


特に、日本の商習慣的多くのプロジェクトでは、
大手SIヤー、、、(ローマ字にすると『死屋』かいな?)が関わるわけですが、関係者の多くがプログラムを作るというスキルがまるでないために、「どうやったらこんな糞ソース作れるの?」という最低のソースを目にすることが、多々あります。「ソースを読む」ことは、本当に困難です。


それでもってさらにその中にプロパティバインディングが、がんがん紛れこんでいるとするとですね、、

何かプロパティの値を変更すると何か変な動作するバグ修正なんかをやっている時、ソースを追ってプロパティの定義を追っても他への値反映がわからなくて、それがプロパティバインディングによって行われている場合には、問題を見つけるのが大変なんですよ。バグ修正などが非常に困難になります。

これはQuickReportのラベルへのDataSourceのバインドなどでも同じなのですよ。
ものすごい数のQRLabelだとかQRなんとかと何かが関連しているものでプログラムを制御するのは非常にめんどくさい事になってしまいます。

コンポーネント同士の関連がソースを読んでもわからなくて、dfmに記載されているだけで、いまいち読みにくいコードになること、ばっちりです。

※こういうコードが糞コードとはいわないけどね。いまいち読みにくいってことですよ。


「何でこの場合、こういう値が表示されないの?」
または
「何でこの値が出てくるの?」
を直感で理解できないし、ソースを追って問題点を見つける事も困難になります。


表層でライブラリの自動化に頼ると問題が発生したときに対応できないというのは、ジョエルオンソフトウェアでは「漏れのある抽象化」として表現されていましたね。


ということで、WPFのプロパティバインディングは、がんばった割に開発者の手間を増やすだけの不要の部品と成り下がった事は、肌で感じておりました。ま、WPFのXAMLも、一つの事をやりとげるのに、ソースとXAMLを両方使い分けるという点で、ほんとダメダメなプロジェクトなのですが、それはともかく....


で、DelphiのLiveBindingですよ。

便利だけどあまり使われるとソースは読みにくくなる、という問題点があります。

このLiveBindingがどこまで使えるのか微妙に思っていましたが、


このビジュアル化!

Delphi+Visual LiveBinding によるデータベースアプリケーション開発
http://edn.embarcadero.com/article/42758/images/42758/A5.pdf

画像はこんな感じらしいです。Youtubeから引用させてもらいます。
VisualLiveBinding




なかなかやりますね。

LiveBindingは、前述の通り、簡易的にサンプルプログラム書く場合には、かなり使えるかもしれないけど、実際のプロジェクトとして可読性を考えるとどうかと、ちょっと気が引けるものでしたが、
Visualが付属すると、当たり前ですが、かなり見やすく、故に理解も早くなるかもしれません。

ソースコード至上主義でもないので、コード量が減るのは大歓迎ですし、それが逆にプログラムを読みにくくしないのであれば、これはいいものかもしれないですね。

こんな感じでプログラミングできるのは、かなり未来を感じさせてもらえます。

ほんと、最近のDelphiの進化がとどまることがなく、かなり期待感で夢を感じます。

これも、Microsoftの呪縛から逃れる方向の戦略をとっているからでしょう。

Joel on Software - 射撃しつつ前進
http://japanese.joelonsoftware.com/Articles/FireAndMotion.html


>Microsoftから出てきたデータアクセスストラテジーの歴史につい考えてみるといい。ODBC、RDO、DAO、ADO、OLEDB、そして今度はADO.NETだ―すべて新しい! これらは技術的必然だったのだろうか? 毎年データアクセスを再発明する必要があるデザイングループの無能さの結果なのだろうか? (たぶんそうだ。) しかし結果としてそれは援護射撃となった。競合は彼らの時間をすべて費やして移植し、追いつこうとする以外に選択肢がなく、彼らは新しい機能を書くために時間を使うことができない。ソフトウェア業界の状況をよく見てみるといい。うまくやっているのは大企業に依存するところが最小限で、キャッチアップだとか、再実装だとか、あるいはWindows XPでだけ現れるバグの修正だとかで彼らのすべてのサイクルを使わなくてすむ会社だ。つまずいているのはMicrosoftの将来の方向を占うために紅茶の葉を読むのにあまりに多くの時間を使っている会社だ。


これからもMicrosoftに依存せず、
いいところは吸収してもらい
独自実装で突き進んで欲しいところです。
スポンサーサイト

| 未分類 | 08:00 | comments:1 | trackbacks(-) | TOP↑

COMMENT

肝心なことを書き忘れてた気がしますが、

つまりは、DelphiXE3は俺もってないんですよね。

うーん、迷うなあ。
MobileStudioが出る前に、手に入れるかどうか、、、やっぱりMobileStudio待ちかなあ。

| Delフサ | 2012/12/18 13:05 | URL |















非公開コメント

PREV | PAGE-SELECT | NEXT

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。