產品人員如何理解數據結構和接口

最近一個小妹妹說去面試產品,面試官,有些問什麼是數據結構,有些問接口之類的東西,一臉懵逼。找我這邊傾訴,我想着其實很好理解,但是她不大理解的可能的原因,是因爲,她沒有學過技術,非技術科班出身,所以會被這些技術“說法”嚇蒙。

其實只要說清楚了,就很好理解的,並不需要在意麪試的人那一套套的專業名詞,因此,我簡單花了幾分鐘,屢了一個例子給她。現在也把這個例子記錄下來,有和她有相似的理解難題的人,都可以花幾分鐘理解一下。

針對這兩個名詞的解釋,我們還是從產品設計的角度切入,帶入場景進行理解。

一、業務需求

假設有下面的一個小業務需求,我們需要進行產品設計:

實現對一個學校的學生,老師,和班級的管理。管理需要滿足:

1.針對學生,老師,班級,可以增刪改查

2.查詢老師,可以看到老師教了哪些學生,以及教哪些班級

3.查詢班級,可以看到班級有哪些學生

二、實體對象識別

我們定義:客觀存在的事物,就是實體對象,那麼學生,老師,班級,就是實體對象。

三、數據結構設計

步驟1:設計數據字典

學生:姓名、年齡、班級,舉例如下:


班級:班級、名稱,舉例如下:


老師:姓名,教授課程,舉例如下:


步驟2:建立數據關係


數據關係描述:

1.一個班級包含多個學生,一個學生只會在一個班級【一對多關係】

2.一個學生由多個老師教授,一個老師教授多個學生【多對多關係】

3.一個班級會有多個老師上課,一個老師會去多個班級上課【多對多關係】

(圖裏面的1,和n,通過上面的舉例,代表的就是關係類型,如班級和學生,就是1對多的關係)

爲什麼第二步要定義實體對象,我們可以看到第三步是和實體對象緊密聯繫在一起的。設計數據結構,就是描述實體對象的數據字典,以及描述實體對象之間的關係。如果實體對象不存在,則數據結構也不會存在。

四、功能設計

老師管理包含功能如下:

【增加,刪除,查看,列表查詢,修改,刪除,同時可看其教授的班級,班級的學生】

學生管理包含功能如下:

【增加,刪除,查看,列表查詢,修改,刪除,同時可看其所在的班級,教他的各個學科的老師是哪些】

班級管理包含功能如下:

【查看班級的學生,以及班級各學科由哪些老師教授的】

五、接口提取

關於功能,我們可以理解成,用戶需要做的每一個操作的集合。如查看某個老師教授的學生,這個操作的過程就是:


在用戶這個操作過程中,系統就是通過調用“查看某個老師教授的學生”接口,來提供用戶最終看到的“學生集合”。

這個接口的設計,和用戶操作過程是一致的,不過就是以機器能讀懂的方式來寫輸入和輸出而已。


可以講,用戶的每一項業務操作,都需要調用一個或多個接口來完成。

舉例列表項的刪除操作,就是調用兩次接口,一次刪除操作接口,一次刷新列表操作接口。最終達到讓用戶連貫地進行刪除,並使頁面保持最新的狀態,符合用戶的操作預期過程。

六、內部接口和外部接口的定義

舉例某個學校“華南可愛小學”有教務系統,學校所在教育局有縣在校生管理系統。那麼就有一個問題,縣教育局,希望各個學校能提供學生的名單,並定時更新到在校生管理系統中。

那麼這裏有一個解決方法,就是各個學校提供“查詢學生列表”的接口給在校生管理系統。

站在“華南可愛小學”教務系統的角度,“查詢學生列表”這個接口的調用有分內部和外部

1.如果是在教務系統上面,用戶操作查詢學生的時候,調用“查詢學生列表”接口,那麼這個接口就是內部接口。

2.如果是在校生管理系統,定期查詢“華南可愛小學”教務系統,調用“查詢學生列表”的接口,那麼這個接口就是外部接口。

在這裏,所謂的內部接口,和外部接口,都是相對而言的,沒有明確的某個接口就是內部,或者是外部的,主要還是看調用方,和接口產出的系統相互之間的關聯關係。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章