アカウント名:
パスワード:
修正前のコードにマジックナンバー的な値がずっと存在していたのが少し残念だね。
screen_priv->fake_interval = 16667;
ここでの問題は2つあり、(1) 単位が不明であること(2) 値の設定意図が不明であること
(1)については、時間長を表すユーザ定義型を作れば型検査の恩恵も受けられるようになり、例えばusec値をmsec値に代入するといったミスをコンパイル時検出できる。ただしCだと直接的な方法はない(structでそれっぽいことはできるが…)ので、次善の策としてコメントで単位をつける方法か。
(2)についてはdiffを見れば分かるとおりコメントで十分に親切な補足があり、「interval」と「60Hz」の意味が取れれば問題なく理解可能。ただこれは程度問題であるので、どれだけ詳しく書いたとしても、教条的に全部コメントに書かないと不満な外野が文句を言ってくる。実務上は、そういった声は適当なところで切り捨てることになる。
一つ上のレイヤに移ると、「60Hzをこの場でハードコードすべきか」という問題が出てくる。この判断は存外に難しい。
マクロ化(名前付き定数化)する方法は安易に選ばれがちで、確かに可読性は上がるものの、識別子の文字数(安全範囲は32文字くらい?)でしか情報を伝えられない。それで足りなければコメントで補足する方法になるが、今度はコメントとコードで情報が二元化して経時で乖離する危険性が出てくる。
本件はフォールバック設定の話で、この値をこのソースファイル外部で使う状況は想定しづらい。したがって、コメント付きでハードコードする判断は適切であったと考えられる。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
「科学者は100%安全だと保証できないものは動かしてはならない」、科学者「えっ」、プログラマ「えっ」
指定可能か否かは置いといて (スコア:0)
修正前のコードにマジックナンバー的な値がずっと存在していたのが少し残念だね。
Re:指定可能か否かは置いといて (スコア:0)
ここでの問題は2つあり、
(1) 単位が不明であること
(2) 値の設定意図が不明であること
(1)については、時間長を表すユーザ定義型を作れば型検査の恩恵も受けられるようになり、例えばusec値をmsec値に代入するといったミスをコンパイル時検出できる。ただしCだと直接的な方法はない(structでそれっぽいことはできるが…)ので、次善の策としてコメントで単位をつける方法か。
(2)についてはdiffを見れば分かるとおりコメントで十分に親切な補足があり、「interval」と「60Hz」の意味が取れれば問題なく理解可能。ただこれは程度問題であるので、どれだけ詳しく書いたとしても、教条的に全部コメントに書かないと不満な外野が文句を言ってくる。実務上は、そういった声は適当なところで切り捨てることになる。
Re: (スコア:0)
一つ上のレイヤに移ると、「60Hzをこの場でハードコードすべきか」という問題が出てくる。この判断は存外に難しい。
マクロ化(名前付き定数化)する方法は安易に選ばれがちで、確かに可読性は上がるものの、識別子の文字数(安全範囲は32文字くらい?)でしか情報を伝えられない。それで足りなければコメントで補足する方法になるが、今度はコメントとコードで情報が二元化して経時で乖離する危険性が出てくる。
本件はフォールバック設定の話で、この値をこのソースファイル外部で使う状況は想定しづらい。したがって、コメント付きでハードコードする判断は適切であったと考えられる。