アカウント名:
パスワード:
「ぬるぽ」が NullPointerException から来ていることを知らない人もたくさんいるから、なのかな。でもぬるぽ自体は結果に過ぎないよね。安易にぬるぽを起こすようなコーディングをしてはならない!といいたいのかな。どっちにしても意図がわかりにくいよね。
とはいえ, ぬるぽで検出できるってのは良性ですよね. と言うか, Javaなんかの初期設定が定義されている言語では, 最悪ですらこの程度ってことで.
Cなんかのポインタの初期化は自前でって思想の言語だと, 特にMMUが貧弱な環境であれば, ポインタが未設定の状態で使用すれば何が起こるか全く保障されないわけですし.
対策は「まずはソースよこせ。話はソレからだ」ですかね。Cのようにノーガード戦法な言語だと、オープンソースというライセンス形態を後押ししたくなる理由が少なくとも1つ多いわけですね…
あとソースといえば、支配のきつい職場での馬鹿コーディング規約にもしばしば困らされます。典型的に困るのはいわゆる変数の「初期化」を禁止するという規約。これじゃ(プロセスを)殺してくれといってるようなものです。そういうのを設定してる職場ってマヂあるんです。
馬鹿規約は馬鹿規約やそれに基づいたソースがCLOSEDだからこそ何時までたっても直らないんだろうと私は想像しています。あんなの世間に晒されたら即効で笑いものになったり(コードを)攻撃されたりして信用失墜。秘密主義はその失墜を遅らせてるんですよね。もちろん失墜するリスクは永らく抱え続ける地雷であり、無くなるわけではない。
変数の初期化を禁止するメリットというのは何なんでしょうか。逆なら思いつくのですが。
#業務の片手間にちょこちょこツール書いてる程度なので、先人の知恵的なのはまったく知らんのです。
ぬるぽ対策として、tryしてcatchしたはいいけど、そのまま受け流してしまっているコードが意外とあるんじゃないでしょうか。
try{ doSomething();} catch (Exception e){ // 何もしない}
catchしなければ例外が起きた箇所がその場でわかるのに、例外処理が中途半端だったためにデバッグが面倒になったりってこと、あるんじゃないでしょうか。そもそも例外が起きているのに例外がなかったことにできるから、中途半端な例外処理は危険だ!
ある日、僕は、ぬるぽを見つけたよ~♪だけど、それを、左へ受け流す~♪
そのまま throw し直してくれればいいんだけど,catchして何もしないってのは受け流しすらしないってことだからなぁ.
ぬるぽ対策としては、「初期値を定義しちゃう」ってほうが多くないでしょうかね。try~catchで握りつぶすなという場合、他の例外に比べれば影響が微弱な事が多い。ぬるぽを例にする妥当性は、「危険性」というよりは「頻出性」に近くなってしまう。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
192.168.0.1は、私が使っている IPアドレスですので勝手に使わないでください --- ある通りすがり
ぬるぽ (スコア:1)
Re: (スコア:0)
Re:ぬるぽ (スコア:1, 参考になる)
「ぬるぽ」が NullPointerException から来ていることを知らない人もたくさんいるから、なのかな。
でもぬるぽ自体は結果に過ぎないよね。
安易にぬるぽを起こすようなコーディングをしてはならない!といいたいのかな。
どっちにしても意図がわかりにくいよね。
Re:ぬるぽ (スコア:1)
とはいえ, ぬるぽで検出できるってのは良性ですよね. と言うか, Javaなんかの初期設定が定義されている言語では, 最悪ですらこの程度ってことで.
Cなんかのポインタの初期化は自前でって思想の言語だと, 特にMMUが貧弱な環境であれば, ポインタが未設定の状態で使用すれば何が起こるか全く保障されないわけですし.
Re:ぬるぽ (スコア:1, 興味深い)
対策は「まずはソースよこせ。話はソレからだ」ですかね。
Cのようにノーガード戦法な言語だと、オープンソースというライセンス形態を後押ししたくなる理由が少なくとも1つ多いわけですね…
あとソースといえば、支配のきつい職場での馬鹿コーディング規約にもしばしば困らされます。
典型的に困るのはいわゆる変数の「初期化」を禁止するという規約。
これじゃ(プロセスを)殺してくれといってるようなものです。
そういうのを設定してる職場ってマヂあるんです。
馬鹿規約は馬鹿規約やそれに基づいたソースがCLOSEDだからこそ何時までたっても直らないんだろうと私は想像しています。
あんなの世間に晒されたら即効で笑いものになったり(コードを)攻撃されたりして信用失墜。
秘密主義はその失墜を遅らせてるんですよね。
もちろん失墜するリスクは永らく抱え続ける地雷であり、無くなるわけではない。
Re: (スコア:0)
変数の初期化を禁止するメリットというのは何なんでしょうか。
逆なら思いつくのですが。
#業務の片手間にちょこちょこツール書いてる程度なので、先人の知恵的なのはまったく知らんのです。
Re: (スコア:0)
変数の宣言時に初期化しない事を禁止した規約は見たことがあるが、
変数の初期化を禁止する規約は見たことがないな。
当然、static 変数や、const 変数は使用禁止だ。
C++ならコンストラクタの全面禁止だな。
Re:ぬるぽ (スコア:1, 興味深い)
ぬるぽ対策として、tryしてcatchしたはいいけど、そのまま受け流してしまっているコードが意外とあるんじゃないでしょうか。
catchしなければ例外が起きた箇所がその場でわかるのに、例外処理が中途半端だったためにデバッグが面倒になったりってこと、あるんじゃないでしょうか。
そもそも例外が起きているのに例外がなかったことにできるから、中途半端な例外処理は危険だ!
こんな感じ? (スコア:0)
ある日、僕は、ぬるぽを見つけたよ~♪
だけど、それを、左へ受け流す~♪
受け流さない (スコア:1)
そのまま throw し直してくれればいいんだけど,
catchして何もしないってのは受け流しすら
しないってことだからなぁ.
屍体メモ [windy.cx]
Re: (スコア:0)
僕はそれを左へ受け流す~♪
#ネタが賞味期限切れなのでAC
Re: (スコア:0)
ぬるぽ対策としては、「初期値を定義しちゃう」ってほうが多くないでしょうかね。
try~catchで握りつぶすなという場合、他の例外に比べれば影響が微弱な事が多い。
ぬるぽを例にする妥当性は、「危険性」というよりは「頻出性」に近くなってしまう。