Blog ブログ

新人プログラマが本を読んでみた その3

みなさん、こんにちは。
気がつけば北海道では大雪になる12月です。
全力で雪だるまとかまくらを作りたい関西在住の水瀧です。

さて第一回、第二回と本を読んだ書評(という名の読書感想)を書いてきましたが、
その両方とも、技術本ではなかったですね。(技術ブログなのに・・・。)
ですが今回は技術本、読みました。正確にはまだ読んでいる途中ですが。(汗)
その本はというと、
マーチン・ファウラー著「リファクタリング ー プログラミングの体質改善テクニック」
という本です。ご存じの方は多いとは思います。

今回のこの本、結構なページ数があるんですよね・・・。
読書が苦手な私にはなかなかの量に感じます・・・。
うだうだ言ってないで、内容に行きましょう。
各章でどんなことが書かれていたかをできるだけ簡潔に書けたらと思います。
もしかすると何回かに分けるかもしれないですが、宜しくお願いします!

そもそもリファクタリングって何?
はい、定番の「そもそも」ですね。
かくいう私も「リファクタリング」という言葉自体、学生の時には聞いたことありませんでした。
リファクタリングというのは
外部から見たソフトウェアの振る舞いは変えずに、内部の構造を改善することです。
私なりの言葉で言うと、
八百屋さんが野菜を売ることに変わりはないけど、仕入先を変えて今までよりも質の良い野菜を売るようになるみたいなことでしょうか。
具体的にいうとコードを見やすくしたり、はたまたパフォーマンスが向上したり、
主にゲーム開発者のためのテクニックなのかなぁ、という印象があります。

最初のうちはざっくりと「リファクタリングが何か」というのが分かればまずはいいのかなと思います。
私もそうですから。(いいのか・・・?)
ともかくここから本編ですよ!

第1章 リファクタリング ー 最初の例
この本の第1章ではリファクタリングについての知識の導入ではなく、例を出して理解をしてもらうというスタイルになっています。
まず悪いコードの例を出して、どこが悪いのか、
次に、どんな「改善」つまり「リファクタリング」をすれば良いのか、
そして最終的には、全体的な振る舞いは変えずに内部の構造がすっきりする、
あるいは適切な設計に変更できるよ。といういわゆるデモのような内容です。
リファクタリングって何?と思う人はこの章を読むといいですよ。

第2章 リファクタリングの原則
第2章では「リファクタリング」という単語についての定義と、
なぜリファクタリングを行うのか、リファクタリングをすることでのメリット・デメリットなど、リファクタリングについての概念的なものを解説する内容です。
この章でほほぉと思った内容があります。
リファクタリングをするときは機能追加はしない。
機能追加をするときはリファクタリングはしない。
この境目をなくしてしまうと自分が今何をしているのかを見失ってしなう。
といった内容の文章にあった時、確かに、「やっていることがわからなくなれば
作業の境目もなくなってしまうのか!結果、期日に間に合わないという悲惨な目にも合うのかも・・・。」と思いました。
この章は、リファクタリングって何?〜知識編〜という人や、
なんでリファクタリングがいるの?と思う人は読むといいと思います。

第3章 コードの不吉な匂い
この章では既存のコードの中で、どういったコードがリファクタリングすべきなコードなのか、ある程度勘付けるようになるためのコード例について紹介されています。
「こんなコードを見つけたらリファクタリングできるか考えたほうがいいよ!」的なことを教えてくれています。
リファクタリングが何かはわかったけどいつやるの?と思う人は読むといいと思います。
「今でしょ!」というタイミングを教えてくれています。(古いなんて言わないでくださいね ^三^ )

まとめ
今回はここまでにしたいと思います。
こういった技術本は順番は違えど、だいたい序盤で知識についてと軽い例が出たりしますね。
ですがこの本はまずはじめに例を出してくれているので、「習うより馴れろ」な人には
出だしから読みやすいのではないかなと思います。
私も、「とりあえずはやり方から」というタイプなので、ほぅほぅと思いなが読みました。
某イカのゲームもそうでした。
最後に、
第1章〜第2章では、リファクタリングってなんぞや??という人、
第3章では、いつ使えばいいのかねぇ?という人に向けた内容だと思います。
この感じだと次回も続きになりそうですね。
ではまた、お会いできればと思います。


採用情報
クラウドクリエイティブスタジオではエンジニアの方を絶賛募集中です。
皆さんとともに、是非!良きゲームを作っていきたいと思っております!
採用情報