- PR -

[VB2005] DefaultValue に定数以外を使用したい

投稿者投稿内容
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-11-08 12:47
引用:

れいさんの書き込み (2007-11-08 11:32) より:

えっと??考慮されるとは?
文字通りそのまんま、
ShouldSerializeXXXがtrueならXXXがCode Generatorでシリアル可され、
falseならされませんよね?


そうですね。 ただ、私が言いたかったのは ShouldSerialize ではなくて (私が引用した部分を見て頂きたいのですが) My.MySettings.Default.TextBoxBackColor のことを言っています。 試したことがないので、結果がわからないために前置きを書いて、「その発想はなかった。素晴らしい」 という意味で書いています。

というより私の言い回しがおかしいですね。 "も" などと書いているのでこれでは誤解されてもおかしくないですね。 すみません。

--
ここからはこばさん宛:

こばさんの反応からすると件名に対する答えとしては OK みたいです。 が、こばさんが本文で書かれている動機がやっぱり理解できないみたいです。 ただ簡素化だけに用いるという動機にはやっぱり反対です。 config からというところに関しては先ほども書いたように反対ではありません。

確かに 「コードを生成させないため」 のメソッドなのですが、目的としては副作用を抑えるため、定数以外の値を利用するため、柔軟性を設けるため (たとえば Reset) だと思っています。 MSDN ライブラリには "デザイナで、さらに効率的なコードが生成されます。" と書かれていますが、これは簡素化できたから効率的という意味ではないと思っています。

うーん、詳しく書けば書くほど矛盾に見えてしまうのですが、用途は一致しているが最終目的が誤ってませんか? という意味です。 件名どおりの説明をしているつもりでしたら、特に申し上げることはないです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
こばさん
大ベテラン
会議室デビュー日: 2004/03/17
投稿数: 147
投稿日時: 2007-11-08 12:53
 れいさん、重ね重ねすみません。
 強引でもありません。


 難しい・・って話ですが、うちのまわりだと、継承さえ理解してない人(コピペを何ら苦にしない)も平気でプログラマと名乗って商売してますので(笑)
 むしろ、圧倒的多数8割は、そういう風だったりして・・・

 さすがにスコープ無視(全てGlobal定義)は減りましたが、「減りました」という程度です。
 1つのクラスも作らないで出来てるシステムも多数。
(Form も Class だと言えば、クラスゼロじゃないけど)


 私がメインで携わる案件では、バックヤード部(継承元のクラスやらコントロール)を用意する方に大部分の時間を割いてしまい、目に見えるところの進捗度(画面が見えてこない、動きが見えてこない)が遅く見られてしまうので大変に不利です。

 バックヤードの完成度が上がってから後半の追い上げは半端じゃないんですけど・・(涙)


 みなさん、とても良い環境で仕事をされてるみたいで大変に羨ましいです。

# 完全に愚痴はいってて申し訳ありません
こばさん
大ベテラン
会議室デビュー日: 2004/03/17
投稿数: 147
投稿日時: 2007-11-08 13:05
 じゃんぬさん、もう一段高いところからの御心配、ありがとうございます。

 とても抽象的な話になってしまって私も思っていることがタイプできない歯がゆい気持ちでもあるんですが、「業務仕様(ここの例ではテキストボックスの背景色)を包括したユーザーコントロールを作成する」という目的に対して、DefaultValue で切り抜けようとした手段が間違えていたという点に尽きると思います。

 「業務仕様を包括したユーザーコントロールを作成し、そのコントロールを利用する人に対しては既に包括済みの仕様理解を求めない」という考え方でコントロールを用意していくこと自体はあながち間違えじゃないですよね・・?
れい
ぬし
会議室デビュー日: 2005/11/01
投稿数: 346
投稿日時: 2007-11-08 13:58
引用:

じゃんぬねっとさんの書き込み (2007-11-08 12:47) より:
そうですね。 ただ、私が言いたかったのは ShouldSerialize ではなくて (私が引用した部分を見て頂きたいのですが) My.MySettings.Default.TextBoxBackColor のことを言っています。



そっちですか。やっと理解できました。

そっちは別にCode Generatorとは全然関係ない部分なので
コントロールからMy.MySettings.Default.TextBoxBackColorが見れれば
問題ないですよね。

別アセンブリだったりした場合、
見れるかどうか、見れない場合どうするのか、
っていう問題は処理しなきゃいけませんが。

と、その程度しか考えてません。
試す気も無いですが、たぶん何とかできるでしょう。

引用:

こばさんさんの書き込み (2007-11-08 12:53) より:
 れいさん、重ね重ねすみません。
 強引でもありません。


強引かどうかは気持ちの問題ですので謝ることではないかと。
私は強引だなんてと考えたこともなかった、というだけです。
とりあえず、私の言いたいことは伝わってそうなので、安心しました。

美しいとか美しくないとか何が難しくて何が簡単なのかとか、
全然一貫してなくてよくわからないんですが、
引用:

 ユーザーコントロールの中身は可読性を犠牲(高スキルの人にしか読めない)にしても、貼った先でキレイに振舞うことをヨシとしてます。
 ユーザーコントロールを利用する人(≠ユーザーコントロールの作者)に、あまり負担をかけないように・・・と。


というならなら難しくても、読める人間が減っちゃってもいいんじゃないですかね?

引用:

「業務仕様を包括したユーザーコントロールを作成し、そのコントロールを利用する人に対しては既に包括済みの仕様理解を求めない」



業務仕様の重要度とか粒度とか理解のしやすさとか、
それらの.Netでの実現の難易度や関連付けのしやすさとか、
そいったものを考慮してその都度考えるべきだと思いますよ。

つまり、「あながち間違いではない」ですが、「あながち正解ともいえない」。

BackColor程度なら変更があるたびに全置換して直してもいいと思いますが、
「通貨は全部\で負数は赤、3桁ごとに区切る」というなら
そういったコントロールを作ってもいいと思いますよ。場合によっては。


ところで。

>それだと某無能元首相と同じか・・?(笑)

私は別に関係者でも支援者でもないですが、
出す必要の無い人を出し根拠を書かずに非難するの見るのは不快です。
全然「(笑)」ではないです。

思想は個人の自由ですが、
きちんと根拠や証拠を示さずに主張するなら、それはただの差別です。
そしてここは政治論議をする場ではありません。

仕事場や開発の愚痴、できの悪い上司、部下、取引先の悪口程度でしたら
この掲示板を見てる人は共感する所もあるでしょうから、
ある程度許されるでしょうが、不快に思う人がいるはずです。

その程度は考えてから発言してください。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-11-08 14:02
引用:

こばさんさんの書き込み (2007-11-08 13:05) より:

 「業務仕様を包括したユーザーコントロールを作成し、そのコントロールを利用する人に対しては既に包括済みの仕様理解を求めない」という考え方でコントロールを用意していくこと自体はあながち間違えじゃないですよね・・?


サービス指向という面で言っている内容自体に間違いはないと思います。 ただコードが生成されることによって、それが実装者に "理解を求めている" とは必ずしも言えないのではないでしょうか? たとえば designer.xx ファイルに生成されるコードは、そもそも開発者の目から "隠蔽" されていますよね。 (特に VB はその色が強いですが、C# も基本は同じところです) まあ見ることは普通にできますけど...

これがリセット時の動作や config からの柔軟性を考えてのことであれば、好みの問題としか思わないので申し上げることは特にないです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

スキルアップ/キャリアアップ(JOB@IT)