マルフーシャのこーど。 pic.twitter.com/KrSNm9n3MK
— hinyari9 (@hinyari9) 2024年4月9日
それぞれが独立した条件だから単純にどう階層にifを並べればええやんと思ったけど、画像の書き方だと早期リターンで処理高速化が達成できてると考えると、それぞれのifの中にreturnを入れていく感じになるのかなと思った
寝れなさ過ぎてよくわからんことを考えてた、明日は出社、おわったぜ
「オートフォーマッターを使わない」という条件でよければ、当方はこれくらいまで圧縮して書くかな…テーブル使ったりするよりはifを並べるほうがずっとわかりやすいし、項目の増減も直感的にできる pic.twitter.com/At9ugRjA02
— 後藤 浩昭 / GORRY (@gorry5) 2024年4月9日
これとかとりあえず直すならこういう形になるよって感じでわかるなとなった。
ただ今度はここまで書かれるとマジックナンバーがどうだとか、関数に切り出せばよくね?とかそういう気持ちが湧いてくるので困る。あともとがゲームのことを考えると早期リターンの仕様がなくなるのはよくないのでは?と思った
めっちゃツイートの引用みてたらcaseでよくない?とかelse if..とか書いてあってひょえーとなった。breakなしcaseとかより一層カオスを生むだろと思うし、else ifはそもそも前提のソースコードの要件をちゃんと満たせないでしょという。多分条件的に >= 1がほぼ格で発生するわけで、そこで抜け続けるだけやん
早期リターンの要件を満たそうとするときれいに書くのむずいんだよなこのコード。引用見てると底ガン無視でif並べればいいとしているやつが多いの腹立つな
---
ここまでかいて気づいたけど、new Vector3のところはあかんか。new10回呼ぶのはさすがに無駄すぎる
unlockの書き換えとnew vector3をしつつ、早期リターンもかなえるとなると、単純にunlockとvector3と早期リターン用のboolを返す関数を作るとかがシンプルかなぁ
これ、どうやって書くのが正解だろう?
— ねや (@AriaSub) 2024年4月9日
降順判定のCase文でbreak無しはこれより悪いアンチパターンだし
{threshold,pic,scale}[]の3要素を持った順序配列をループで回して自己判定させる?
ただ、このコードより可読性が下がる気がするし、ループからの脱出構文も気持ち悪いし処理速度も劣る気がする https://t.co/Wz5RSdbCyO
この人はちゃんとわかってる人で気持ちいい。
プロフにFactorio好きと書いてあったのでやはりFactorio好きは優秀なエンジニアの素質あるんだよな。Factorio採用をしよう。Factorioプレイ時間が長い人優遇!履歴書にFactorioのプレイ時間を証明するスクショを添付してください的な