最近読んだ技術書3冊の読書感想文です(´・ω・`)
『システム設計面接の傾向と対策』
システム設計面接とは、たとえば「URL短縮サービスを設計してください」といったお題について、面接官とディスカッションしながら模擬的にシステムを設計するというスタイルの面接です。日本ではまだ馴染みが薄いものの、欧米のテック企業では採用プロセスの定番となっています。
本書はその名の通り、このシステム設計面接への対策を目的とした書籍です。構成は2部制で、第1部ではシステム設計の基礎や面接でのアプローチを丁寧に解説。第2部では、AmazonやAirbnbなどの実例をベースに、具体的な設計課題を通して、運用やスケーリングといった実践的な論点を掘り下げています。
内容は非常に網羅的で、面接対策にとどまらず、システム設計の学習全般に役立つ良書です。同様のテーマを扱ったアレックス・シュウの『システム設計の面接試験』と比べると、本書の方がより詳細で深みのある印象を受けました。
『ストリートコーダー』
本書は「現場で役立つけれど、学校では教えてくれない」ような開発の知見を、エッセイ形式でまとめた一冊です。筆者のユーモアを交えつつ、現場目線のアドバイスや技術的なヒントが多数紹介されています。
ただ、さまざまな実践ノウハウ系の書籍を読んできた方にとっては、やや既視感のある内容かもしれません。とはいえ、それは裏を返せば「基本を押さえた常識的な内容が丁寧に書かれている」とも言えるので、初心者にはステップアップの一冊として、経験者には振り返りとして活用できるでしょう。
一点、注意したいのはC#に特化したコード例が多く、他言語ユーザーにとってはやや親しみにくい点。汎用性に欠ける部分があるのは少々残念でした。
『手を動かしてわかるクリーンアーキテクチャ』
「ヘキサゴナルアーキテクチャ」と聞いて、六角形の図は思い浮かぶけれど、実際にどう実装するのかとなるとピンとこない方も多いのではないでしょうか。本書はその疑問に答えるように、理論だけでなく具体的なソースコードを使って解説してくれる実践的な書籍です。
特に印象的だったのは、抽象的なアーキテクチャ理論を現場で使えるコードレベルに落とし込んでいる点。図を見ているだけではつかみにくい“腹落ち感”が得られ、非常に学びが多い一冊でした。
コードはJavaとSpring Bootベースですが、設計思想そのものは他言語にも応用可能です。ただし、部分的にJava/Spring Bootの知識が求められる場面もあります。
また、タイトルには「手を動かして」とありますが、自分でコードを書く演習形式ではなく、著者が用意したサンプルコードを読み進めて理解を深めるスタイルです。加えて、「クリーンアーキテクチャ」とありますが、実質的にはヘキサゴナルアーキテクチャの解説書である点も念頭に置いておくと良いでしょう。