最近読んだ本たち

コロナのおかげでせっかくの有給消化なのに外出自粛になってしまった。 引き篭もってひたすら本を読んでいたので、読んだ本をまとめておこうかと思います。

データ指向アプリケーション

転職ドラフトの友達紹介キャンペーンでいただきました。 選んだ理由はプレゼントの上限5000円に一番近かったからという現金な理由です笑

別に業務で分散システムを作るわけでもないしなーということで直接的には仕事に役に立たないかも?と思いながら読み始めました。 本書ではこの点をまず否定され、現代のアプリケーションは大抵の場合、CPUの演算能力ではなくデータ処理能力がボトルネックになってきているという事実を教えてくれました。

分散処理における合意とはなんなのか?など難しい話もたくさんあり正直理解は追いついてません。 ただ、NoSQLにおけるインデックスとはなんなのか?RDBのB-treeインデックスの仕組みについてなどこれまで理解していなかった部分を丁寧に説明してくれているので大きく理解が深まりました。 時間がない方は「第I部 データシステムの基礎」だけでも読んでみるといいと思います。

レガシーコードからの脱却 ―ソフトウェアの寿命を延ばし価値を高める9つのプラクティス

こちらも同じく転職ドラフトの友達紹介キャンペーンでいただきました。

ということで転職ドラフトさん本当にありがたいです。

この本にした理由はずばり、最近業務でkintoneに触って本当につらいなーと思うことが多々あったためです。 kintone自体は悪くないんですが、無秩序に設定されたkintoneのカスタマイズ用JavaScriptが大変メンテナンス性が低い状態でした。

自分で考えてメンテナンス性が高い状態にできないか色々やってみたんですが、果たしてこれは正しい方法なのか?ということが気になりました。 また、初めから自由に作れたとして、私は先人の失敗を生かして正しく作ることができるのか?という点も不安になりました。 これらの疑問、不安を解消できるのではと考えこの本を手にとった次第です。

レガシーコードを作らないための方法論はこれまで種々の本で読んだことがある内容でしたが、単なる方法論に終始せず、その裏側にある原則まで丁寧に書かれており、表層をなぞるだけでなく腹落ちすることができました。 結果として、この本を読むことで私のやっているレガシーコードの改善の方向は間違いではなかったと言い切れるようになりました。 また、正しく作れるのか?という点でもある程度自信を持てるようになりました。 あとはひたすら実践して技術を磨いていくしかないなと思います。

ミックさんのSQL

ずーっと積読になってしまっていたのでこの機会に一気に消化しました。 たしか、ゼロからはじめるデータベース操作は前職に入るときに買ったので約3年半ほど積んでいたことになります。

なんでこんなに積んでいたかというと、シンプルに業務上必要なかったからでした。 インフラエンジニアだと、基本的にSQLに触れる機会もパフォーマンスチューニングするときくらいなもので、なかなか書く機会もありませんでした。 あと、もともとがだいぶものぐさな質なので必要に迫られないと学ぶ気にならないのです。。

転職もしたし、このままではいけないなと思い、今回、DB設計からSQLの基本文法、応用的なSQLの書き方までこの3冊でまとめて学習しました。

  1. DB設計 徹底指南書(設計)
  2. ゼロからはじめるデータベース操作(基本文法)
  3. SQL徹底指南書(応用)

の順番で読むと良いかと思います。

読み終わったあとは以下のサイトで実際にSQLを書いてみました。 パズルみたいで楽しかったです。

sqlzoo.net

社会復帰まであと3日です。 コロナも相変わらずなのでガンガン読んでくぞーー