0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【書評】システム設計の面接試験

0
Posted at

読んだ本

概要

面接試験でシステムの設計を依頼されたら、という視点から、TwitterやYoutubeなど有名なサービスを作るとしたらどう設計するかを解説してくれる本です。
タイトルからは面接試験対策の本に見えるのですが、転職を予定していなくても主にWebサービスに関わるエンジニアであれば得られることが多いと思います。

目次は下記になっています。

1章 ユーザ数ゼロから数百万人へのスケールアップ
2章 おおまかな見積もり
3章 システム設計の面接試験のフレームワーク
4章 レートリミッターの設計
5章 コンシステントハッシュの設計
6章 キーバリューストアの設計
7章 分散システムにおけるユニークIDジェネレータの設計
8章 URL短縮サービスの設計
9章 Webクローラの設計
10章 通知システムの設計
11章 ニュースフィードシステムの設計
12章 チャットシステムの設計
13章 検索オートコンプリートシステムの設計
14章 YouTubeの設計
15章 Googleドライブの設計
16章 学習は続く

おすすめの人

  • Webサービスに携わっているが、どういうシステム構成で動いているかイメージできていない人(2章以降は難易度が高くなるので、1章だけ読むことをおすすめします。)
  • Youtubeなど他のサービスの作り方に興味がある人

次に読むなら

  • 思いつかず。初心者であれば、AWSなどを実際に触れてみるのが良いかもしれません。

感想

章のはじめに、これから設計するシステムの要件を面接官とすり合わせる話が必ずあり、実際に設計するときもこの工程が一番大事だと考えているため、いい本だなと思った。
中盤の分散システム周りの設計について、よく使うことがあるけど、中身がどうなっているか気にしたことがなかったので、色々なアルゴリズムなどの知らない用語が飛び交い、調べていくうちに知識が深まった。下記知らなかったこと一例。

  • コンシステントハッシュ...シャーディングの採番
  • ベクタークロック...分散システムの一貫性
  • ゴシッププロトコル...分散システムのノード間通信
  • ヒンテッドハンドオフ...分散システムのノード故障時の復旧
  • アンチエントロピー...分散システムのノード故障時の復旧
  • マークルツリー...データ構造
  • sloppy quorum...分散システムの可用性
  • ブルームフィルター...データ構造(キャッシュ)
  • トライ木...データ構造
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?