面試問答
因為業務是物流倉儲, 所以 給一個 table 是進庫存的紀錄, 還有一個 table 是 出貨單的紀錄, 進庫存紀錄和出貨單紀錄中, 同一品項可能重複, 如何分配成指定的結果
我直接寫程式去做分配...
面試主管很資深感覺的出來技術底子很扎實, 也是一個很直接乾脆的人, 面試一開始跳過制式的自我介紹和經歷, 直接介紹他們要
找人的標準, 開宗明義說因為是“資深”工程師, 所以
1. 不只是熟練的把程式寫出來, 而是希望有能力寫出來的 code 不需要再被 code review
2. 希望甚至可以幫忙 code review 其他 junior 的程式
3. 因為公司業務的性質, 常需要完成時限內的需求, 所以寫出來的程式盡量要可以 reuse
4. 如果不依靠 framework, redis, and kafka 等 tool, 是否仍然可以完成需求功能
公司是在一個商務中心裡, 做題的時候螢幕會外接同步到螢幕上, 總共花費了4 hr 就針對問題和面試主管討論, 我自己對系統設計的準備不夠表現不佳, 感覺的出來對方是很願意跟你深入討論的好主管
面試問答
因為業務是物流倉儲, 所以 給一個 table 是進庫存的紀錄, 還有一個 table 是 出貨單的紀錄, 進庫存紀錄和出貨單紀錄中, 同一品項可能重複, 如何分配成指定的結果
我直接寫程式去做分配, 算是有寫出來不過寫的比較複雜, 本來想說先寫完之後再來做簡化, 不過就像前面說的, 他們的找人標準不是只要寫出來而已, 面試主管就有提到, 這動作其實和盤點庫存也類似, 主要動作就是比對兩個列表以及其中的數量, 所以理想的答案是要抽象化出來, 用 interface 泛型的方式設計, 讓不同的對象也能夠做同樣動作的比對
面試建議
對於系統設計要多準備和練習, 有問到 event handler 的設計? ThreadPool 的設計?如果使用 Redis 掛掉了怎麼處理?該怎麼復原?
解鎖 710 字完整內容
32 人已看過