1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

設計手法・開発手法について、読んだ本・読んでいる本のおぼえがき

Last updated at Posted at 2022-12-13

まえがき

6年ほど努めた某SIerを退職し、転職活動を始めました。
その裏で空いた時間もできるので、それを利用して設計手法・開発手法の勉強をしたいと考え、自分の中でいくつか気になった本を買って読み始めました。
読んだ本・読んでいる本について、思ったことを書いていきます。
(2022/12/26 追記・修正:途中だった本を読み終わったので、その内容について記載)

①リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック

タイトルの通り、「良いコード」を書くためのテクニックがたくさん書かれている本。
変数名・関数名をわかりやすく名付けるという、基礎中の基礎ながらおろそかにしがちな部分から、式・関数の分割といった後回しにしがちな部分まであり、「無関係の下位問題を抽出する」という目からウロコなテクニックもある。
あとがきを入れても231ページなので、個人的にコンパクトで読みやすいという感じ。

②良いコード/悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方

いわゆる「ミノ駆動本」。
クラスベースで、運用保守がしやすい設計手法について書かれている(書籍内では「オブジェクト指向」と呼んでいるけれど、この呼び方が個人的に好きじゃない)。
自分はいわゆるクラスベースでの開発を全くしてこなかったので、書いてあることにたくさん驚いていたのだけれど、こういう記事もあったので、他の本で更に知識をつけて、批判的にこの本を読んで理解できるようになったほうが良いみたい。
なので、内容には触れない。

③リファクタリング(第2版): 既存のコードを安全に改善する

ミノ駆動本でおすすめされていたので購入。

※まだ読んでいる最中(第7章まで)。

読んで字の如し、リファクタリングについてのテクニックが書かれている。
またいわゆる「コードスメル」についての解説もあり、リファクタリングを進めて終わらせるまでの道のりについてある程度指し示しているように思えた。
最初の部分は、かなり基礎的なテクニック(カプセル化など)のみが書かれていたが、後半部分になると関数の移動やデータの再編成、クラスの継承や委譲の使用方法、サブクラスの扱い方まで書かれているため、いわゆるクラスベースでの開発におけるリファクタリング技法がいっぱい詰まった宝箱という感想。

④テスト駆動開発

これまたミノ駆動本でおすすめされていたので購入。

これまた読んで字の如し、テスト駆動開発(TDD)について書かれている。
実際にシステムを作っていきながら開発手法について触れているので、かなり理解しやすい。

試しに、これを読みながらちょっとしたプログラムを作ってみたのだが、手癖でテストを省略しがちということに気づいた。
実践していくのにはかなり慣れが必要なのかもしれない。
ただ、じゃんじゃんテストを実行しながら増えていく「OK」の文字を見るのはかなり楽しかった。

第I部・第II部が実践編という感じで、第III部はTDDにおいて覚える必要のあるパターンが列挙されているという感じ。
巻末に第I部・第II部の「写経」を推薦していたので、それをやるためにもう一度この本を開いてみても良さそう。

おわりに

まだまだ読むべき本はたくさんあるように思うので、もし「この本を読んだほうがいいんじゃないか」というのがあればコメントしていただければ助かります。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?