📖

2022年に読んでよかったO'Reilly書籍をまとめた

2022/12/29に公開

はじめに

本記事では、私が2022年に読んでよかったO'Reillyの技術書とその要点を簡潔に解説する。本記事の内容はあくまで一個人の見解にすぎないので、参考程度に。今後O'Reilly関連の技術書を購入する上で、少しでも参考になるものがあれば幸いだ。

リーダブルコード

読みやすいコード、質の高いコードを書く上で重要な原則が体系的にまとめられている。プログラミング初心者から上級者まで幅広く使える。プログラミングを学ぶ上で重要な原則(例:制御フロー、論理式など)やその書き方をこの1冊でまるごと学べる。本質的な内容と具体的なテクニックが両方ともまとめられていて読みやすい。何回も読み直して普段の開発に活かすべき重要な書籍である。

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

アプリケーションの設計・開発における原則を図解やソースコード付きで丁寧に解説されている。今後のアプリケーション開発における原則をデータの量と煩雑さにフォーカスして書かれている。

本書の要旨は、「信頼性」「スケーラビリティ」「メンテナンス性」の三つを念頭に置いてアプリケーション開発を進めることである。その他にも、データの処理の仕方(エンコードなど)、レプリケーションやトランザクションなど、良質なアプリケーションを開発するために必要なテクニックが図解で丁寧にまとめられている。

640ページにも及ぶ非常に分厚い書籍であるものの、書いてあることは本質的で学びがある。今後、アプリケーション開発で生計を立てるプログラマーは全員読んでおくべきである。

レガシーコードからの脱却

本書では、「レガシーコード」を改善するための原則が丁寧に解説されている。「レガシーコード」とは、バグを多く含んでいて、しかも壊れやすく拡張が難しいコードを意味する。「レガシーコード」の保守や管理には多大な労力が注ぎ込まれる。

本書では、「レガシーコード」を修正する上で重要なポイントを9つにわけてまとめられている。その中で、個人的に特に重要だと考えたものは次の3つだ。

  • やり方より先に目的、理由、誰のためかを伝える
  • 協力しあう
  • 設計は最後に行う

本書は「レガシーコード」を修正する――つまり、良質なコードを書くテクニックは書かれていない。「レガシーコード」をなくすための原則に焦点を当てて解説している。本書は、普段自分の書いているコードを根本的に見直すきっかけを与える良書だ。

ソフトウェアアーキテクチャの基礎

ソフトウェア開発における重要な概念である「ソフトウェアアーキテクチャ」を丁寧に解説している。ソフトウェアアーキテクチャの種類とその説明だけではなく、アーキテクチャを設計する上で重要な思考法やコミュニケーションの原則についてもまとめられている。

ITアーキテクトや、これから設計等の上流工程で生計を立てるプログラマーは絶対に読んで損はないだろう。ソフトウェアアーキテクチャはソフトウェア開発を成功させるためには必要不可欠な概念である。

ソフトウェアアーキテクチャ・ハードパーツ

本書は、ソフトウェアアーキテクチャにおける難題――「ハードパーツ」の取り扱い方にフォーカスを当てて詳細に説明されている。数多くあるソフトウェアアーキテクチャの中から、開発しているアプリケーションやプロダクトに応じて最適なアーキテクチャを選択する際の原則、テクニックについて丁寧にまとめられている。

『ソフトウェアアーキテクチャの基礎』とセットで、ソフトウェアアーキテクチャの分析・選択について詳細に学びたいなら本書を購読しよう。ソフトウェアアーキテクチャは非常に難解なので、本書を何回も読み直して基本を身につけておこう。

マイクロサービスアーキテクチャ

マイクロサービスとは、簡単に言えばアプリケーションを複数の小さなサービスに分割して開発・運用されているサービスである。マイクロサービスはLINECookpadで採用されている。マイクロサービスの仕組み、特徴、長所、短所や課題点がまるごとこの1冊で学べる。

マイクロサービスについてわからない場合、あるいは実務でマイクロサービスを設計する必要に迫られた場合に本書の内容が役立つだろう。

モノリスからマイクロサービスへ

モノリシックなアプリケーションにマイクロサービスを適用したり、アーキテクチャの構造そのものを変えてマイクロサービスに変換したりする上で重要な原則が本書で丁寧に解説されている。マイクロサービスを適用させるテクニックはもちろん、マイクロサービスが成長するにつれて発生する課題への対応の仕方まで、豊富な具体例やシナリオを使って詳細に解説している。

