このプロジェクトについて

このリポジトリは、システム設計とシステム設計面接の準備に役立つリンクの厳選コレクションです。オリジナルのソフトウェアは含まれていません。無料の記事、ビデオ、コース、本、ニュースレター、エンジニアリングブログ記事、分散システムの論文を整理しています。 主なセクションには以下が含まれます: - コアコンセプト: スケーラビリティ、可用性、信頼性、SPOF、レイテンシー vs トランザクション vs バンド幅、一貫性ハッシュ、CAP定理、フェールオーバー、フォールトトレランス。 - ネットワークの基礎: OSIモデル、IPアドレス、DNS、プロキシと逆プロキシ、HTTP/HTTPS、TCP vs UDP、ロードバランシング、チェックサム。 - APIの基礎: API、APIゲートウェイ、REST vs GraphQL、WebSockets、Webhooks、イデムポテンシー、レートリミット、API設計。 - データベースの基礎: ACIDトランザクション、SQL vs NoSQL、インデックス、シャーディング、レプリケーション、スケーリング、データベースタイプ、ブールフィルター、アーキテクチャ。 - キャッシュの基礎: キャッシュの基本、戦略、エビクションポリシー、分散キャッシュ、CDN。 - 非同期通信: パブ/サブ、メッセージキュー、変更データキャプチャ。 - 分散システムとマイクロサービス: ハートビート、サービスディスカバリ、コンセンサスアルゴリズム、分散ロック、ガossipプロトコル、セミブレーカー、災害復旧、分散トレーシング。 - アーキテクチャパターン: クライアントサーバー、マイクロサービス、サーバーレス、イベント駆動、ピアツーピア。 - システム設計のトレードオフ: 垂直スケーリング vs 水平スケーリング、並列処理 vs 並行処理、ロングポーリング vs WebSockets、バッチ処理 vs ストリーム処理、状態あり vs 状態なし、一貫性モデル、キャッシュ戦略、プッシュ vs プル、REST vs RPC、同期 vs 非同期、レイテンシー vs スループット。 - 面接準備: システム設計面接問題への回答フレームワーク、およびURL短縮、WhatsApp、Instagram、Uber、Google Docs、Dropbox、分散ストレージなどのカテゴリ別練習問題(簡単、中級、難易度)。 - その他のリソース: コース、ニュースレター、本、YouTubeチャンネル、必須読み込みエンジニアリング記事、および古典的な分散システム論文(Paxos、MapReduce、GFS、Dynamo、Kafka、Spanner、Bigtable、ZooKeeper、LSM-Tree、Chubby)。 このリポジトリは、システム設計面接の準備や大規模な分散システムのコンセプトを理解するための学習ロードマップおよび参照インデックスとして役立ちます。