Part 5 — 網(wǎng)絡架構 & 項目實戰(zhàn)

一、網(wǎng)絡架構設計(★★★★★ 高頻)

? Q81:如何設計一個 iOS 網(wǎng)絡層?
先說分層:

API Layer
↓
Request Builder
↓
Network Client
↓
Interceptor
↓
Response Parser
↓
Cache Layer

各層職責(必須能解釋):

  • API Layer
    定義接口
    endpoint 管理
  • Request Builder
    構建 URLRequest
  • Network Client
    URLSession / Alamofire
  • Interceptor
    token
    retry
    log
  • Parser
    JSON → Model
  • Cache
    本地緩存策略
    網(wǎng)絡層核心目標是解耦請求構建、執(zhí)行和數(shù)據(jù)處理

?Q82:為什么不能直接 everywhere 用 Alamofire?

  • 高級回答:
    業(yè)務侵入
    難替換
    難測試
  • 正確:
    Alamofire 應被封裝在 NetworkClient 內。

二、Token & 登錄體系

? Q83:Token 過期如何處理?

請求失敗(401)
↓
進入刷新隊列
↓
refresh token
↓
成功 → 重試請求
↓
失敗 → 登錄頁

? 只刷新一次
? 隊列等待機制

? Q84:如何避免多個請求同時刷新 token?
高級答案:

  • 使用:
    semaphore
    或 actor
    或 refresh lock
  • 保證:
    同一時間只有一個 refresh 請求。

三、緩存設計(高級)

? Q85:緩存策略有哪些?

類型 場景
Memory Cache 高頻訪問
Disk Cache 離線
HTTP Cache ETag

緩存需要失效策略(TTL)。

? Q86:什么時候不用緩存?

  • 高分回答:
    強實時數(shù)據(jù)
    金融類數(shù)據(jù)
    權限相關接口

四、HTTPS(面試常問)

? Q87:HTTPS 比 HTTP 多了什么?

  • 答:
    TLS 握手
    對稱加密
    非對稱加密
    證書驗證

? Q88:什么是證書綁定(SSL Pinning)?
客戶端內置服務器證書或公鑰進行校驗。

  • 防止:
    中間人攻擊。

五、項目經驗

? Q89:如何介紹項目?(萬能模板)

① 項目背景
② 技術挑戰(zhàn)
③ 我的職責
④ 技術方案
⑤ 結果指標

該項目是一個日活 XX 萬的社區(qū) App,我負責客戶端架構與性能優(yōu)化。
最大挑戰(zhàn)是列表卡頓與啟動慢,我通過模塊化改造與異步渲染,將啟動時間從 2.3s 降至 1.4s,Crash 率下降 35%。

? Q90:如何描述你的技術貢獻?
? 我主導了 XXX 設計并解決了 XXX 問題。

六、線上事故(必問)

? Q91:講一次線上事故?

背景
↓
問題現(xiàn)象
↓
定位過程
↓
根因
↓
解決方案
↓
防止再次發(fā)生

發(fā)布后 Crash 激增,通過 Crash 堆棧發(fā)現(xiàn)多線程訪問數(shù)組導致越界,最終通過 Actor 隔離狀態(tài)解決,并增加線程安全檢測。

七、技術決策能力

? Q92:如何做技術選型?

性能
維護成本
團隊熟悉度
擴展性

技術選型是工程問題,不是技術偏好

? Q93:如何推動技術改造?

  • 答:
    數(shù)據(jù)證明問題
    小范圍試點
    漸進遷移

八、團隊 & 高級工程師思維

? Q94:如何 Code Review?

  • 關注:
    架構
    可讀性
    邊界條件
    性能風險

不是代碼風格

? Q95:如何帶新人?

  • 高分回答:
    提供模板工程
    code review 指導
    技術文檔沉淀

九、終極問題
? Q96:你未來的技術規(guī)劃?
深入客戶端架構與穩(wěn)定性建設,同時提升跨端與工程效率能力。

? Q97:你最大的技術成長是什么?
從功能實現(xiàn)轉向系統(tǒng)設計與穩(wěn)定性思維。

? Q98:你為什么離職?
希望進入更有技術挑戰(zhàn)和成長空間的團隊。

? Q99:你的優(yōu)勢?

架構經驗 + 性能優(yōu)化 + 穩(wěn)定性建設

? Q100:為什么要招你?
我不僅能完成需求,還能通過架構與工程優(yōu)化持續(xù)降低團隊成本。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容