- PR -

プログラムの書き方でご指導お願いします。

投稿者投稿内容
がるがる
ぬし
会議室デビュー日: 2002/04/12
投稿数: 873
投稿日時: 2005-11-10 19:43
がるです。
初めてコメントを返させていただきます。
引用:

ブンデスさんの書き込み (2005-11-10 19:19) より:
がるがるよ、
いい加減に自分の負けを認めろよ。


勝ち負けが随分とお好きなようで。
ただ、ブンデス様には大変申し訳ないのですが。
基本的にはこういった議論を「勝ち負け」のレベルでは
見ておりませんので。

そうですねぇ。強いて勝ち負けをつけるのであれば。
私は勝ちました。
この議論で、いくつか得がたい知識が身につけられましたので。
# 勝利条件:得るものがあったか否か

そうそう、念のため。
「私は勝ちました」が「未記入氏が負けました」にはつながり
ません。勝利条件から考えれば当然ですね。
未記入氏がどのような勝利条件を元にどのように判断を下すか
はわかりませんが。
この辺も、前述した逆とかfalseとか不完全性定理とかの概念
から考察していただけると。

引用:

お前の理論はすでに破綻してるだろーが。
それを他の言語にすりかえたりして
逃げ切ろうとしてるが、本当に見てられないぞ。


別にすり替えも何もないのですが。
というか、このたびの話はOOP言語系であれば「どこであれ
共通して語ることが可能な会話」なので。
もし逃げ切ることを考えた場合、言語を摩り替えた程度で
どうにかなるものではないと思うのですが。
# マシン語に摩り替えると逃げ切れるのかも(笑

理論については面倒なので省略します。
リアルで正面切って会話するとまた面白いのかもしれませんが。
# でも「戦うことを」前提にするのなら無意味かな?

引用:

仕事中にこんなくだらない書込みするより、
他にやるべきことがあるんじゃないか?

以上、老婆心より俺からのアドバイスだ。


ご親切且つご丁寧にありがとうございます。
お言葉、大切に頂戴いたします。

ブンデス様のご多幸を心よりお祈り申し上げつつ。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-11-10 23:28
引用:

がるがるさんの書き込み (2005-11-10 14:31) より:

んっと。trueについて明確なのはそうだと思うのですが。
falseは「tureではない」という程度の意味合いしか持たないように感じているです。


「true ではない」という程度の意味合い... ですか?
「true でない」は、十分な意味を持ちますよね。

確かに「偽」になる条件がいくつか存在するメソッドはあるでしょう。
ただ「真」でないというのは確かで、それで十分である場合に使いますよね。

「偽でかつ、xx な状態にある」まで表現してはいけません。
それを表現したいならば、ステータスで返すことになります。

また、このステータスを実装するために、
ひとつの検証メソッドに対して 2 つ以上のプロパティで、
そのステータスを表現するのは混乱の元です。

引用:

そのあたりが、明示的であるtrueに対して、falseをもうひとつ信用して
いない理由なのかもしれないです。


上記の理由から、偽が信用できない (偽になってしまった原因までも取得したい) ならば、
やはり、ブール値で返すメソッドは書くべきじゃないですよね。

偽で返ってきた理由に「例外」があるとすれば、それは例外処理の役目で、
「false が信用できない」には結びつきません。

引用:

このあたりは前述したですが。


引用された私の投稿の後に、がるさんが記述されているようで...
これもまたタイミング悪かったみたいですね。(;_ _)

引用:

ちと疑問なのが「!FALSE なので -1」でしょうか?
これはつまり not 0x00000000 = 0x11111111 = 補数で考えて-1
という発想でOKですか?


これは、ちょっと書き方がまずかったです。
「0 が真になることはないでしょう?」という結論に結びついていませんね。(^-^;)

-1 は、無理に「この値だ」と表現した場合の話ですが、
大切なのは、先にも書いたように、"FALSE 以外は TRUE" という考えです。
「論理値」を「数値」で表そうとすることが無意味だということも書きました。

引用:

私は「特にC言語の場合、戻り値がfalse」と記述しています。

関数の戻り値ということで考えると、まずboolean型はC言語に存在しないです。
ですので、戻り値がtureやらfalseやらで帰ってくることは絶対にないです。


私もプログラマの端くれなので、そこそこの言語は触っており存じています。
C の場合は「TRUE」「FALSE」を自分で定義して、Is 〜 Has 〜なメソッドでは必ず使うようにしてます。

2 値以上の意味を持つ「ステータス」を返す場合は、
STATUS_SUCCESS, STATUS_WARNING, STATUS_ERROR...
と、先頭名を仮想的にグループとした定数を作ります。

