iT邦幫忙

2024 iThome 鐵人賽

DAY 4
0
自我挑戰組

前端系統設計系列 第 4

[Day4] PACE UP !! 系統設計的評估維度

  • 分享至 

  • xImage
  •  

前言

在面試中,面試官會嘗試去找出面試者所散發出的 signals,藉此決定 "是否要 Hire" & "最終評等",你傳遞出越多好的、 signals,越有可能被 Hire,以下是常見的 signals:

  1. Problem exploration
  2. Architecture
  3. Technical Proficiency
  4. Exploration and Tradeoffs
  5. Product and UX Scene
  6. Communication and Collaboration

 

我們可以用「PACE UP」這個口訣來記住,表示我們每通過一個評估就「更上一層樓」

 

1. Problem exploration

愛因斯坦曾說:「如果我有1小時拯救世界,我會花55分鐘去確認問題為何,只以5分鐘尋找解決方案」

因此是否是一位優秀的智者,能否有效的解決問題,能對問題有足夠深入的探索,也是一個很重要的 signal,以下幾點可以幫助我們展現

  1. 展現對題目整體的了解
  2. 問相關的釐清問題來足夠的探索問題
  3. 收集 functional & non-functional 問題
  4. 辨識問題不同的面向

 

2. Architecture

什麼是架構呢?可以用 Clean Architecture 裡面我很喜歡的一句話解釋:
「架構代表了塑造系統的「重要」設計決策,有多「重要」則是由因應變化的成本來衡量的」

另外 Clean Architecture 也提到,什麼是好的架構呢?
「一個好的架構不僅能滿足使用者、開發人員和擁有者在特定時間點的需求,而且隨著時間推移,它也還能滿足他們的需求」,所以,我認為一個優秀的 engineer,就是有能力做出重要的設計決策,並且能夠長時間的滿足需求

 

  1. 開發出一個架構,足以解決整個問題
  2. 拆解問題成適當的顆粒度,更小的獨立區塊
  3. 辨識系統的 components,並清楚的定義他們的責任
  4. 開發出一個可以實際應用的架構
  5. 開發一個可維護、可擴展的架構,應付未來的需求

 

3. Technical Proficiency

這算是每個領域的基本素養,你需要去培養對這個領域足夠的認知,才能有效的解決工作上遇到的多樣化的難題,甚至去 empower junior members,讓他們有能力跟你一樣的生產力,這也是公司非常重視的一點

以下是展現此特性的幾個方法:

  1. 展示對於 frontend 基礎的技術知識和專業
  2. 能夠對於題目深入在某些前端領域
  3. 識別出需要特別注意的領域,並且藉由提供解方 & 解析取捨的方式

 

可以深入的領域有:

  1. Performance
  2. Networking
  3. HTML/CSS
  4. Accessbility
  5. Internationalization
  6. Security
  7. Scalability. etc.

 

4. Exploration and Tradeoffs

我們尋求解法,不要只專注在唯一最優解,所謂的「唯一最優解」也有可能只是目前已知的最優解,或許將來會有更好的解法,只是還沒被挖掘

因此,多提供不同的解法,並同時想想他們的優劣,同時跟面試官交換訊息和想法,也能

  • 展示出你的「Open minded」的 personality
  • 表示出你是非常有經驗的工程師

 

以下是展現此特性的幾個方法:

  1. 提供不同可能的解法,並且各個解法的解釋 pros & cons
  2. 解釋解法的適合度 & 根據題目上下文提供解決方案
    1. 不要堅持只有一種解答,通常好的問題會有多種解答
    2. 即便其他 solution 明顯的很糟,還是要簡單的提一下為什麼這麼做很糟

 

5. Product and UX scene

即是現在的職稱是工程師,我們也不能只 focus 在 engineering 的領域,畢竟我們最終的本業還是員工,我們要做的事就是把幫老闆賺錢,把產品做好,所以也要有 Product & UX 的 scene,才能幫助產品成功 & 賺錢

  1. 當回答問題時,要把 UX 考慮進去,像是:
    1. Loading states
    2. performance
    3. mobile friendliness
    4. keyboard friendliness
  2. 考慮錯誤的情況並且建議處理的方法,像是:
    1. Error modal
    2. Error helper text
    3. Redirection
    4. Contact support CTA

 

6. Communication and Collaboration

好的溝通能力也是 candidate 非常重要的一個 signal,好的功通能利不僅能

  • 大幅減少工作上的溝通成本
  • 有效發揮影響力,激勵下屬,甚至改變上層做出更好的決策

 

因此,溝通能力也是 interviewer 非常重視的一點,可展示的方法如下:

  1. 簡潔 & 清楚的傳達你的想法
  2. 簡單的描述複雜的概念
  3. 在會議中與面試官互動,問好問題 & 尋求他們的意見
  4. 從面試官的 feedback 保持開放態度,納入反饋來完善解決方案

 

RADIO framework with axes

以下是在 RADIO framework 可以展示你不同維度的能力

Axis R A D I O
Problem Exploration - - - -
Architecture - -
Technical Proficiency - - -
Exploration and Tradeoffs -
Product and UX Sense - - - -
Communication and Collaboration

 

參考資源


上一篇
[Day3] 系統設計的模板 - RADIO framework
下一篇
[Day 5] BRIJIS - 系統設計常見錯誤
系列文
前端系統設計8
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言