# 以下、C++的に書くけど文法極めていい加減 Class functionTemplete { bool results; int ERR; function main(); } とかなんとかテンプレート作っておいて各実装はこのクラスの下位のクラス内ローカルな関数かこのテンプレを継承したクラスとして実装してねー、このテンプレに載せてある関数名と変数名は予約語扱いでこういう意味持たせておくインタフェース用の変数だよ。的な比較的ルーズなやり口が通用するというのに(あ、排他しないといけない可能性があるから、厳しくやるには変数いじらせる時はこの関数をこう叩けにしなきゃだめな場合も出るか)…そもそもJavaをわざわざ使う最大のメリットって、オブジェクトのポータビリティと同時にこの辺にある気がするのですが(あ、あくまでもいつもはCとアセンブラだけの人の偏見です ^^;)…
NULLがない世界 (スコア:0)
# え?NULLがあっても、NULLなんかでは初期化しませんか。そうなんですか。
Re:NULLがない世界 (スコア:0)
というコード規約を見たことがあります。なんでそんなことをするのか質問したのですが、納得できる答えはありませんでした。
Re:NULLがない世界 (スコア:5, すばらしい洞察)
たぶん数百行あるメソッドの途中で不適当な名前の変数を宣言して、実際にそれを使うのはさらに数百行後な上に例外は握り潰しみたいなコードを書いたアホがプロジェクトにいたからだろうよ。
Re:NULLがない世界 (スコア:1, 興味深い)
・宣言したけど使われないprivate変数
・宣言したけど使われないimport
・一メソッドにつき数百行は少ない方で、千行オーバー当たり前
・例外はExceptionまたはThrowableで逃さずキャッチ
・捕まえた例外はisInstanceでどんな例外かしっかりチェック
・良く分からないエラーは適当な例外クラスでラッピングして投げ飛ばし
どうやらアホは一人だけではなかったようです。私にはもうどうしようもありません。
というか、どう見ても規約の前にJavaの勉強が必要です、本当にありがとうございました。
Re: (スコア:0)
が作られる、ってのはありがちですね。
Re:NULLがない世界 (スコア:1, 興味深い)
コーディング規約やら設計書の雛形やらを作らせていました。
「できる人」は派遣先や社内プロジェクトで忙しいので、
「売れ残り」にそういった仕事をさせていたわけです。
出来上がった規約のレベルは言わずもがな...
Re: (スコア:0)
Re: (スコア:0)
Re:NULLがない世界 (スコア:1)
もちろん実体作成しとくのが前提なのですが、最初は初心者ですしうっかりミスもありえます。
#最近使ってないので改良されたかな。もしかしてWarningレベル上げればチェックしてくれてたのだろうか。
Re: (スコア:0)
記憶にある限り、C#1.0 のころからずっと未初期化のローカル変数を(out パラメータに渡す以外に)使用したらコンパイルエラー(警告ではありません)になっていたはずです。
フィールドは初期値を明示しなくても使えますけど、これは言語仕様で既定値で初期化されると規定されているので問題にはならないでしょう。
Re:NULLがない世界 (スコア:1)
#もちろん単純ミスだったのですぐ直したのですが、その時に「不親切だなぁ」と思ったのでした。
#もしかするとよほど特殊な状況だったのでしょうか。
Re: (スコア:0)
長年で身についた手癖でしょうね(Re:NULLがない世界 (スコア:1)
単純に、
{
StringData *foo=null;
...
foo=bar();
...
if(!foo) {
fooが設定されてない=函数barでエラー起こしたからあれこれやる
} else {
fooが設定されてる=函数barで正常終了したからあれこれやる
}
}
と言う、C++ではそこそこある(C的な)処理ロジックをやりたかったのでしょう。#1525645 [srad.jp]で既に出されていますが(^^;
Javaでこれを実際にやれば例外で飛ばされる以前にポインタで論理式を表記する事自体が反則なのでなんかすごく酷い邪道に思えてなりませんが…てか、C++と違ってC引きずらないでもいいんだからOOPと言うかカプセル化や継承をうまいこと使ってAPI統一すればいいものを…
# 以下、C++的に書くけど文法極めていい加減
Class functionTemplete {
bool results;
int ERR;
function main();
}
とかなんとかテンプレート作っておいて各実装はこのクラスの下位のクラス内ローカルな関数かこのテンプレを継承したクラスとして実装してねー、このテンプレに載せてある関数名と変数名は予約語扱いでこういう意味持たせておくインタフェース用の変数だよ。的な比較的ルーズなやり口が通用するというのに(あ、排他しないといけない可能性があるから、厳しくやるには変数いじらせる時はこの関数をこう叩けにしなきゃだめな場合も出るか)…そもそもJavaをわざわざ使う最大のメリットって、オブジェクトのポータビリティと同時にこの辺にある気がするのですが(あ、あくまでもいつもはCとアセンブラだけの人の偏見です ^^;)…
まぁ、一度手慣れた手法を崩すのが容易ではないのは分かりますが。
Re: (スコア:0)
Cの後遺症かな
Re: (スコア:0)
Re:NULLがない世界 (スコア:1)
>不意なガベージコレクションを防ぐ効果があるかも
これが理解できない。
nullってことは、GC対象が無いわけだが・・・・