システム設計とアーキテクチャ
ショ和第2版はまだ進行中の作業です。
本システムの設計とアーキテクチャは、 2015年以来、世界中の何百万人ものソフトウェアエンジニアがインターネット業界で成功するのに役立ちました。これが機能する理由は次のとおりです。
- ?実世界のエンジニアリング。これは、ファングや他の多くのシリコンバレー企業の実世界の例から来ています。また、実際のインターネット製品とサービスを構築する方法の概要を説明します。
- ?消化しやすい。適切なレベルの抽象化のシステム設計は、最短のカットで目的地にルーティングするためのマップのようなものです。チャート、図、およびステップバイステップガイドがあります - すべてが最小限の実用的な知識を獲得して、システム設計のインタビューを優れて構築を開始するためにあります。
- ?フルカバレッジ。バックエンドからフロントエンド、ゼロからヒーローまで、システム設計のユースケースのほとんどをマスターするために、「本」になるよう努めています。
- ?♀ ♀️4段階のフレームワーク。この本は、体系的で繰り返し可能な方法で問題に近づき、解決します。1)要件を明確にする2)高レベルのデザインをスケッチする3)個々のコンポーネントと、それらが互いにどのように相互作用するかを議論する4)盲点またはボトルネックで包む。
第2版の違いは何ですか? 2015年から2022年にかけて、モバイルが世界を食べ、クラウドネイティブのコンピューティングがKubernetesに出くわし、Web3が浮き沈みを経ました。インターネット業界で主導権を握るライフサイクルのさまざまな段階に常に新しい企業がいます。私は彼らがどのように働くかに興味がありますよね?だから第2版では、私はします
- 新しい企業や製品でもっと興味深いコンテンツを追加します。
- 業界の新しいトレンドで既存のコンテンツを書き直します。
- ステップバイステップガイドでチャートと図を追加します。
- 本のPDFエディションを追加します。
- 各デザインが独自の抽象化を採用するように、反復コンテンツを重複させます。
この本の範囲からは何ですか?
- 特定のドメインのAPI設計。 GoogleのAPIデザインガイドにアクセスしてください。
- オブジェクト指向のデザイン。その重要性は、平凡なエンジニアによって非常に過大評価されています。
この本の使用方法は?
- 専門家(Google L5以降)の場合は、実際にはシステム設計に直接移動します。
- ジュニアおよび中級のプログラマー(Google L3/L4)については、システム設計理論に移動し、実際にシステム設計を読み取ります。
- 初心者の場合は、インタビューの準備を効果的に準備し、システム設計理論を読み、最終的に実際にシステム設計に移動します。
実際のシステム設計
| 製品 | 質問 | |
|---|
| InstagramまたはPinterestのデザイン | |
| Uberの設計 | |
| Facebookはソーシャルグラフストアをどのように拡大しますか?タオ | |
| Netflixはどのように表示されますか? | |
| iDempotencyで堅牢で予測可能なAPIを設計する方法は? | |
| モバイルデバイス用のHTTPを介してビデオをストリーミングする方法は? HTTPライブストリーミング(HLS) | |
| 分散ロギングシステムの設計 | |
| URL短縮機の設計 | |
| 外部ストレージでKVストアを設計します | |
| 分散インメモリKVストアまたはMEMCachedの設計 | |
| Facebookの写真ストレージの設計 | |
| 証券取引所の設計 | |
| 株価の変更のスマート通知の設計 | |
| Square CashまたはPayPal送金システムの設計 | |
| 支払いwebhookの設計 | |
| メトリックシステムの設計 | |
| 推奨システムの設計 | |
| Airbnbまたはホテル予約システムの設計 | |
| Lyftのマーケティングオートメーションプラットフォーム - Symphony | |
| Typeahead検索またはオートコンプリートの設計 | |
| ロードバランサーまたはドロップボックスバンダイドの設計 | |
| 半教師の学習による詐欺検出 | |
| オンラインジャッジまたはリートコードの設計 | |
システム設計理論
- アーキテクチャの紹介
- Webサービスをスケーリングする方法は?
- 酸とベース
- データパーティションとルーティング
- レプリカ、一貫性、およびキャップ定理
- ロードバランサータイプ
- 並行性モデル
- フェールオーバーで可用性が向上します
- ブルームフィルター
- スキップリスト
- Bツリー対B+ツリー
- リレーショナルデータベースのイントロ
- 4種類のNO-SQL
- キー値キャッシュ
- ストリーミングおよびバッチ処理フレームワーク
- クラウド設計パターン
- パブリックAPIの選択
- ラムダ建築
- iOSアーキテクチャパターンが再訪されました
- ソフトスキルインタビューで何を伝えることができますか?
- 深いダイビングを体験してください
- 3プログラミングパラダイム
- 堅実なデザインの原則
- キャパシティプランニングを行う方法は?
インタビューの準備を効果的に準備してください
- ソフトウェアエンジニアインタビューの紹介
- 実際にコーディングインタビューをクラックする方法は?
- インタビューでコミュニケーションをとる方法は?
- 深いダイビングを体験してください
- 文化に合っています
- ソフトウェアエンジニアになる - ヒーローの旅
[中国版]
お腹のパンは誰ですか?
Tian Panは、サンフランシスコベイエリアで10年間働いていた高性能のソフトウェアエンジニアおよびエンジニアリングマネージャーであり、以前はUber、Oracle、IoTex、Microsoftで働いていました。
詳細については、ご参加ください!
ライセンス
GPL V3
このリソースが役立つと思ったら、それを与えますか?それ以外の場合はそれに貢献し、それをするげます。