人文五社聯合書展
內行人才知道的系統設計面試指南

內行人才知道的系統設計面試指南

System Design Interview – An insider’s guide

  • 定價:580
  • 優惠價:79458
  • 優惠期限:2024年05月08日止
  • 運送方式:
  • 臺灣與離島
  • 海外
  • 可配送點:台灣、蘭嶼、綠島、澎湖、金門、馬祖
  • 可取貨點:台灣、蘭嶼、綠島、澎湖、金門、馬祖
  • 台北、新北、基隆宅配快速到貨(除外地區)
載入中...
  • 分享
 

內容簡介

amazon.com ★★★★★最高評價,IT類別銷售榜首

  系統設計面試被許多人認為是難度最高的技術面試。本書提供許多真實案例,告訴您如何分析與解決系統設計問題。

  本書包含以下內容:
  .面試官想從答題中看到的重點是甚麼?
  .解決系統設計面試題的四步驟框架
  .16道經典技術面試題與詳細解答
  .超過百張的圖表解釋不同系統的工作原理

來自讀者的讚譽

  「優質內容,對我通過FANG的系統設計面試輪有很大的幫助」

  「軟體工程師都應該看這本書」

  「對於需要準備系統面試的人而言,這本書很值得一看!」

  「就算不是為了準備面試,這本書也能增加你的見識」

  「用簡單易懂的方式解說觀念,看完一定會有收獲」
 

作者介紹

作者簡介

Alex Xu


  一位經驗豐富的軟體工程師與企業家。之前曾在 Twitter、Apple、Zynga與Oracle等公司工作,擁有卡內基美隆大學的碩士學位,熱衷於設計、實作各種複雜的系統。
 
 

目錄

第1章|使用者人數 —— 從零到百萬規模
第2章|粗略的估算
第3章|系統設計面試的框架
第4章|設計網路限速器
第5章|設計具有一致性的雜湊做法
第6章|設計鍵值儲存系統
第7章|設計可用於分散式系統的唯一ID生成器
第8章|設計短網址生成器
第9章|設計網路爬蟲
第10章|設計通知系統
第11章|設計動態訊息系統
第12章|設計聊天系統
第13章|設計搜尋文字自動補全系統
第14章|設計Youtube
第15章|設計GOOGLE DRIVE
第16章|持續學習
 



  我們很榮幸和你一起學習「系統設計面試」。在所有技術性面試中,系統設計的面試題目往往最難對付。題目或許會要求受試者設計出一個軟體系統架構,完成動態訊息、Google 搜索、聊天系統之類的功能。這種題目感覺蠻嚇人,而且往往沒有固定的模式可循。題目所涵蓋的範圍通常很廣泛,而且又很籠統。處理的方法往往很開放、不會很明確,也沒有所謂標準或正確的答案。

  目前有許多公司廣泛採用這種系統設計面試的做法,因為所測試出來的溝通能力與解決問題的技能,與軟體工程師日常工作所需非常類似。只要觀察受試者如何分析這些模糊的問題、如何逐步解決問題,就可以對受試者做出評估。這種做法可以測試出來的能力,還包括她如何解釋其構想、如何與他人進行討論、如何對系統進行評估,以及如何進行最佳化。在英語的文字中,使用「她」(she)總比老是用「他或她」(he or she)來得流暢些,而且也比我們在兩種說法之間變來變去好得多。為了讓各位閱讀時輕鬆一點,本書將統一使用女性的「她」。我們並不是故意不尊重男性工程師喲。

  系統設計問題通常是開放式的。就像在現實世界一樣,系統經常存在許多差異與變化。我們希望得到的結果,其實是能夠提出一種可實現系統設計目標的架構。不同的面試官,也有可能讓討論內容偏向不同的方向。有些面試官可能會選擇比較高階的架構來涵蓋所有面向;有些人則可能選擇其中一個或多個領域來聚焦。一般來說,一開始就應該先好好理解系統的需求、約束與瓶頸,才能找出面試官與受試者共同認可的方向。

  本書的目的就是提供一種可靠的策略,以解決各種系統設計問題。正確的策略與知識,對於面試的成功來說至關重要。針對如何打造出具有可擴展性的系統,提供了相當紮實的知識,這些知識能夠幫您解決各種系統設計問題。

  關於如何解決系統設計問題,本書還提供了一種逐步解決(step by step)的做法,裡頭提供了許多範例,並採用一些可依循的詳細步驟,對各種系統化做法做出說明。只要持續不斷練習,你自然而然就有能力解決各種系統設計面試問題了。

 
 

