その32016.12.15みなさん、こんにちは。気がつけば北海道では大雪になる12月です。全力で雪だるまとかまくらを作りたい関西在住の水瀧です。第一回、第二回と本を読んだ書評(という名の読書感想)を書いてきましたが、その両方とも、技術本ではなかったですね。(技術ブログなのに・・・。)ですが今回は技術本、読みました。正確にはまだ読んでいる途中ですが。プログラミングの体質改善テクニック」という本です。ご存じの方は多いとは思います。今回のこの本、結構なページ数があるんですよね・・・。読書が苦手な私にはなかなかの量に感じます・・・。言ってないで、内容に行きましょう。各章でどんなことが書かれていたかをできるだけ簡潔に書けたらと思います。すると何回かに分けるかもしれないですが、宜しくお願いします!そもそもリファクタリングって何?はい、定番の「そもそも」ですね。いう私も「リファクタリング」という言葉自体、学生の時には聞いたことありませんでした。リファクタリングというのは外部から見たソフトウェアの振る舞いは変えずに、内部の構造を改善することです。八百屋さんが野菜を売ることに変わりはないけど、仕入先を変えて今までよりも質の良い野菜を売るようになるみたいなことでしょうか。ゲーム開発者のためのテクニックなのかなぁ、という印象があります。最初のうちはざっくりと「リファクタリングが何か」というのが分かればまずはいいのかなと思います。最初の例この本の第1章ではリファクタリングについての知識の導入ではなく、例を出して理解をしてもらうというスタイルになっています。次に、どんな「改善」つまり「リファクタリング」をすれば良いのか、そして最終的には、全体的な振る舞いは変えずに内部の構造がすっきりする、あるいは適切な設計に変更できるよ。いういわゆるデモのような内容です。リファクタリングって何?と思う人はこの章を読むといいですよ。第2章では「リファクタリング」という単語についての定義と、なぜリファクタリングを行うのか、リファクタリングをすることでのメリット・デメリットなど、リファクタリングについての概念的なものを解説する内容です。この章でほほぉと思った内容があります。リファクタリングをするときは機能追加はしない。機能追加をするときはリファクタリングはしない。この境目をなくしてしまうと自分が今何をしているのかを見失ってしなう。いった内容の文章にあった時、確かに、「やっていることがわからなくなれば作業の境目もなくなってしまうのか!結果、期日に間に合わないという悲惨な目にも合うのかも・・・。この章は、リファクタリングって何?〜知識編〜という人や、なんでリファクタリングがいるの?と思う人は読むといいと思います。コードの不吉な匂いこの章では既存のコードの中で、どういったコードがリファクタリングすべきなコードなのか、ある程度勘付けるようになるためのコード例について紹介されています。「こんなコードを見つけたらリファクタリングできるか考えたほうがいいよ!」的なことを教えてくれています。リファクタリングが何かはわかったけどいつやるの?と思う人は読むといいと思います。「今でしょ!」というタイミングを教えてくれています。)まとめ今回はここまでにしたいと思います。いった技術本は順番は違えど、だいたい序盤で知識についてと軽い例が出たりしますね。この本はまずはじめに例を出してくれているので、「習うより馴れろ」な人には出だしから読みやすいのではないかなと思います。私も、「とりあえずはやり方から」というタイプなので、ほぅほぅと思いなが読みました。某イカのゲームもそうでした。第3章では、いつ使えばいいのかねぇ?という人に向けた内容だと思います。この感じだと次回も続きになりそうですね。お会いできればと思います。採用情報クラウドクリエイティブスタジオではエンジニアの方を絶賛募集中です。