実務でマイクロサービスを活用する上で、『マイクロサービスアーキテクチャ』とセットで確認しておきたい非常に重要な書籍である。

リファクタリング・ウェットウェア

認知科学や心理学などの学術的な議論や研究をベースに、人間の脳のメカニズムに最適な学習法や思考法を徹底解説している。それをプログラミング・エンジニアリングにどのように適用させる方法についても丁寧に解説している。

本書で紹介されている学習法は「SMART」な目標を立てることである。「SMART」は、「Specific」(具体的)、「Measurable」(測定可能)、「Achivable」(達成可能)、「Relevant」(適切)と「Time-boxed」(期限を決める)の5つの英単語の頭文字を取ったものである。

新しい技術やツールの使い方をどのように勉強すればいいのかわからないプログラマーは、とりあえず本書さえ読んでおけば問題ないだろう。内容はプログラミング・エンジニアリングに特化しているのですぐに実践できると思う。

Web API:The Good Parts

本書は、良質なAPIを設計・開発する上で重要な原則やテクニックを丁寧に解説している。API設計・開発で生計を立てるプログラマーは全員読んでおくべき。APIに関する書籍は数多く存在するものの、正直本書さえ購入しておけば問題ないだろう。

RESTful Webサービス

本書はRESTというWebのアーキテクチャスタイルについて詳細に解説している、初めての本格的な書籍である。RESTの基礎知識から、RESTfulなWebサービスを設計する上で基本的な原則・テクニックまで幅広く網羅している。REST APIでWebアプリケーションを設計・開発することを検討しているプログラマーは全員読んでおくべきだろう。

入門 Python 3

初心者から上級者までPythonの基礎文法や応用的な内容(例:Webスクレイピングやデータ分析、データベースとの連携など)を丁寧に解説している。O'Reillyだけではなく、日本語のPythonに関する入門書は数多くあるものの、『Python1年生』と本書さえあればPythonの基礎知識をマスターできる。

プログラミングTypeScript

本書はTypeScriptの基礎知識だけではなく、JSXやReact等の活用事例まで徹底解説しているTypeScriptの入門書。TypeScriptを本格的に学習したい初心者は絶対に購入するべきだ。

余談だが、私は本書をきっかけにTypeScriptにますます興味を持つようになった。

Reactハンズオンラーニング

本書はReactの基礎知識やベストプラクティスをソースコード付きで丁寧に解説している良書である。学習・開発でReactを使っているなら買って損はないだろう。直接Reactの知識を説明するのではなく、前置きとしてReactの開発に必要なJavaScriptの基礎知識も説明していてわかりやすい。JavaScriptの基礎知識とReactの基本や開発フローをこの1冊で学習できる。

SQLアンチパターン

本書はSQLを使ってデータベースを設計するうえでやってはいけないことと、その対処法をソースコード付きで詳細に解説している。SQLを学習・実務で使っているなら絶対に買って損はない。SQLのコードをリファクタリングする上では必須の書籍である。

入門 Kubernetes

本書はDockerとコンテナ技術の双璧をなすKubernetes(k8s)の基礎知識やワークフローを詳細に解説している。Dockerのコンテナ作成のプロセスと比較しながら、Kubernetesのワークフローを学べる。学習・実務でKubernetesを使うなら絶対に読んでおこう。

余談だが、KubernetesはRaspberry Piと連携できて電子工作にも応用できる。

おわりに

本記事では、私が2022年に読んでよかったO'Reillyの技術書とその要点を簡潔に解説した。

今年読んでみたO'Reilly関連の技術書はハズレが1冊もなかった。今回の記事で紹介した技術書はまだ私のTwitterで紹介していないものも数多くあるので、年末年始をフル活用して精読し、内容をTwitterやZennでアウトプットしていきたい。

余談

学生時代に読書や技術書の購読を習慣づけることができた。この経験は今後のエンジニアリングで大いに活かされるだろう。

今回の記事で紹介している書籍を網羅できればO'Reillyのオタクを名乗れるだろう。

参考サイト

本記事で掲載されている書籍の画像は以下のリンクから引用したものである。

https://www.oreilly.co.jp/index.shtml

GitHubで編集を提案

Discussion