上京エンジニアの葛藤

都会に染まる日々

システム設計の面接試験を読んだ

1月は毎日少しずつ「システム設計の面接試験」を読んでいました。
とても良い本だったので感想をまとめておきます。

目的は面接対策ではなくて、X を眺めていたら設計を勉強するにはこの本が良いとあったので、興味本位で手に取っただけでした(ちょうど Kindle のセール対象だったのもある)。

印象に残った点

トラフィックで大規模なサービスの設計について考える機会を与えてくれる

各章ごとに様々な課題が与えられて異なるサービスを設計していくのですが、どれも高トラフィックで大規模なサービスです。
また、どの課題も考慮すべき点が違っていて幅広い知識が求められていることを実感します。

自分は過去に比較的規模の大きいサービスに携わっていたこともあり、書籍の内容全てではないですが、ある程度現場での実践を通じて学んでいました。しかし、現在は toB SaaS に携わっており、以前と比べると遥かにトラフィックも低く、規模も小さく、サービスの性質が全く違います。

そのため、書籍内容をそのまま反映するとかなりオーバーエンジニアリングになります。
今の自分のようにそこまでスケーラビリティを考慮しなくても良いような環境で開発している方にとっては、普段あまり経験することがないことを実践に近いケースで考えることができる良い機会を与えてくれると思いました。

レートリミッターの設計が面白い

特に面白かったのはレートリミッターの設計の章です。
普段、外部サービスの API を利用する時は紹介されているような複雑なレートリミッターのアルゴリズムが実装されていることはありましたが、自分で実装した経験はありません。
このようなアルゴリズムについて詳しく紹介されている本を見たことがないのでおもしろく、参考文献もたくさん載っているので深掘りたいと思っています。

まとめ

普段向き合うことが少ない課題に対して、考える機会を与えてくれるのでとても良い本だと思います。
内容も広く浅めなので、幅広く知識のインデックスを貼ることができます。
特に大規模なサービス開発にあまり関わることがない人にとっては、そこまで考慮しなくても良いことがたくさん書かれているので新たな知識を得ることができると思います。