Senior software engineer
Mar 2, 2016 面試
高級軟件工程師
下面的面試題不分語言,適用於全部編程語言,更多偏向設計。 數據庫
設計一個分類功能
該功用於行政區域劃分,商品分類,等等 例如中國->廣東-深圳 ….. 編程
要求: 瀏覽器
- 無限極分類,層次深度不限
- 快速檢索,不能使用遞歸
- 只能使用一個數據庫表實現
- 能夠生成樹形目錄
商品以及屬性功能的設計
一個商品有不少屬性,例如尺寸,顏色這些屬性有固定的值,而另外一些屬性如重量,體積是須要填寫具體數值的,而且還有對應的單位。 緩存
要求: 網絡
- 商品分類(上一個問題中已經實現)
- 商品屬性,有多個屬性,且數目不肯定,因此須要設計成能夠無限添加
- 商品屬性便可下拉選擇,也能夠填寫具體數值
問題: 多線程
- 商品搜索怎麼解決,包含商品名稱,屬性,屬性值,描述的搜索
- 商品的庫存怎麼設計
- 分類搜索,怎樣列出全部子分類以及子分類下的全部分類(無限深度)
用戶註冊的功能需求
場景模擬: 用戶開戶註冊時經常填寫了一部分資料,就離開了,有幾種狀況 併發
- 用戶放棄註冊
- 網絡鏈接失敗
- 提交出錯
- 其餘連接吸引了用戶點擊
等等緣由…… 框架
需求: 異步
- 要求記錄用戶填寫資料,再次回來(很多天/數月後)點擊註冊的時候,用戶不用從新填寫全部資料,只需完成未完成的部分便可。
- 重要資料例如手機,電郵,即時通信號碼等等須要記錄到數據庫,已被公司回訪客戶。
- 在用戶成功註冊後應該刪除以前保留在數據庫中的手機,電郵,即時通信等等。
請問如何實現?資料怎樣保存?
事務處理相關
簡述什麼是事務處理?
在不能使用數據庫的事務處理以及鎖(表鎖/行級鎖)時,怎麼保持數據一致性?怎麼解決數據庫併發操做?
- 怎樣解決避免多個用戶讀讀取同一條數據記錄?
- 怎樣避免多個用戶更新同一條數據
開發框架
- 簡述 MVC 原理以及實現
- 怎樣實現 URL 路由
- 怎樣實現類,方法訪問權限控制
請問下面代碼怎麼實現?
用你最熟悉的語言實現。
DB db = new DB() db.select(new field("name","age"...)).from("user").where(new And("xxx=xx", "xxx=xxx")).limit(10).offset(10).orderby("id",DESC)
進程與多線程
- 什麼是阻塞,什麼是非阻塞?
- 什麼是同步,什麼是異步?
- 什麼狀況下使用線程鎖?
- 進程與線程的區別?
- 進程間通訊有那幾種,線程通訊有那幾種,以及各自的優點?
消息隊列
消息有哪些瓶頸?
CDN應用
- CDN 緩存的原理?
- CDN 均可能緩存那些內容?
- 網站首頁90%的內容是靜態的,可是用戶登陸狀態,消息狀態是動態的怎麼解決?
- JSON 可能緩存嗎?
- 瀏覽器緩存與CDN緩存的關係,怎樣實現用戶瀏覽器與CDN同時緩存?
先寫到這裏,後面會不斷更新。。。。。