引用:

C言語の関数を色々と知っている方だとうなずいていただけると思うのですが、
成功なら1、失敗なら0を返す
成功なら0、失敗なら−1以下を返す

処理でミスったのか合致しなかったのか
はっきりしないことが多いので。


「0 が成功、失敗した場合は 0 以外の値を返す」という戻り値は、
概念的に「真」「偽」を表すブール値ではありませんよね?
これは、ステータスを返すメソッドであり、ブール値を返しているわけではないです。

また、C にそのような関数があるのは、判っていることなのですが、
こちらは "Java" Solution 会議室で、ブール値を使う場合の話をしています。
C にブール値がないことを例に出して「false は、はっきりしない」理由にはなりません。

どうして、がるさんは「既存の関数」を例に持ち出したのでしょうか?
今までの話の流れ的には、"自作の検証メソッドの戻り値" の話をしているはずです。

C の既存の関数の戻り値が「はっきりしないことが多い」ことを "例" として出して、
「true は信用できるが false は信用できない」というのは厳しいのではないでしょうか?

自作のメソッドであれば、C であっても「false は、はっきりしない」にはなりません。
もし、false がはっきりしない検証メソッドがあるとすれば、それは仕様的にまずいのでは?

引用:

という仕様がごちゃまぜになってるです(苦笑
# 未だに関数リファレンス必須ですね


と、がるさんも「これは良くない」と理解されているのに何故なのでしょうか?

引用:

だから、私にとってtrueというのはとても限定されたステータス
なのですが、falseは場合によっては「とんでもなく広がる
もやもやした」ステータスなんですよね(苦笑
なにせ「想定外まで含めてtrue以外全部」なので。


「想定外」は「例外」になりませんか?
例外の場合は評価すらしてはいけませんよね?
これは、3 値にはなりませんよね?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
masa
大ベテラン
会議室デビュー日: 2005/05/11
投稿数: 108
投稿日時: 2005-11-11 00:08
引用:

がるがるさんの書き込み (2005-11-10 17:41) より:
一応、上述に拡張をかましてみます。
ステータスBARです。
クラスは継承可能ですが、enum宣言は書き換えざるを得ないですね。
# C++でenumの継承とかあると楽なのに(笑

コード:
typedef enum status { _HOGE, _FOO, _BAR, _UNKNOWN };
class XXX_2 : public XXX {

public void set_status_bar(void) { this->set_status(_BAR); }
public bool is_bar(void) { return this->_is(_BAR); }
}




今まではとても尊敬していたのですが、このスレの流れにはびっくりです。
本当にこのような実装を行っているのですか?
ステータスが1個増えるたびに継承クラスを作るということは、ステータス
が10個増えたら10個の継承???
引用:

いやまぁ「継承するのか元クラス書き換えるのか」は状況次第
だと思われるのですが。
今回は楽しようとしてます(笑


状況次第で、今回は楽をしようとした実装とのことですが、
ここで継承を使ったら、呼び出し元がインスタンス化するクラスを変更する
ことになり、却って手間がかかることになるような気がするのですが・・・
そのような用途で継承をした場合、クラスの名前は何になるんでしょ。
もしや本当に_1、とか_2とかを付けていたりします?
がるがる
ぬし
会議室デビュー日: 2002/04/12
投稿数: 873
投稿日時: 2005-11-11 01:52
どもです。がるです。

引用:

masaさんの書き込み (2005-11-11 00:08) より:
本当にこのような実装を行っているのですか?
ステータスが1個増えるたびに継承クラスを作るということは、ステータス
が10個増えたら10個の継承???


えっと。実際問題ケースbyケースです。
基本的には元クラス書き換えたほうが圧倒的に
楽だしそれが普通だと思うのですが。

稀に「ステータス2つの状態でのチェック」と
「ちょっと条件が増えてステータス3つの状態で
のチェック」と…ってのが混在するような
要求がある場合もあって。
そういうときには継承クラス作るです。
# もちろん、この状態でなお「元クラスを
# 修正する」手段は選択可能です。

…という例外もあるよという話ですが。
そういう特殊な事情がなければ、素直に
元クラスに手をいれてテストして…っていう
流れに普通に乗っけます。
幸か不幸か、XPが割合に好きな人間なので、
原則、各クラスごとにテストモジュールが
出来上がっているのが普通なので。

ちなみに前回の書き込みで継承を使ったのは
「ただでさえ長文なので少しでも減らしたい」
から、なだけです(苦笑

引用:

状況次第で、今回は楽をしようとした実装とのことですが、
ここで継承を使ったら、呼び出し元がインスタンス化するクラスを変更する
ことになり、却って手間がかかることになるような気がするのですが・・・


というわけで、楽云々は、基本的には「掲示板で書く」
という制約下の話です。もちろん、業務状況に
よっては「業務的に楽をするため」にやることも
ありますが。

引用:

そのような用途で継承をした場合、クラスの名前は何になるんでしょ。
もしや本当に_1、とか_2とかを付けていたりします?


いやさすがにそのような名前は付けないです(苦笑
このネーミングも「掲示板」だから、ですね。
# まぁ講座書くときとかそんな風によく名前
# つけますが :-P

前述のケースの場合、どこどこの部署の何々で使う、みたいな
目的が割合にはっきりとしてたので、その辺の名目を
英語表記で作ってクラス名にしていた記憶があります。

以上。
ブンデス
常連さん
会議室デビュー日: 2005/10/14
投稿数: 22
投稿日時: 2005-11-11 02:09
まさか、俺に返信が来るとはな(藁

引用:

勝ち負けが随分とお好きなようで。
ただ、ブンデス様には大変申し訳ないのですが。
基本的にはこういった議論を「勝ち負け」のレベルでは
見ておりませんので。



嘘つくな。
キミ負けたくなくて必死じゃないか。
ごまかしても皆わかってるぞ。

引用:

そうですねぇ。強いて勝ち負けをつけるのであれば。
私は勝ちました。
この議論で、いくつか得がたい知識が身につけられましたので。
# 勝利条件:得るものがあったか否か



勝手にルールを自分で決めて、「勝ちました」かよ。
そんなわけねーだろ。
誰が見たってお前の負けだよ。

引用:

ご親切且つご丁寧にありがとうございます。
お言葉、大切に頂戴いたします。



だから、キミそんなこと思ってねーだろ。
本当に「ご親切」だと思ってるんなら
書込みばっかりやってないで仕事すれば?

引用:

ブンデス様のご多幸を心よりお祈り申し上げつつ。



キミに祈られると逆に不幸になりそうで怖いです。
masa
大ベテラン
会議室デビュー日: 2005/05/11
投稿数: 108
投稿日時: 2005-11-11 09:40
引用:

がるがるさんの書き込み (2005-11-11 01:52) より:
というわけで、楽云々は、基本的には「掲示板で書く」
という制約下の話です。もちろん、業務状況に
よっては「業務的に楽をするため」にやることも
ありますが。


なるほど、確かにあんまり長いと読むのが辛いですね。
ただ、その分誤解を招きやすくなることもあるので、注意が必要だと感じました。
引用:

前述のケースの場合、どこどこの部署の何々で使う、みたいな
目的が割合にはっきりとしてたので、その辺の名目を
英語表記で作ってクラス名にしていた記憶があります。


うーん、
どこどこの部署の何々で使う
みたいなクラス名を付けてしまうと、拡張性、再利用性がまったく
無くなってしまうような気がしますが、どうなんでしょうか。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-11-11 10:09
すいません、これだけ...

引用:

がるがるさんの書き込み (2005-11-11 01:52) より:

前述のケースの場合、どこどこの部署の何々で使う、みたいな
目的が割合にはっきりとしてたので、その辺の名目を
英語表記で作ってクラス名にしていた記憶があります。


継承したクラスを xx 専用だという名目にするということですね。
やむなくやるにしても、package (J) か、namespace (.NET) などにしないのでしょうか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
はらだいち
会議室デビュー日: 2005/08/30
投稿数: 11
投稿日時: 2005-11-11 10:27
またブンデス出てきたのか。
いいから早く宿題終わらせろよ(藁

引用:

ブンデスさんの書き込み (2005-11-11 02:09) より:

嘘つくな。
キミ負けたくなくて必死じゃないか。
ごまかしても皆わかってるぞ。



引用:

勝手にルールを自分で決めて、「勝ちました」かよ。
そんなわけねーだろ。
誰が見たってお前の負けだよ。



お前のほうが十分必死だけどな(藁
話に乗れないんならノコノコ出てくるなよ。
そもそもお前に「皆」「誰が見たって」とかいう言葉を使われると皆が同レベルと思われて、虫唾が走るんだがな。

引用:

キミに祈られると逆に不幸になりそうで怖いです。


なら、不幸になってくれ。
そのほうが俺は嬉しいから(藁


[ メッセージ編集済み 編集者: 未記入 編集日時 2005-11-11 10:28 ]

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