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

更新於 發佈於 閱讀時間約 2 分鐘
無論是參與面試或釐清需求,系統設計常常令人感到困惑,不知如何進行。
我想,原因大概有兩種。
首先,不同領域的系統通常都有不同的設計要素,如何找出這些要素進行提問?
其次,即便提出疑問找出重點,接下來要如何針對這些要素進行高層設計或規劃?
《系統設計面試指南》對於系統設計的初步規劃或高層結構提供合適的解決步驟。
這些步驟包含如何尋找系統設計的要素以及如何對這些要素進行設計規畫,對於經驗不足或想加強系統設計高層結構的相關經驗者會有很大的幫助
作者提出的解決步驟分為以下四個流程,
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
1會員
6內容數
目前專注於軟體設計架構領域,旨在分享並提供良好且合適的原則 / 模式 / 系統 / 開發法。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
寫狐的沙龍 的其他內容
若說大多數成功人士共通的要素是什麼,我想好習慣絕對是其中之一。好習慣很重要,但要保持好習慣也很困難。 很多人以短暫的衝勁,熱情來激勵自我。常見的說法就是『今年要減肥』,『這禮拜要戒菸』。 另一些人會製作計劃表,期許透過嚴謹且完美的計畫,達成目標。 可惜,熱情抵不過人性,計劃趕不上變化。 好習慣的養成
當我們胸懷大志,勇往直前時,最大的阻礙往往來自本身或他人的非理性思考。這些非理性思考常讓人自我懷疑,中途放棄。 要如何免於自我設限的思維?  大局思維透過行為科學揪出人們的非理性思考並透過一步步設定具體目標和規律步驟達成自我理想的實現,翻轉人生。
若說大多數成功人士共通的要素是什麼,我想好習慣絕對是其中之一。好習慣很重要,但要保持好習慣也很困難。 很多人以短暫的衝勁,熱情來激勵自我。常見的說法就是『今年要減肥』,『這禮拜要戒菸』。 另一些人會製作計劃表,期許透過嚴謹且完美的計畫,達成目標。 可惜,熱情抵不過人性,計劃趕不上變化。 好習慣的養成
當我們胸懷大志,勇往直前時,最大的阻礙往往來自本身或他人的非理性思考。這些非理性思考常讓人自我懷疑,中途放棄。 要如何免於自我設限的思維?  大局思維透過行為科學揪出人們的非理性思考並透過一步步設定具體目標和規律步驟達成自我理想的實現,翻轉人生。
你可能也想看
Google News 追蹤
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
這篇文章深入探討了開發個人財務管理系統的規劃過程,包括需求確認、環境建置及技術選型等關鍵步驟。作者強調在開發前進行充分的規劃與設計是成功的基礎,並提供了具體的工具與技術選擇,如PHP、Laravel和Docker。通過清晰的步驟指引,文章幫助讀者掌握系統開發的核心要素,確保順利推進專案。
Thumbnail
當我們從事軟體開發工作一段時間後,有些人會開始接觸軟體架構設計。由於每個軟體架構設計者的對問題的理解與知識經驗差異會導出不同的設計架構。近期與同事的軟體設計案例經驗交流後,就很希望自己剛開始學習軟體架構設計的時候就有人能用實際的軟體架構設計經驗來帶我入門...
Thumbnail
這篇文章分享了面試中常詢問的後續流程和時間相關問題,包括詢問後續面試關卡和流程、預計通知下一關面試時間等問題。建議在面試中詢問這些問題,以便掌握招募後續流程和時間,並展現對職缺的熱忱。
Thumbnail
在設計有四年快五年的時間,大部分都是從實戰經驗中去不斷摸索產品開發的流程。從視覺傳達的背景出來,在用戶體驗的經驗都是在實際開發中去摸索出來的。不是理論派,只是根據我本人的經驗摸索出來的設計方法,也不會用太多高深的詞彙說明。 以前搜尋怎麼做產品設計?究竟是要從什麼步驟開始的這件事情,大部分看到的
Thumbnail
本文討論UX設計師面試中的常見問題,並提供有效的回答建議。這些問題涉及個人介紹、職位申請動機、貢獻、擅長項目、薪酬期望、職業發展計劃等。
Thumbnail
這篇文章主要討論了設計的主客觀問題。透過討論設計師必然面對的主客觀問題,幫助讀者更妥善地處理設計衝突及評價,使設計更趨向完整。
上一篇主要在說如何做決定的,這篇就來寫寫面試前該做什麼準備。
Thumbnail
系統的分析與規劃 在談到程式設計時,首要的是進行系統的分析與規劃。程式設計的起點通常是系統分析與規劃,這涉及到如何分析和設計系統的大原則和方向。為了達到預期效果,重要的是擁有對產業的清晰邏輯認識和深入了解。 進行深入了解 若要進行系統分析,必須對企業的設計和程式設計的對象進行深入了解,以充分理
Thumbnail
瞭解如何透過系統化教學計劃、課前問卷調查、明確學習目標、互動和參與、應用和實踐、評估和反饋、以及學員反饋來確保教學的有效性和結構。
Thumbnail
在這個數位時代,網站成為企業與個人展示品牌形象、提供資訊的不可或缺之一。然而,一個成功的網站不是一朝一夕就能完成的,而是需要經過精心的網站設計流程。本文將深入探討網站建置的7大步驟,從需求瞭解到網頁正式上線,帶您一窺網站設計的全貌。
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
這篇文章深入探討了開發個人財務管理系統的規劃過程,包括需求確認、環境建置及技術選型等關鍵步驟。作者強調在開發前進行充分的規劃與設計是成功的基礎,並提供了具體的工具與技術選擇,如PHP、Laravel和Docker。通過清晰的步驟指引,文章幫助讀者掌握系統開發的核心要素,確保順利推進專案。
Thumbnail
當我們從事軟體開發工作一段時間後,有些人會開始接觸軟體架構設計。由於每個軟體架構設計者的對問題的理解與知識經驗差異會導出不同的設計架構。近期與同事的軟體設計案例經驗交流後,就很希望自己剛開始學習軟體架構設計的時候就有人能用實際的軟體架構設計經驗來帶我入門...
Thumbnail
這篇文章分享了面試中常詢問的後續流程和時間相關問題,包括詢問後續面試關卡和流程、預計通知下一關面試時間等問題。建議在面試中詢問這些問題,以便掌握招募後續流程和時間,並展現對職缺的熱忱。
Thumbnail
在設計有四年快五年的時間,大部分都是從實戰經驗中去不斷摸索產品開發的流程。從視覺傳達的背景出來,在用戶體驗的經驗都是在實際開發中去摸索出來的。不是理論派,只是根據我本人的經驗摸索出來的設計方法,也不會用太多高深的詞彙說明。 以前搜尋怎麼做產品設計?究竟是要從什麼步驟開始的這件事情,大部分看到的
Thumbnail
本文討論UX設計師面試中的常見問題,並提供有效的回答建議。這些問題涉及個人介紹、職位申請動機、貢獻、擅長項目、薪酬期望、職業發展計劃等。
Thumbnail
這篇文章主要討論了設計的主客觀問題。透過討論設計師必然面對的主客觀問題,幫助讀者更妥善地處理設計衝突及評價,使設計更趨向完整。
上一篇主要在說如何做決定的,這篇就來寫寫面試前該做什麼準備。
Thumbnail
系統的分析與規劃 在談到程式設計時,首要的是進行系統的分析與規劃。程式設計的起點通常是系統分析與規劃,這涉及到如何分析和設計系統的大原則和方向。為了達到預期效果,重要的是擁有對產業的清晰邏輯認識和深入了解。 進行深入了解 若要進行系統分析,必須對企業的設計和程式設計的對象進行深入了解,以充分理
Thumbnail
瞭解如何透過系統化教學計劃、課前問卷調查、明確學習目標、互動和參與、應用和實踐、評估和反饋、以及學員反饋來確保教學的有效性和結構。
Thumbnail
在這個數位時代,網站成為企業與個人展示品牌形象、提供資訊的不可或缺之一。然而,一個成功的網站不是一朝一夕就能完成的,而是需要經過精心的網站設計流程。本文將深入探討網站建置的7大步驟,從需求瞭解到網頁正式上線,帶您一窺網站設計的全貌。