[書摘] 系統設計面試指南

更新於 發佈於 閱讀時間約 3 分鐘

無論是參與面試或釐清需求,系統設計常常令人感到困惑,不知如何進行。

我想,原因大概有兩種。

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

《系統設計面試指南》對於系統設計的初步規劃或高層結構提供合適的解決步驟。

這些步驟包含如何尋找系統設計的要素以及如何對這些要素進行設計規畫,對於經驗不足或想加強系統設計高層結構的相關經驗者會有很大的幫助

作者提出的解決步驟分為以下四個流程,

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.討論的系統種類還不夠全面,有點可惜。




留言
avatar-img
留言分享你的想法!
avatar-img
寫狐的沙龍
1會員
6內容數
目前專注於軟體設計架構領域,旨在分享並提供良好且合適的原則 / 模式 / 系統 / 開發法。
寫狐的沙龍的其他內容
2023/05/12
在軟體開發領域,AI工具的演進提供新方法來編寫和測試代碼。利用AI來輔助撰寫單元測試已經成為一種新的測試策略。 透過提示AI來撰寫測試代碼,可以更快速地生成測試用例,找出潛在的缺陷並解決問題,從而提高軟體開發的效率和品質。
Thumbnail
2023/05/12
在軟體開發領域,AI工具的演進提供新方法來編寫和測試代碼。利用AI來輔助撰寫單元測試已經成為一種新的測試策略。 透過提示AI來撰寫測試代碼,可以更快速地生成測試用例,找出潛在的缺陷並解決問題,從而提高軟體開發的效率和品質。
Thumbnail
2022/07/05
前同事阿強是開發部門的技術強者,最近因為大功一件加上考績滿分,被老闆提拔為經理。 看起來阿強走路有風。沒想到在聚會時卻跑來跟我訴苦。 “唉我喜歡技術也專精技術,可是我從沒管過人,也沒想過要管人” “你有跟你老闆談過你沒意願嗎?” “好吧…(難道技術能力強也代表管理能力強嗎)” 答案是不一定!
Thumbnail
2022/07/05
前同事阿強是開發部門的技術強者,最近因為大功一件加上考績滿分,被老闆提拔為經理。 看起來阿強走路有風。沒想到在聚會時卻跑來跟我訴苦。 “唉我喜歡技術也專精技術,可是我從沒管過人,也沒想過要管人” “你有跟你老闆談過你沒意願嗎?” “好吧…(難道技術能力強也代表管理能力強嗎)” 答案是不一定!
Thumbnail
2021/12/10
甚麼是技術雷達? 技術雷達是一種評估工具,用來判斷軟體領域中各種技術並對這些技術應採取什麼行動的方法。(來源為 ThoughtWorks,參閱這裡) 象限 技術雷達本身是一個切割成4等份的圓形,這4等份各為技巧(左上),工具(左下),語言框架(右上),平台(右下),代表技術種類(在官方網站中稱為象限
Thumbnail
2021/12/10
甚麼是技術雷達? 技術雷達是一種評估工具,用來判斷軟體領域中各種技術並對這些技術應採取什麼行動的方法。(來源為 ThoughtWorks,參閱這裡) 象限 技術雷達本身是一個切割成4等份的圓形,這4等份各為技巧(左上),工具(左下),語言框架(右上),平台(右下),代表技術種類(在官方網站中稱為象限
Thumbnail
看更多
你可能也想看
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
隨著組織擴張,從管理自己的專案 現在也變成管理一個科,底下帶PM 也在招募新的PM 今天我從我面試人的角度 講一下,倘若你想應徵專案經理(PM)這個職位 應該要著重在什麼點,更能打動面試官 有三點我覺得要特別注意
Thumbnail
隨著組織擴張,從管理自己的專案 現在也變成管理一個科,底下帶PM 也在招募新的PM 今天我從我面試人的角度 講一下,倘若你想應徵專案經理(PM)這個職位 應該要著重在什麼點,更能打動面試官 有三點我覺得要特別注意
Thumbnail
近期看到小白姊在商業思維學院的談判課《聰明談判的萬千場景,如何在職場價值升級》,也想到目前在產品團隊與不同利害關係人的溝通談判,因此這篇主要紀錄我在職場談判的心得。
Thumbnail
近期看到小白姊在商業思維學院的談判課《聰明談判的萬千場景,如何在職場價值升級》,也想到目前在產品團隊與不同利害關係人的溝通談判,因此這篇主要紀錄我在職場談判的心得。
Thumbnail
自今年起,我開始接手了公司的GLP規範之章程的建立,從零開始,到今年也建構了一年,過程中也對流程建立也有些心得,也深刻理解這不是件容易的事情,一方面需要釐清目標與現況資源的差距,在有意義的規範下河有限的資源創造出最可行的規範,是一門專業。此篇跟大家聊聊,如何從零到有。
Thumbnail
自今年起,我開始接手了公司的GLP規範之章程的建立,從零開始,到今年也建構了一年,過程中也對流程建立也有些心得,也深刻理解這不是件容易的事情,一方面需要釐清目標與現況資源的差距,在有意義的規範下河有限的資源創造出最可行的規範,是一門專業。此篇跟大家聊聊,如何從零到有。
Thumbnail
還記得專案啟動的前兩步驟嗎? 專案立項審查 以及 專案拆分 Single-line及 Multi-line 專案會議怎麼開 時間、預算、品質爆炸啦 資源篇(甘特圖軟體)
Thumbnail
還記得專案啟動的前兩步驟嗎? 專案立項審查 以及 專案拆分 Single-line及 Multi-line 專案會議怎麼開 時間、預算、品質爆炸啦 資源篇(甘特圖軟體)
Thumbnail
從其他人的經驗結合個人現況,總結成下面3點來跟大家聊聊: 1. 趁一個人做事的空檔,學讓一群人把專案做好的方法 2. 用正確心態面對管理,建立問題工具箱 3. 在直屬主管建立的流程下,接手自己可以扛的工作
Thumbnail
從其他人的經驗結合個人現況,總結成下面3點來跟大家聊聊: 1. 趁一個人做事的空檔,學讓一群人把專案做好的方法 2. 用正確心態面對管理,建立問題工具箱 3. 在直屬主管建立的流程下,接手自己可以扛的工作
Thumbnail
我前陣子在 Linkedin 上看到一篇有趣的推文,表現軟體開發時,從企劃階段到實際成品的巨大落差。這是永遠無法解決的難題嗎?我分享過去做專案和產品的經驗,希望能帶給各位思考解法的參考。
Thumbnail
我前陣子在 Linkedin 上看到一篇有趣的推文,表現軟體開發時,從企劃階段到實際成品的巨大落差。這是永遠無法解決的難題嗎?我分享過去做專案和產品的經驗,希望能帶給各位思考解法的參考。
Thumbnail
資訊不明的陌生開發,提案要怎麼做?有時候在面對客戶提案時可能會遇到一種狀況:手頭上沒有任何資訊,而客戶卻希望你先提案再做評估。這時候,請把握三個關鍵,先提問、再提案。
Thumbnail
資訊不明的陌生開發,提案要怎麼做?有時候在面對客戶提案時可能會遇到一種狀況:手頭上沒有任何資訊,而客戶卻希望你先提案再做評估。這時候,請把握三個關鍵,先提問、再提案。
Thumbnail
無論是參與面試或釐清需求,系統設計常常令人感到困惑,不知如何進行。 我想,原因大概有兩種。 首先,不同領域的系統通常都有不同的設計要素,如何找出這些要素進行提問? 其次,即便提出疑問找出重點,接下來要如何針對這些要素進行高層設計或規劃? 《系統設計面試指南》對於系統設計的初步規劃或高層結構提供合適的
Thumbnail
無論是參與面試或釐清需求,系統設計常常令人感到困惑,不知如何進行。 我想,原因大概有兩種。 首先,不同領域的系統通常都有不同的設計要素,如何找出這些要素進行提問? 其次,即便提出疑問找出重點,接下來要如何針對這些要素進行高層設計或規劃? 《系統設計面試指南》對於系統設計的初步規劃或高層結構提供合適的
Thumbnail
職場上回答問題,有一定的技巧與陳述方式,身邊總是有些人講話常常聽不到重點,提出的問題也聽不懂在問甚麼,而且越聽會越讓人沒耐心,只想趕緊請對方結束這個話題。 但少數懂得回答問題的人,總會有辦法勾起聽眾的興趣,願意靜下來慢慢聽取內容,甚至進一步直接認同結果。 
Thumbnail
職場上回答問題,有一定的技巧與陳述方式,身邊總是有些人講話常常聽不到重點,提出的問題也聽不懂在問甚麼,而且越聽會越讓人沒耐心,只想趕緊請對方結束這個話題。 但少數懂得回答問題的人,總會有辦法勾起聽眾的興趣,願意靜下來慢慢聽取內容,甚至進一步直接認同結果。 
Thumbnail
對於職場能力,本書給了一些建議。特別有印象的,包括「學習新技能或知識」、「建立知識架構」、「解決問題」與「溝通」等四大部份。 學習新技能或知識 保持學習不一定能成為領導者,但領導著一定保持學習。 拿出一張白紙,寫出想學習的領域與其相關技能與知識。接著按照「現階段有用、與經驗背景相匹配、能夠有參
Thumbnail
對於職場能力,本書給了一些建議。特別有印象的,包括「學習新技能或知識」、「建立知識架構」、「解決問題」與「溝通」等四大部份。 學習新技能或知識 保持學習不一定能成為領導者,但領導著一定保持學習。 拿出一張白紙,寫出想學習的領域與其相關技能與知識。接著按照「現階段有用、與經驗背景相匹配、能夠有參
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News