やわらかテック

興味のあること。業務を通して得られた発見。個人的に試してみたことをアウトプットしています🍵

2023年に読んで良かった本

気づいたらクリスマスが終わっていました。本当に早いですね...。
前回、公開した「2023年に買って良かったもの」に引き続き、年末恒例の「~年に読んで良かった本」についても紹介していきたいと思います。

www.okb-shelf.work

買って使ってみて本当に良かった...と感じたものだけを紹介しているので、ぜひ合わせて読んでみてください。
今年はアウトプットをメインに活動したこともあって、昨年度と比べるとあまり本を読むことができませんでしたが、それでも何冊か衝撃・感銘を受けた書籍がありました。なんだかんだで新しい知識を得ることができる読書が好きで、気づいた時には書店に行ってしまいます。学生の頃は読書とは無縁の生活をしていたのに不思議なものです。

ということで2023年度に読んで良かった本を5冊、順不同で紹介していきます。

RubyでつくるRuby

プログラマーであれば誰しも一度は、自作の言語を作ることに憧れます(はず)。
とはいえゼロからRubyのような自作言語を作ろうとすると、やる事が多すぎて途方に暮れてしまいます。
興味はあるものの、いきなりコンパイラに関する分厚い書籍を読むのは敷居が高いな...と思っていた所、ラムダノートから出版されている「RubyでつくるRuby」という書籍を知りました。

www.okb-shelf.work

Rubyを使ってRubyの文法で記述されたファイルを読み込み、記述されたコードをRubyランタイムで実行できるようにするという、とても面白くチャレンジングな内容です。現行のRubyの全ての文法をサポートするわけではありませんが、四則演算から変数・関数定義といったプログラミング言語に必須とも言える機能をサポートすることが可能です。

この書籍での体験を通じてインタプリタ・コンパイラ・パーサーに興味が出て2023年はいくつかパーサーをメインに実装しました。

たくさんのプログラムを書くきっかけになった「RubyでつくるRuby」はとても素晴らしい書籍でした。

一汁一菜でよいという提案

肌の調子が悪くなった頃に、食生活を見直す機会がありました。
毎朝のパン、マーガリンによって自分の体調が崩れているのではないかと仮説を立てたものの、一体、何を食べれば良いのか悩んでいた時に出会ったのが土井善治さんの「一汁一菜でよいという提案」です。

www.okb-shelf.work

一汁一菜とは、古くからの日本人の食事である「ご飯と味噌汁(...と漬物)」のことを指します。
料理と聞くと、何品も作らないといけない。おしゃれなものを作らないといけないと何かとプレッシャーを感じてしまいます。ただ、土井さんは難しく考えずに「ご飯と味噌汁(できれば季節の食材で)で良いんだよ」と提案をしているのが、この書籍です。

この書籍を読んでから毎朝、できる限り季節の食材を使った味噌汁とご飯を食べています。
味噌汁を毎日、飲むようになってからお腹の調子が良い気がします。2023年度、生活を大きく変えてくれた一冊でした。

モモ

子供の頃はあまり本を読んでいなかったので児童文学というものに触れる機会は全くありませんでした。
本を読んだのは夏休みの読書感想文を書く必要があった時ぐらいなもので、ミヒャイル・エンデ作の「モモ」という書籍を自分は今まで知りませんでした。

www.okb-shelf.work

とあるYoutuberが「モモ」について紹介している動画を見たことがきっかけで興味が湧いたので、いざ購入。
「いうて児童文学でしょ」と思いながら読み進めていたのですが、「モモ」の現代社会への風刺は恐ろしいほど的を得ており、内容に強く惹きつけられました。 灰色の男によって時間を奪い尽くされたモモの世界は、まさしく現代の我々の世界です。
これだけ世界は豊かになったのに多くの人は「時間がない」「忙しい」と口にしています。
本当に大切なものは何なのかを見つめ直すきっかけになりました。もし自分に子供がいたら、子供部屋にそっと「モモ」を置いておきたいと思います。

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

2023年はアーキテクチャについて詳しくなりたいという思いがありました。
とはいえ、アーキテクチャと聞くと難解なイメージがあり、人から薦められる本も分厚いものばかりで興味はあるけど、いきなりそれは難しいなぁ...と思い悩んでいました。
そんなある日、オライリーから「ソフトウェアアーキテクチャの基礎」という書籍が発売されました。

www.okb-shelf.work

書店にて内容を確認した感じ、自分に合ってそうな気がしたので購入して読んでみることに。
結果、アーキテクチャというのは「全てがトレードオフ」ということが分かりました。堅牢性を高めれば複雑性が増したり、パフォーマンスが悪化したりするやもしれません。全ての特性を満たすパーフェクトなアーキテクチャというのは存在せず、自分たちのアプリケーションを深く理解して、継続的にアーキテクチャを改善していくことが重要であるということを学びました。

その前提を理解した上で、アーキテクチャの特性やパターンを知っていく必要があるとのこと。
データベースでもそうですが、全てはトレードオフ、本当にその通りです。

SQLパフォーマンス詳解

データベースについての最低限の知識が揃ってきたところで、パフォーマンスをもっと高めるにはどうすれば良いのかと興味がありました。 データベースでパフォーマンスと聞くと真っ先に思いつくのはインデックスです。インデックスというのも非常に奥が深くて、ケースAでは効率的にインデックスが効くものの、ケースBではインデックスが効かない・効果が薄いということがあります。

タイトルには「SQLパフォーマンス」とありますが、ほぼインデックスに関する内容の書籍でした。
書籍の冒頭でインデックスがどのようなデータ構造で構成されているのかを丁寧に解説している章があるのですが、インデックスのデータ構造について理解をすると、さまざまなケースに応用が効きます。

  • なぜ複合インデックスでは順序が重要なのか
  • NOT・OR検索でインデックスが効かないのはなぜか
  • インデックスの性能劣化はなぜ起こるのか

よりデータベースのパフォーマンスについて詳しくなりたいという方にはおすすめの一冊です。
あまり在庫がない書籍のようなので、買える時に買っておいた方が良さそうです。

最後に

以上が2023年に読んで良かった本、5冊の紹介でした。
今年は技術書に料理本(?)、児童文学まで昨年度よりも幅広いジャンルの書籍を読んでいたみたいです。
アウトプットを中心に頑張ろうと決めた割には、やっぱり本が読みたくなってしまいました。
来年もたくさん本を読みたいと思います。

読者のみなさんが今年、読んで良かった本があれば、ぜひコメント欄で教えてください。
少しでも「ええな〜」と思ったらはてなスター・はてなブックマーク・シェアを頂けると励みになります。