Magnolia Tech

いつもコードのことばかり考えている人のために。

2023年買ったもの(技術書とか)

2023年のお買い物、技術書編です。

技術書以外はこちら

blog.magnolia.tech

とりあえずノータイムで買っちゃえ!損は無いよ!という3冊

他に、類似の本がないか、有ってもこっち買っておけばよくね?という3冊

なっとく!関数型プログラミング

Scalaをベースとした関数型プログラミングの学習本。オブジェクト指向言語であり、関数型プログラミング言語であるScalaの特性を生かして、命令型から宣言型のコードの書き方への変え方を学んでいくスタイル。

前半の凄まじい丁寧な学習のステップと、後半の「ここまで一気にやらなくても良くない?」の落差もすごいけど、ページ数の厚さに躊躇せず、前半1/3くらいを時間をかけて丁寧に学習するくらいが良いと思います。

周りに良い先生が居れば別ですが、そうでなければこの本でじっくり学ぶのはかなりお勧めです。

実践プロパティベーステスト

プロパティベーステストの本がこの先、さらに日本語で出版される日が来るのか分かりませんが、かなり確率は低い気もするので、さっさとこの本を読んで学習しておくと良いと思います。

例題がErlang、Elixirなので、プロダクションコードを書く言語としては決してメジャーとは言えない言語ですが、逆に言えば自分が使っている言語用のプロパティベーステストのライブラリを使って書き換えていく、という学習法が取れるところが良いですね。

ちょうぜつソフトウェア設計入門 - PHPで理解するオブジェクト指向の活用

出版自体は2022年の12月の終わりですが、今年に入っても何度か読み直しましたし、色々な人にお勧めしました。今年の本といってもいいかな。

表紙のかわいさに騙されてはいけません。これ本当にちゃんと理解する気持ちで、コードを書いたり、周辺情報を調査したり、周りの人とディスカッションしながら読み進めたら、平気で1年かかる密度の本です。

現代的なソフトウェアのプラクティスが、ものすごい密度で書かれています。でも表層的に読んで「へーそうなんだ」と思っても、意味はないので自身の血肉となるまで考えながら読むことが大切です。

その分野を知りたい人にはぜひお勧めの本

技術カンファレンスのマスターガイド:企画から運営までの完全手引き

techbookfest.org

残念ながら現時点で入手する方法が存在しませんが、カンファレンスや勉強会を運営する人のためのリファレンスの決定版。長年勉強会を開催してきた人でも、新たな学びや視点がてんこ盛りなので、機会が有ればぜひ読んだ方がいいです。

Functional Programming in Scala, Second Edition

早く日本語版が出ないかなー、出たら色んな人にお勧めするのになーと、邦訳を首を長くして待っている1冊。

Scalaをベースに、関数型プログラミング用のライブラリ(Listとか、Optionとか、Stateとか)を実際に作りながら、その概念を理解する、というストロングスタイルな1冊。

『なっとく!関数型プログラミング』が、表側(利用者視点)から関数型プログラミングを学ぶ本だとしたら、こちらは裏側(ライブラリの提供者側視点)から関数型プログラミングを学ぶ本といえます。 この2冊をセットで読み進めて、そのテストを『実践プロパティベーステスト』による理解を元に、プロパティベーステストで書けばかなりの実力がつくこと間違いなしです。

1st Editionはずいぶん前に日本語訳が出ていて、今でも内容は全然古くなっていないので、Scala3対応や、回答の解説はGitHub上のサンプルコードを読み解きます!という人にはこちらでも大丈夫です。ただ、練習問題の解答例が本誌上に無い中で読み進められる人はなかなか居ないかも……とは思ってしまいました。

スクラムの拡張による組織づくり

スクラム開発をどうやってスケールさせていくか?その方法論はいくつか有るけど、その中でも「Scrum@Scale」をベースにコミュニケーションを軸とした組織の作り方、運用の仕方を解説していく本。

組織論みたいな本、なかなか苦手なのですが、これは開発組織をスケールさせるための本、ということで非常に興味深く読むことができました。

ソフトウェア設計のトレードオフと誤り

個人的には、本書の中心的なテーマであるトレードオフではなく、「7章 日付と時間のデータを効率よく扱う」の内容が一番刺さった。この章、全然トレードオフの話をしていなくて、いかに日付や時刻、時間を扱うライブラリの設計が難しいのか?ということが延々と語られる章になっている。他の章も十分に役に立つのだけど、これだけ身近なテーマである「日付と時間」がここまで大変な設計の上に成り立っているのか!ということはみんな理解しておいた方が良いと思う。

ブログのエントリも凄いブクマを集めたけど、みんなそれだけこのテーマに関心が高い、ということなのだと思っている。

blog.magnolia.tech

レガシーコードとどう付き合うか

若干、タイトルと中身のメインテーマがずれていると思うけど、投資フェーズと組織の開発戦略、採用を絡めて論じる、という切り口がすごく新鮮で、これは(それぞれの会社ごとに状況は違っているかもしれないが)、読んでおいて損の無い1冊だな、と思いました。

オブザーバビリティ・エンジニアリング

どんどんアプリケーションを構成するコンポーネントが増えていくなかで、「監視、つらい」という場面も増えてきました。

本書は、構造化ログ、トレース、OpenTelemetryというキーワードを元に、どうやってアプリケーションのリアルな振る舞いを追いかけ、おかしな挙動を速やかに検知するのか、ということを理解するための本です。

いやー、ほんと、異常終了すればスタックトレースと、アクセスログを見ればよかった時代は、もう遠い過去の世界なんですね、というか、なんでこんなに辛いんだっけ?というと、それを軽減するための仕組みを導入していないだけでは?という話に行き着くので、まずは読んでおきましょう。

マスタリングLinuxシェルスクリプト 第2版

令和最新版のシェルスクリプトの入門書とリファレンスがセットになった1冊。

ブログのエントリでも書きましたけど、なんかコンテナの勉強しているのか、シェルスクリプトの勉強をしているのか自分でも分からなくなってきたので、もう一回腰を据えて勉強するぞ!と思って読みました。

blog.magnolia.tech


Rustとか、コンテナとか、クラウドとか、その辺が全然フォローできていないんですけど、それはそれであくまで自分の興味の向くままに読んだ結果なので。

積んだまま読めていない本も本当にたくさん有るし、読んでも紹介するほどでもないな、と思った本はブログにも書いてませんしね。

というわけで、来年も色々な本を読んでいきたいと思っています。

なお、技術書を除くと、この2冊がよかった。

前者は小沢健二のソロデビュー時のマネジメントや、数々のコンピレーションアルバムの編集をやっていた井出靖さんの視点から見た90年代の東京の音楽シーンの回顧録。 後者は三体の前日譚というか、直接の繋がりは無いけど、いかにも劉 慈欣らしい、静かなムードの中で進むSF。

『井出靖 / Rolling On The Road 僕が体験した東京の1960年代から90年代まで』

『劉 慈欣 / 三体0【ゼロ】 球状閃電』


なお、2022年版はこちら

blog.magnolia.tech