每個產品經理都應該懂點技術。當技術人員認為你提出的需求不能實現而懟你的時候,你可以從技術的角度將他正面擊倒。而且熟悉一定的技術后,產品經理提出的需求將會更加合理,技術人員實現起來更容易。達到產品和技術和諧共處的美好社會。此篇文章是該系列的第一篇。
產品經理每天需要跟技術人員打交道。有時候我們想知道,我提出的需求技術人員究竟能不能實現?要搞清楚這個問題,我們需要知道技術人員是怎么工作的,他們不同的分工又分別做了什么工作。我們假定團隊中只有兩類技術人員:前端和后端。雖然測試和運維也同樣重要。為了簡化思考,我們暫時不考慮他們的工作內容,而只看前后端的工作。
在Web開發中,前端去做界面模板,后端負責數據。這樣可以把后端的數據放到前端的模板里。此稱為前后端分離。
在前后端分離的開發模式中,前端和后端可以同時進行工作。具體的方式是通過前后端在事先約定好的文檔規范。前端人員依據文檔寫頁面模板,后端人員根據文檔寫API接口。前端可以調用后端的API接口為界面模板填充數據。
如果是純技術人員,我們大概到這里就介紹完畢了。不過,考慮到這篇文章是為非技術人員寫的,所以我有必要更透徹的展開一下。
通過剛才介紹我們發現前后端的依賴關系只在API上。如果API的概念不容易理解,我們可以看看API的定義。
API(Application Programming Interface,應用程序編程接口)是一些預先定義的函數,目的是提供應用程序與開發人員基于某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內部工作機制的細節。
以上內容來自百度百科
如果覺得難以理解我們可以劃下關鍵詞,函數、提供訪問程序的能力、無需理解內部工作。API可以簡單的理解為一個URL地址。具體來說是前端頁面向API發送了一個請求的數據A,后端接收到A,根據業務的需求將A變成處理后的數據B,并把B返回給前端頁面上。這個過程中前端不知道也不必知道API內部是如何工作的,前端只需要根據發送的數據獲取到需要的數據。后端的工作就是接收前端發來的數據,處理后返回給前端使用。
我們以登陸返回用戶數據的一個操作為例進行詳細說明。
上述圖片是一個前端頁面。當我們輸入完用戶名和密碼,就意味著前端的數據已經獲取完了。我們點擊登陸的按鈕后,其實就將數據發送給了后端的API,此處我們假設API地址是 api.com/login 。一般使用JSON這種數據格式,如下圖(其實省略了很多數據,以下數據僅供參考)
{
"email":"gaoyakang@outlook.com",
"password":123456789
}
后端拿到上述數據后開始判斷并返回
- 該條數據格式對不對?
- 賬號密碼對不對?
- 如果都對則返回用戶信息,如果不對返回錯誤信息。
假設我們在數據庫中有以下的數據:
password | RealName | NickName | birth | age | |
---|---|---|---|---|---|
gaoyakang@outlook.com | 123456789 | mark | Rever4433 | 1995-04 | 22 |
驗證成功后,我們開始返回用戶信息,根據我們數據庫中的數據,我們將要返回RealName、NickName、birth、age等信息給到前端去填充數據。
還是用上述JSON數據格式表示:
{
"RealName":"mark",
"NickName":"Rever4433",
"birth":"1995-04",
"age":"22"
}
前端拿到該數據后把數據渲染到界面上:
這樣一條數據從前端發送到后臺接收處理,處理完后發送到前端,前端向用戶展示這一過程就完成了。
一些說明
為了盡可能簡化理解一些難于理解的數據我沒有寫出來,不過對于非技術人員應該已經足夠理解了。另外,實際開發中有的公司可能沒有采用接口化的方式,而是前端做界面模板,做完后讓后端去填充數據的方式。這種方式雖然前后端結合的實現方式上有區別,但思想上是差不多的。
看完本文,你可能對前后端具體做的事情有了一些理解。也許你還會想知道,前后端開發人員是怎樣一起進行工作的呢?前端和后端工作有先后順序嗎?這些疑問我們將會放在下一篇。在下一篇文章中我將描述前后端人員是通過文檔來開展工作的。