ken1flanのブログ

自己紹介・最近やってることなどを書くつもりです。

プリンシプル オブ プログラミング 第3章のメモ(5)

第3章 思想 〜プログラミングのイデオロギー

3.29 7つの設計原理

  • コード妥当性レビュー観点
    • 確かに、そうなりそう…。先を読んだらああってなるかも。
    • コードレビューの指針のようなものを整備してるひといます?
  • SQuBOK、初めて聞きました…。

3.30 7つの設計原理① 単純原理

  • シンプルにこだわる
  • 身に沁みてますね…。
  • 経験を積んだプログラマ…?それはまだ全能感のある時期では…。自分はもう「なんもわからん」期に入っているかも。
  • 読みやすいが一番…!

3.31 7つの設計原理② 同型原理

  • 形にこだわる
  • そろっている中に変わった形があると、読まなくも気づけますしね。
  • …でも、既存のコードの形が微妙なときってどうしたもんですかね><

3.32 7つの設計原理③ 対称原理

  • 形の対称性にこだわる
  • メリットもよくわかります…!…が、面倒さが勝っちゃって…というときは結構ありました…。
    • でも、Rubyを見てると、否定形のメソッドとかもセットになってて、真似しなくっちゃ…という気持ちになっています。

3.33 7つの設計原理④ 階層原理

  • 階層にこだわる
  • railsディレクトリ構造もその一種ですかね…?
  • 階層を変な跨ぎ方をしない、というのも納得ですね。
    • モデルから、コントローラのメソッドを呼ぶとか…コントローラからビューのメソッドを呼ぶとか💦
      • …触るのが嫌で放置しているコードがあります💦

3.34 7つの設計原理⑤ 線形原理

  • 処理の流れは直線にこだわる
  • これ…めっちゃわかりますね。あっちゃこっちゃしない、は鉄則。
  • 分岐をなるべくしません。テストを書くのが大変ですから。
  • 特殊な処理を主処理に混ぜない…たしかによさそうです。

3.35 7つの設計原理⑥ 明証原理

  • ロジックの明証性にこだわる
  • なるほど、手段を選ばず明証性にこだわると、最終的に面倒になって、自然と明証的なロジックのコードを書くようになる…たしかに。
  • わざと意味のない変数名を使うひとはいないと思いますが…名前をつけるのがうまくなかったり、改修によって意味が変わってしまったのにそのままだったり…というのはありそうです。
  • 流用はちゃんとその部分を理解してから!
    • 自分は流用はコピペせずにタイピングしなおしたりしてます。そうすると自然と読むんで…。

3.36 7つの設計原理⑦ 安全原理

  • 安全性にこだわる
  • ifに必ずelse、caseに必ずdefaultを心がけてます。
  • 単体テストはパラメータがnullのとき…は必ずやるようにしています。
  • 安全サイドにコードを書く、は…例えばをちょっと思いつかないけど、気をつけてます!
  • 要求や仕様では、〜以外のときが抜けがちなので、なるべく確認するようにしてますね…。