2020-05-19

プログラミングセンス

認めたがらない人は多いが、プログラミングセンスである。そして、世の中のためにならないので、センスのない人はプログラミングに携わるべきではない。

ポーカーの役を判定するプログラムを書くことを考える。普通の人なら、何も考えずに以下のようなロジック実装するだろう。

これら個別の処理を関数化しておき、順番に呼び出して判定する。場合によっては、手役のオブジェクト定義しておき、強さを比較するメソッド等を作るかも知れない。

ところが、世の中にはどういうわけか、1回のループの中で

のような超複雑な処理を実装する人が存在する。

前者が後者より優れていることには、いくらでも説明が与えられる。たとえば、[wikipedia:結合度]による説明だ。後者実装は、内容結合または共通結合に分類される。明らかにワンペア判定の実装が、フルハウス判定等の結果に影響を与えている。このため、一部を修正した際に他の部分に影響を及ぼしてしまう。また手役ごとに個別テストもできない。前者ではこのようなことは起こらない。

しかし、ことの本質後者瑕疵分析ではなく、後者のようなコードを書いてくる奴は「頭がおかしい」ってことだ。そもそも彼らは物事のとらえ方が常人と異なる。だからちょっとコツを教えたところで、改善することはない。

プログラミングに限らず、世の中には物事のとらえ方が悪い意味常人と異なる奴が多い。正直、成人になって、そういう根本的な部分がズレている奴が、正常な感覚を取り戻すのはかなり難しい。そもそも、そういう奴は自分が異常だということを自覚してさえいないからタチが悪い。

  • まあでも、普通のセンスだったらきれいなコードを書けるかというとそうでもないしな。 教育をうけるか自分で勉強するかしないと。

  • 今のはやりは thread[0]{ if (onepair( cards ) ) print ("onepair" ); thread[1]{ if (twopair( cards ) ) print ("twopair" ); thread[2]{ if (threecard( cards ) ) print ("threecard" ); threads.start(); threads.join(); exit'0)

    • さすがに頭おかしいと思ったけど80コアとかいわれると わからなくはない

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん