何か着ていればいいよ

ソフトウェア技術者の日常や技術の話を書こうと思います。

プログラミング上の勘所についての小ネタ

最近、プログラミング関連で思った事なんか雑多なものを適当に書き残す。

条件分岐の考え方

  • 条件分岐を意味する部分をifやswitchではなく例外やgotoで実現してしまうというアンチパターン
    • 自分にも経験があるが、やっているときは便利やんこれと思っていても…
    • 後々、本質的な意味がボケてしまい可読性が下がってしまうんだよな。
    • 自分はEffective Javaに出会わなければ今でもそこら辺、ちゃんと整理できてなかったかもしれない。

ショートサーキット

  • ifなどのAndやOr条件についてのショートサーキットではなくネストをやたら深くしてしまう
    • これも仕組みの理解が甘い時にやってしまった経験が。
    • ショートサーキットを利用するかネストを深くするかどちらが良いかはコンテキストにもよるけど…
    • あと、Javaなんかの感覚でVB使うとショートサーキットがデフォルトではないのでやられてしまうんだよな。たしか。

nullを極力排除する

  • 変数等にnullが入る場合の考慮点
    • 変数は必ず初期化し、nullを変数に入れない
    • .Net FrameworkやJava APIでもなんでもライブラリからnullが返ってくる場合、nullをそのままにしない
    • 具体的な対応方法としては NullObject パターンを使う
    • NullRefferenceExceptionやNullPointerExceptionが発生するのは基本的にバグ
    • if (hoge.equals("TEST")) より if ("TEST".equals(hoge)) の方を使う
    • 似たようなものでif (hoge == 1) より if (1 == hoge) の方を使うっていうやり方もある。
      • これ、ヨーダ記法って言うらしいね。
      • 意図しない代入を防ぐための手法でnullとは関係ないっす。
      • ヨーダ記法はこれはこれで読みにくいという話も多い。