微信產品經理面試題
丁香園CTO馮大輝曾發過三道產品經理的面試題,題目是關于微信的,如下:
其中第二題是一道偏技術的問題,出現在產品經理的面試中確實有點意外,但這題不失為一道很好的產品設計與系統分析的題目。系統分析也是我們“產品經理學技術”系列文章規劃中的一個部分,也是將我們所講的技術進行“升華”的一部分內容。
下面我們嘗試回答一下這個問題,算是拋磚引玉了,大家有好的答案也可以給我們留言進行討論。
朋友圈的基本數據結構設計是怎樣的?既能做到完美閱讀權限設置,又能兼顧性能?
關于消息的基礎數據,比如文字、圖片、時間、位置等這些咱就不表了。這些數據基本上與權限和性能沒有多大關系,可以理解為單獨存儲,純技術活。這里只討論權限與性能相關的數據結構。
而在權限管理上,微信采用了給用戶打“標簽”來進行分組,這個標簽的分組與微信通訊錄一致。在數據上,就是給每個關系增加一個“標簽”標記。
這里需要注意的是,雖然微信的關系在產品使用上給用戶是雙向的(即互相關注),但是在存儲的時候,是給互相關的兩個用戶分別建立了關系數據,也就是每個人獨有自己的一份“通訊錄”。
這通過刪除了自己的好友之后,自己并不從別人的通訊錄刪除就可以看得出來。標簽分組的基礎數據就是這樣了,這也是后面朋友圈權限管理的基礎。
對于個人朋友圈timeline所能看到的消息,按照一般的邏輯是先獲取所有朋友的消息,然后剔除掉沒有授權給自己看的消息、剔除掉自己屏蔽的用戶消息,然后才得到自己當前看到的timeline。
如果是這樣的邏輯的話,等于每次刷新朋友圈,都要跑到所有的消息池里面去找到上述通訊錄中朋友們的消息,還要對找到的每條消息去判斷用戶是否有權限閱讀。
這顯然是效率低下的方式,更何況微信是這么大的一個訪問量和數據量。所以,這種數據結構設計是行不通的了。
【微信產品經理面試題】相關文章:
騰訊微信產品經理的面試題07-31
騰訊微信產品經理面試題10-21
最新騰訊微信產品經理面試題08-30
Google產品經理筆試題&面試題10-26
產品類面試題07-16
產品經理辭職信08-08
銷售經理面試題06-24
產品經理辭職信范文05-26
產品經理英文求職信09-11
產品經理英文求職信范文06-29