アカウント名:
パスワード:
純粋に処理の面だけで言えば変数(この場合は関数の返り値)の操作なんてInitとSetとGetの3つしかないんだから、これは良いプログラマかどうかなんて話じゃなくて (1)返り値のInitで何をセットするか (2)条件チェック処理で、条件を満たさないelseのケースでも返り値に何かをSetするかという仕様を決めて実装するかどうかだけのことじゃないの?もちろん仕様はありません動いているように動きます、ってのは論外だが、それが現場のプログラマの良し悪しだけで決まるかと言われると、、
個人的には(1)でfalseをセットして、(2)ではelseでは何もセットしない(Setするのはifのケースのみ)だったことが多いかな。ツィートに似たケースとしては、ある{ステータス, イベント}のセットを受けて処理をする関数配列が思い浮かんだので、ここで空の配列が来た場合はどの関数も走らせちゃいけないからfalseを返させると思う。例外をthrowするかどうかはそのfalseを受けた後処理で決める。
でもこうやって具体的に考えてみると(1)についてはtrueで返り値をInitするケースがないとは言い切れないな、ただ(2)で条件を満たさなくても返り値に何かをSetするケースは思い当たらないかも(条件合致以外で返り値の操作が必要なのはそもそもスジが悪い、ハズ)いずれにせよ仕様の思考実験としては面白いけど、これでプログラマーの良し悪しが分けられるとは思わないな。
//知ってるか? 人間は大きく2つに分けると死んじゃう [twitter.com]んだぜ?
そう、仕様次第。もし想定されておらず発生しうるなら、それを指摘、報告できるのが良いプログラマーかな。
「仕様定義側に立ったとき、きちんと仕様に入れる入れないか」のほうが経験値や能力を測るにふさわしいのでしょう。
その関数の仕様次第、っていうのはみんな百も承知のうえでどう規定されているのが自然であるかという話かと思っていましたが。
自然かどうかではなく良いプログラマかどうかという話ですね思い込みで書き込まず、本文の文面を自分で読んでください
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
あと、僕は馬鹿なことをするのは嫌いですよ (わざとやるとき以外は)。-- Larry Wall
仕様を決めたか、決めなかったか、それが問題なだけだ (スコア:1)
純粋に処理の面だけで言えば変数(この場合は関数の返り値)の操作なんてInitとSetとGetの3つしかないんだから、
これは良いプログラマかどうかなんて話じゃなくて
(1)返り値のInitで何をセットするか
(2)条件チェック処理で、条件を満たさないelseのケースでも返り値に何かをSetするか
という仕様を決めて実装するかどうかだけのことじゃないの?
もちろん仕様はありません動いているように動きます、ってのは論外だが、それが現場のプログラマの良し悪しだけで決まるかと言われると、、
個人的には(1)でfalseをセットして、(2)ではelseでは何もセットしない(Setするのはifのケースのみ)だったことが多いかな。
ツィートに似たケースとしては、ある{ステータス, イベント}のセットを受けて処理をする関数配列が思い浮かんだので、
ここで空の配列が来た場合はどの関数も走らせちゃいけないからfalseを返させると思う。
例外をthrowするかどうかはそのfalseを受けた後処理で決める。
でもこうやって具体的に考えてみると(1)についてはtrueで返り値をInitするケースがないとは言い切れないな、
ただ(2)で条件を満たさなくても返り値に何かをSetするケースは思い当たらないかも(条件合致以外で返り値の操作が必要なのはそもそもスジが悪い、ハズ)
いずれにせよ仕様の思考実験としては面白いけど、これでプログラマーの良し悪しが分けられるとは思わないな。
//知ってるか? 人間は大きく2つに分けると死んじゃう [twitter.com]んだぜ?
Re: (スコア:0)
そう、仕様次第。
もし想定されておらず発生しうるなら、それを指摘、報告できるのが良いプログラマーかな。
Re: (スコア:0)
「仕様定義側に立ったとき、きちんと仕様に入れる入れないか」のほうが経験値や能力を測るにふさわしいのでしょう。
Re: (スコア:0)
その関数の仕様次第、っていうのはみんな百も承知のうえで
どう規定されているのが自然であるかという話かと思っていましたが。
Re: (スコア:0)
自然かどうかではなく良いプログラマかどうかという話ですね
思い込みで書き込まず、本文の文面を自分で読んでください