もと田舎っぺ大学生録

ある田舎県の田舎の町で大学生やってる僕が、思ったこと、やったこと、勉強したこと、などをつらつら書いて行く

今年読んだ本まとめ

はじめに

Aizu Advent Calendar 2019 12日目の記事です!

今年は社会人一年目で、春先はバタバタしていましたが、夏あたりからちょくちょく時間を見つけては学生の頃に読めなかった本を読んでいました。 そこでその中で個人的によかったものを数冊話していこうと思います。 (基本的に超絶有名な本ばかりなので、読みあさっている人にとっては対してためにならないかもです!)

新装版 リファクタリング 既存のコードを安全に改善する

この本は、言わずもしれたリファクタ本です! 1990年代のソフトウェア開発の経験から、ソフトウェアの負債を解消する手法である「リファクタリング」の手法をjavaでの実装コードと手順で細かく説明してくれる名著です

なぜ読みはじめたのか?

この本を読もうと思ったきっかけが、昨年オブジェクト指向やソフトウェアの設計にハマって、DDDやらクリーンアーキテクチャやらを読んでいるときに、出典として出てきた本だったので、いずれは読んでおきたいなと思っていて、学校の売店で買って持ってはいたんですが、なかなか時間がなく積み本になっていますた。 夏ぐらいに自分のコードの汚さやどうしようもなくいいコードがかけないと感じでいるときに、思い出して読みはじめました! (元々、買ったときにさくっと読んだんですが、意識が違ったので全く頭に入っていませんでした🙇‍♂️)

どうだった?

実際リファクタリング手法としても、古い本なので現代使えるor使われている手法かというと、そうではないとは思います。

でも、その方法やリファクタリングした結果というものは、これまでに多くみてきたソースコードの至る所でみてきたものに似ていたり、書いたことのあるものが出てきたり、これまで意識していなかったことなどもありとても面白く勉強になりました。

特に、僕は大学の授業ぐらいでしかJavaを触ってないですが、Java1.1のコードで書かれていて古いんですがシンプルに書かれているので、個人的には読みやすかったです!

リファクタリングの本なんだから当たり前だろ!と言われたらそれまでですが、、、、)

あとは、オブジェクト指向の設計の考え方だったりも見えて、「あのアーキテクチャでも同じ説明あったな〜」「あのアーキテクチャの説明では省かれていたな〜」みたいな内容があってとても気づきになったし、また最近第二版の日本語訳も出て、そちらは全てJavascriptで書き直されてAPI設計などの話も出てきたりと、モダンなものもあるようなのでそちらも読みたいと思います!

bookwalker.jp

https://www.amazon.co.jp/%E3%83%AA%E3%83%95%E3%82%A1%E3%82%AF%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0-%E7%AC%AC2%E7%89%88-%E6%97%A2%E5%AD%98%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E5%AE%89%E5%85%A8%E3%81%AB%E6%94%B9%E5%96%84%E3%81%99%E3%82%8B-OBJECT-TECHNOLOGY/dp/4274224546/ref=asc_df_4274224546/?tag=jpgo-22&linkCode=df0&hvadid=342458612368&hvpos=1o3&hvnetw=g&hvrand=8769093249918098339&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1028853&hvtargid=pla-845891054614&psc=1&th=1&psc=1www.amazon.co.jp

増補改訂版Java言語で学ぶデザインパターン入門

こちらも言わずもしれた名著、デザパタ本ですね! この本も1990年代から2000年代のころにこれまでのソフトウェアの開発経験から、オブジェクト指向でこういう風にかくと拡張性があり保守性の高いコードがかけるというパターンを23個紹介している本です。

なぜ読みはじめたのか?

これも元々、いろんなアーキテクチャの話だったり、他の記事だったりでよく出てくる出典の一つで、リファクタリング本にもかなり出てきます。 なので、「デザインパターンオブジェクト指向やソフトウェアの関係性って一体なんなんだ」というのを知りたくて、読みはじめました!

どうだった?

まず、この本はリファクタ本の後に読んだのがまたよかったですね。 「このデザパタはあのリファクタに出てきたな!」ってのがあったり、逆に「これ先にやっとけばリファクタをしなくて良さそう」とか考えながら読めたのが一番よかったですね!

あとは、デザパタは今ある流行りのアーキテクチャの部品となっていたり、元になる考え方を産んでいるんだな〜っているのがよくわかりました。PCのGUIソフトウェアの時代の話なので、当然APIやwebフレームワークの話はないですし、ましてや、スマホのス文字すら出てきません。しかし、23のデザパタは確実に現代の技術に足跡を残していて、かつ、その歴史を作っているので、学んでおくと今の技術を学ぶ手助けになるのは間違い無いと感じさせてくれた一冊でした

https://www.amazon.co.jp/%E5%A2%97%E8%A3%9C%E6%94%B9%E8%A8%82%E7%89%88Java%E8%A8%80%E8%AA%9E%E3%81%A7%E5%AD%A6%E3%81%B6%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E5%85%A5%E9%96%80-%E7%B5%90%E5%9F%8E-%E6%B5%A9/dp/4797327030/ref=asc_df_4797327030/?tag=jpgo-22&linkCode=df0&hvadid=295723231663&hvpos=1o1&hvnetw=g&hvrand=16034287059798744257&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1028853&hvtargid=pla-524447502226&psc=1&th=1&psc=1

プリンシプル オブ プログラミング 3年目までに身につけたい 一生役立つ101の原理原則

この本は著者さんのブログから厳選された内容のようやく内容が書かれた本で、ソフトウェアエンジニアになるにあたって、重要となる用語や考え方が簡潔にまとめられた本です

なぜ読みはじめたのか?

年上のエンジニアの方と話す機会があるときに、わからない用語や知識不足で内容と用語が合致していないものなどで、頭がこんがらがることが多々ありました。しかし、この本ベースで、「この本に簡潔にまとまってるよ」と言われて、手に取ったのが最初でした。 そこから、一回全部目を通してみるかという感じで読みはじめました。

どうだった?

知っていることもたくさん載ってましたが、逆に「この自称や考え方に、こんな名前がついていたのか」とか、今まで曖昧だったものがクリアになった部分もありました。 逆に、この本を読んでから、ブログや記事を読むときにその言葉の意味合いや使われ方が正しいかどうかに注意して読むようになり、そういう視点を持たせてくれた本でした! (ブログを読んでいた人からすると物足りないようですが、僕はアーカイブしか読んだことがなかったので、だいぶためになりました)

https://www.amazon.co.jp/dp/B071V7MY82/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1

(おまけ) クリエイティブと日課 KEEP GOING 浮き沈みから身を守り進みつづけるために

技術本では無いですが、エンジニアをするにあたって、無駄なものを作りたくなっるときや、意図的では無いにしろ無駄になってしまったことをやるときに落ち込んでしまいがちです(自分がそう)そんな人には読んで欲しい本です。

著者がやっているクリエイティブなものを作り上げるための日課や考え方が書かれていて、中身の構成も書き方や構成も面白く、クリエイティビティをあげてくれそうな日課や無駄だと思っていたことにも意味があると思えるようになる本なので是非読んでみてください

Amazon CAPTCHA

まとめ

このほかにもちまちま読んでいますが、個人的にためになったものはこの四冊かなと思っています。まだまだ、最近友達に勧められている本や読みたいものがたくさんあるので、年末年始で読んで行けたらいいなと思ってます!