詳細資料

  • ISBN:9789865028855
  • 規格:平裝 / 320頁 / 17 x 23 x 1.88 cm / 普通級 / 單色印刷 / 初版
  • 出版地:台灣

會員評鑑

4.5
3人評分
|
3則書評
|
立即評分
user-img
5.0
|
2023/08/13
說理清晰、由淺入深,一步步帶著讀者進行系統設計、順帶介紹針對各系統的常見的解決方案,說明方式多以明確的圖表表示,不涉及特定程式語言,推薦給由junior邁向senior想窺探系統設計堂奧的所有人。
展開
user-img
4.0
|
2022/03/15
作者在書中提出了1個可以從小到大的架構方式
每章節都為此架構增加可以解決問題的模組或方法

建議從頭開始讀
才能對作者所寫的內容能有充份的理解
展開
user-img
4.0
|
2021/12/08
劇透警告
無論是參與面試或釐清需求,系統設計常常令人感到困惑,不知如何進行。

我想,原因大概有兩種。

首先,不同領域的系統通常都有不同的設計要素,如何找出這些要素進行提問?
其次,即便提出疑問找出重點,接下來要如何針對這些要素進行高層設計或規劃?

"系統設計面試指南"對於系統設計的初步規劃或高層結構提供合適的解決步驟。
這些步驟包含如何尋找系統設計的要素以及如何對這些要素進行設計規畫,對於經驗不足或想加強系統設計高層結構的相關經驗者會有很大的幫助。

作者提出的解決步驟分為以下四個流程
1.了解問題並確定設計範圍
2.提出高階設計並取得認可
3.深入設計
4.彙整總結

書中分別提到各個流程概要內容為

1.了解問題並確定設計範圍
請認真思考系統本身且提出問題,這些問題是用來釐清需求的條件和假設。

千萬不要立即提出解決方案,這只會讓你迷失方向,重要的是務必了解需求的具體內容並釐清這些內容中不明確的地方

有幾個幫助提出問題的清單:
a.系統需要那些特定功能
b.使用者數量
c.擴展速度(3個月 / 6個月 / 1年)和規模有多大
d.可以使用那些現有技術來簡化設計

2.提出高階設計並取得認可
這個流程的目標為設計出系統的高層規畫並和需求者(可能是面試官)達成協議。
a.提出設計藍圖並要求需求者提供回饋
b.在紙或白板上用方框圖畫出關鍵元素,這些關鍵元素可能是客戶端,API,Web伺服器,資料庫,快取,CDN,訊息佇列等等
c.用粗略估算評估設計藍圖是否符合需求中的條件

3.深入設計
大多數的情況下會根據步驟 2.的高層設計藍圖,進行各個要素的擴展。

因為系統在不同情境下關注點也可能不同,有時候可能關注於高層設計,有時候可能關注於效率瓶頸,此時就必須和需求者(可能是面試官)對設計中的各個元素達成共識並確認優先順序。

另外要注意的是請小心時間管理,不要陷入瑣碎細節。

4.彙整總結
最後的步驟需求者會對後續情況提問或自由討論關於系統的其他主題,可以關注的方向如下:
a.系統瓶頸和改進作法
b.重新檢視設計
c.討論系統異常情況(伺服器故障/網路斷線等等)
d.規模擴增該如何處理
e.其他改進方案

談到這裡,如果對本書有興趣的話,還需注意以下兩點:
1.本書談論高層設計,所以只會有非常少量的程式碼。
2.討論的系統種類還不夠全面,有點可惜。

無論如何,我認為本書還是非常值得推薦給想了解系統設計的規劃步驟的讀者
展開

最近瀏覽商品

 

相關活動

  • 從「格」的概念出發|
 

購物說明

若您具有法人身份為常態性且大量購書者,或有特殊作業需求,建議您可洽詢「企業採購」。 

退換貨說明 

會員所購買的商品均享有到貨十天的猶豫期(含例假日)。退回之商品必須於猶豫期內寄回。 

辦理退換貨時,商品必須是全新狀態與完整包裝(請注意保持商品本體、配件、贈品、保證書、原廠包裝及所有附隨文件或資料的完整性,切勿缺漏任何配件或損毀原廠外盒)。退回商品無法回復原狀者,恐將影響退貨權益或需負擔部分費用。 

訂購本商品前請務必詳閱商品退換貨原則 

  • 人文五社聯合書展
  • 飲食烘焙展
  • 簡報溝通說話展