こすげのブログ

金髪エンジニアのブログ

【読書】「Code Complete 第2版 上 完全なプログラミングを目指して」の感想 その4

はじめに

今回は第2部 高品質なコードの作成第7章 高品質なルーチンを読みました。

ざっと1時間くらいでした。

ルーチンという単語の説明は後でしますが、簡単に言うとメソッド(関数)のことを指してます。

で、このルーチンについての章でしたが、とても勉強になりました。

名前の付け方、処理の分け方、あるいは分ける意味など...。

こうやって文書化されているものを読むのもまた違うなと思いました。

あ、現在44%の読了率になってます。

Code Complete 第2版 上 完全なプログラミングを目指して

Code Complete 第2版 上 完全なプログラミングを目指して

ハイライト

今回は3つほどハイライトしました。

第7章 高品質なルーチン

ルーチンとは、1つの目的で実行できる個々のメソッドまたはプロシージャである。

C++の関数、JavaメソッドVisual Basicの関数やサブプロシージャなどはすべてルーチンである。

使い方によっては、CやC++のマクロもルーチンと考えることができる。

高品質なルーチンを作成するためのテクニックの多くは、それらにも適用できる。

第7章 高品質なルーチン

はい、この章というより本全体で出てくるルーチンの説明です。

このルーチンを高品質にするためにどうするか。

また低品質(悪い)ルーチンはどういうものなのかという説明をしてくれた章でした。


ルーチン作成する最も重要な理由は、プログラムの複雑さを和らげることである。

ルーチンを作成して情報を隠ぺいし、詳細について考える必要をなくす。

7.1 | ルーチンを作成する理由

簡単に、そして最高な理由が述べられています。


次に、ルーチンを作成する正当な理由をまとめておこう。

  • 複雑さを低減する。
  • 中間部分をわかりやすく抽象化する。
  • コードの重複を避ける。
  • サブクラスを作成しやすくする。
  • 処理順序を隠ぺいする
  • ポインタの処理を隠ぺいする。
  • 移植性を向上させる。
  • 複雑な論理評価を単純にする。
  • パフォーマンスを向上させる。

さらに、第6章で示したクラスを作成する理由の多くは、ルーチンを作成する正当な理由でもある。

  • 複雑さを分離する。
  • 実装の詳細を隠ぺいする。
  • 変更による影響を限定する。
  • グローバルデータを隠ぺいする。
  • 制御を一元化する。
  • コードの再利用を促進する。
  • 特定のリファクタリングを実行する。

7.1.2 | リーチンを作成する理由のまとめ

この章で語られる全てのまとめみたいなところです。

ルーチンの役割みたいなものでしょうか。

ここらをしっかり意識してかけば、スパゲッティーコードなどと呼ばれることはなくなると思います。

感想

ハイライト以外の部分は言語によるものでそこまで重要ではない(大切なことではありますよ!)なと思い、ハイライトしませんでした。

ただ、知っていると知らないというだけで階級は変わるんだろうなと。

この本は基本C++ソースコードが書かれていますが、難しいものではありません。

ちなみに僕はC++を少し(ゲームのお手伝いみたいなので読んだ)くらいしかわかりませんが雰囲気で分かった気になる程度です。

しかもC++ソースコードを読めることがそこまで重要ではないです。

本当にプログラミングの教科書みたいな感じで書かれていました。

他にもJavaやらで書かれてはいますが、そもそもソースコードがそこまで出現しません。

わかりやすい文章で書かれています。

読んでいて文章に引き込まれている、考えさせられている感がすごくて結構集中して読めています。

飽きがこないというのがいいのかもしれません。

とりあえず時間があるGWのうちにたくさん読んでおきたいなーって思っています。

Code Complete 第2版 上 完全なプログラミングを目指して

Code Complete 第2版 上 完全なプログラミングを目指して

終わりに

どーでもいいですが、今ReSwift熱がすごいです。

in.fablic.co.jp

github.com

いろいろなサンプルあったので読んでみましたが、おしゃれだなーって。

これ使ってアプリ作りたいなと思いました。

以上です。