- PR -

現場に従うべきか・・・return "null";

投稿者投稿内容
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-02-19 00:29
引用:

私の経験した例では・・・。NULL 許可の Numeric 列を VB6 の Long 型で扱うというものだったのですが、Long 型には NULL 値を代入できないので、常にクエリで isnull(hoge, 0) としていたのです。(設計上、有効な値として 0 が存在することはありません。) それなら、データベース設計として 無効値 = 0 としてしまっても良いのではないかと思いました。

さすがに、日付型の無効値は特定の日付(1900/1/1など)で代用することはせず、NULL としていますが、数値型、文字型での NOT NULL は有用だと思います。


私も同じような経験があります。
プログラミングのための設計は、有用だと思います。
特に数値型などで演算を行う場合、
null==0で扱いたいケースもありますね。

逆にダメな例として未入力と空文字列を区別するために、
未入力フラグを持たせる設計もありました。
単純に値にnullを設定すればいいパターンです。

私が言いたかったのは、全てnot nullが悪いという話ではなくて、
ケースに応じて設計すべきという内容だったんですが、
私の言葉が足りなくて、適切に伝えられなかったみたいです。。。

引用:

データを参照する際にいちいちNULL対策しなくて良いので、特別な理由
がない限りカラムにNOT NULL制約をつけるのは悪いことには思えませんが。


特別な理由がないのにもかかわらず、「NOT NULLじゃなければダメだ!」
って規約で苦労したことがあるんです・・・
上でも書きましたが、NULL対策を行わない代わりに、
別カラムに存在する有効フラグをチェックするという方法でした。
Take-C
常連さん
会議室デビュー日: 2002/05/09
投稿数: 23
投稿日時: 2006-02-19 02:29
きちんとした理由があるのならこうするのもアリでしょう。
もし妥当な理由がない場合、未記入さんのようにnullにするか例外を返すのが自然だと思います。

私がこういう状況に遭遇した場合、大抵「全員で決めたルールだと言うのなら従います。しかし私が指摘したことは議事録に残しておいてください」と言います。

引用:

未記入さんの書き込み (2006-02-18 11:07) より:
return "null";



これ、せめて定数にでも置き換えればまだマシなんでしょうけどね・・・

コード:
public static String ERROR_STRING = "null";

・・・

return ERROR_STRING;



引用:

未記入さんの書き込み (2006-02-18 11:07) より:
return "null";

プロジェクトに途中参画しました。
どのソースも、null を "null" と書いています。

文字列を返すメソッドでもエラーが発生時には
文字列の "null" を返すようになっています。
結果として "null" を返す場合には識別できないと指摘したのですが
そのようなケースはあるはずがないという感覚。

"null" を null に変更するコストと納期を考えると、
割り切って、今のやり方で進めたほうがよいと思ったりもしているのですが
★それ以上に悲しいのが、誰も疑っていないということです。

現場のやり方でやるのがプロの仕事人なのでしょうか・・・
非常にくだらないことですが、ちょっと悩んでいます。


koe
大ベテラン
会議室デビュー日: 2003/07/13
投稿数: 198
投稿日時: 2006-02-19 08:28
これもある意味、Null Objectパターンの一つとでもいえるのでしょうかね。
しかし、String以外の型ではどうしているのか気になります。
言及していないので多分Null Objectなんて作ってないのだと思いますが、
やり方が一貫しないけど気にならないのでしょうか。
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2006-02-19 23:56
null の無いプログラム言語が残っている以上、東証システムみたいに。
残っているのは、旧技術に「精通」した設計者かもしれませんが

[ メッセージ編集済み 編集者: MMX 編集日時 2006-02-19 23:59 ]
未記入
会議室デビュー日: 2006/02/08
投稿数: 12
投稿日時: 2006-02-20 08:47
スレッド主です。

今回の "null" の件は、ほんの一例です。

プログラム言語の生産性が上がり
見よう見まねでもある程度のものができるゆえに
あまり深く考えないのでしょうかね。。。

メンバー全員、これが普通と思い込んでいるので
意見を言える雰囲気でもありません。
このこと以上に大きな問題を抱えているので
そちらがが優先という理由もあります。

DBの話が出たので。
カラムの NULL も "null" です。。。
うちうせん
ベテラン
会議室デビュー日: 2003/08/08
投稿数: 96
お住まい・勤務地: 福岡県
投稿日時: 2006-02-20 08:58
nullを"null"として返すことで意味がありそうなのは・・・戻り先で必ずstringの有効値が返ってきてるという前提な処理があるときでしょうか?
まぁ・・・そういう設計な時点で無茶だとは思いますが^^;

_________________
by うちうせん
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2006-02-20 13:34
引用:

未記入さんの書き込み (2006-02-18 11:07) より:
★それ以上に悲しいのが、誰も疑っていないということです。



誰か一人の人が作ったプログラムがそんな作りになっていた、というのなら分かりますけど、プロジェクト全体でそんな風になっているなんて・・・




逃げて〜!!

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