json)書籍の売れ筋ウォッチング検索:投稿ナビゲーション←ハメに出た。は悪だ、にも通じるところもあるのだけれど。一つ前何個か前で「わかりやすい主張には皆熱中しやすい」と書き、そこで「マジックナンバーへの過度な反応」とさらっと書いたので、そのことについても書いておこうと思う。なんだよ、わかるように書けやこのばかちんが」というのが、それこそ「みんな大好き爺カーニハン大明神さまさま」だとかロブ・パイクだとか、とにかく「色んな教育熱心な先達」によって、口うるさく言われてきた、「伝統芸能」である。このことに異論などあるはずがなく、「せんせー、大好きっ」である。「だからこそ」、皆「絶対視し、根絶に夢中になる」。ほかのもっと根幹にかかわる大事な大事なことを「ほっぽらかしてでも」。(保守性)」の話なのかをきちんと区別することが必要である。非難したわけだが、だからといって「正しさ」と「保守性」の優先度が「ない」と考えるのもこれは違う。「マジックナンバーの件」は「保守性の問題である」と考えることが出来ないエンジニアがなぜか多いのも気になる。「根絶には夢中になる」割には、その本来の「保守性の問題」に全然意識的になれないエンジニアが非常に多いのだ。「誰がいつどのようなタイミングで「保守」を行うのか」の想像力を欠いたまま、「定数は一箇所にかき集めれば便利」ルールに従って、一枚岩の「バカでかい定数かき集めファイル」を発明する。このアプローチにも正当な理由がないことはないが、「保守性」を考えた結果そうするのではなく、「それしか思いつかない」からそうするわけである。だいたいにして、その種の「マジックナンバー」は、「全体で共有されるべき知識」である場合もあれば、そうでない場合も多い。「特定の処理にだけ秘匿されるべきマジックナンバー」はあるのである、多いのである。非常にわかりやすい例。「日付時刻を扱うユーティリティ」というものを書きたい、とする。「アプリケーションの振る舞いを変えるためのプロパティのデフォルト」を管理したいとする。なんて規模になるなんてザラである。(本質が埋もれるよりはマシ。エンジニア間の更新のコンフリクトが「毎日」発生しようが、一向に気にしない。今の例は「保守性」の話でもあるが、「一箇所に集める」という発想そのものが「カプセル化のポリシーに反する」ことが「なぜだか忘れ去られる」ということも表している。「日付時刻関連の処理」に閉じ込めてしまうべき知識なのである。「一箇所触るだけで全体が従ってくれる」というメリットをどこかで中途半端に聞きかじるからこれ「だけが正義」になるのだろうが、なぜそれだけで「みんな大好きオブジェクト指向」の根幹を揺るがすような破壊をしていることに気づかないのかは、ほんと理解に苦しむ。まんせー」タイプである。)そしてこれも以前書いたことがあるが、「最終的にその「定数」を誰がどのように管理するのか」(保守)について意識的でなければ元来おかしいわけである。多くは「保守担当エンジニア」だろうが、「顧客」の場合もある。ソースを触らせて、コンパイルもさせる」という「設計」をする「わけがない」のであって、そうしたものは「設定ファイル」に書き出しておくのが普通である。かなりのバカエンジニアが「円周率」を設定ファイルに書き込むのだ。それはあんたの持ち物ではない。して定数ファイルにかき集めよ」。「円周率」を例にしたのはわけがある。「既にあるのに」発明してしまうバカもこれは「とてつもなく多い」。それが保守性を悪くしていることにも気付かずに、「定数ファイルに追い出すオレ、ちゃんとしてるぜっ」と譲らない。ワタシが「過度の反応」と呼ぶのはこの構造である。「マジックナンバーは悪だ」は「保守性を悪くするからだ」という「意味」を理解しないまま闇雲に絶対視するからこんなことになる。「悪は悪だがもっと大事なことがある」ことを忘れてしまうのは、ひとえに「あまりにもわかりやすく、昔から言われ過ぎているから」なのかもしれない。2021-04-21「3年後の上塗り」:3年経とうが他愛のないままの話として。このページにぱらぱらとアクセスがあるようなので、ワタシもつられて読んだりもしてるので、なんとなくこのページはずっとワタシの側にいる気がしてるんだよね。頻出で起こる悩みだったりするの。一言いってもバチは当たらんかなと思って。いつかあなたもこれについて思い悩む日が来る、かもしれないし、来ないかもしれない。言語のためのヘッダファイル」に定義されている。書けやヲラ」という正義を全うすることが出来る。「C/C++言語なら」。利用者が直接受けられるかといえば、これは「先達次第」。先に苦労してくれた誰かが「マジックナンバーは悪だ」と言う正義を発揮して、どこかのモジュールに定数表を作ってくれているなら、使える。ものと全く意味が違う。「性能」の話をするなら、何倍もランタイムコストのかかる演算である。性能、の問題はともかくとしても、この「重複定義の保守コスト」というものが馬鹿にならない、と思うかどうか、の話ね。フォーマットされたディスクに置かれたファイルに対して、「内容を圧縮してディスク領域を節約する(C)」にチェックされているかどうかだけを問い合わせている。ほかには何も知る必要がなく、ほんとにそれだけを知りたい、というコード。なんだよ、マジックナンバーは悪だ」なのだとして、だよ。「内容を圧縮してディスク領域を節約する(C)」にチェックされているかどうか。ビットが立っているかどうかを調べる。なんだよ」と思うのかどうか。考えようと、基本あなたの自由だ。ワタシ個人としてはこれは「バランス感覚の問題」だと思っているので、都度どうするのがいいか考えればいいと考える。一つの言語だけ使って仕事してる、みたいに、エンジニアとしての経験がまだ浅いうちはなかなかわからないかもしれないけれど、多数の言語を駆使し、頻繁にいろんな言語を行き来するようになってくれば、このパターンの悩みが尽きないことは、だんだんわかってくると思う。いうこともね、少しずつ知っていったらいいと思うよ。2022-06-30「さらなる上塗り」:とあるビデオをみてて、ワタシが良くしてる主張に名前がついてることを今さら知った。これ:英語のビデオからここに誘導されたので英語のを貼り付けたけど、日本語ページも出来てるよ。ついての「くだらない話」」には関係あるともないとも言える、かね。principle.」部分は対応してるでしょ。crop、末尾カット、部分カット、にまつわる雑なメモ投稿ナビゲーション←ハメに出た。2023-12-05雑談だよ。虎の威を借りたっていいじゃないか。モー様を布教したいのだ。2023-06-15びーぴーえす。Shift-左AltとCtrl-Shift-ESC。2023-03-14「で接続が拒否されました。WordPressTop。