產品經理懂點技術:什么是前后端,兩者如何分工?
不懂技術的產品經理可能在遇上bug時都不知道去找誰,本文說明產品前后端如何劃分,相關問題屬于哪個“端”,適合初級產品人閱讀。
產品汪在驗自己產品時,經常遇上bug了,就去找測試小姐姐,測試小姐姐看了看,就說:“這個找后臺的某某吧”,“這個找前端的某某吧”。
小汪就好奇了,那么多程序猿哥哥,他們的職責是怎么劃分的呢?
產品經理眼里的“端”
在產品經理眼里,一般按業務的使用者對產品領域進行劃分,例如淘寶的用戶端、商家端,再例如滴滴的乘客端、司機端、運營后臺;甚至會進一步細分,有網約車司機端、代價司機端等。
當然,也可能按照業務模塊進行劃分,例如物流系統、支付系統、訂單系統等。
前后端:誰前?誰后?
在大部分公司里,一個程序員的工作,可能會覆蓋很多個產品端。例如一位前端的同事,可能既要做用戶端的H5,也要做商家端的網頁,還要做平臺運營后臺的網頁。一個后端的同事,工作也可能覆蓋多個業務模塊。
那他們的工作是怎么劃分的呢?
簡單來說,對于程序猿哥哥來說,前端就是負責“用戶看得見”的內容,將UI稿轉換成網頁、APP、電腦軟件等,同時實現所有交互事件,例如用戶點擊、滑動、拖動等操作。
前端又會根據實現的形式進行細分,常見的有:
1)移動端APP
根據手機系統的不同,又細分為蘋果iOS APP、谷歌Android(安卓) APP,甚至一些非常小眾的手機系統APP,例如微軟的Windows Phone(簡稱WP)的APP。
不同手機系統上APP開發需要用的編程語言差異較大,開發環境也有所差異,所以一個APP前端程序員,一般只會開發一個端,例如只負責安卓端,或者只負責蘋果端。
另外,在移動端,大家經常能聽到一個詞,叫做“原生”。所謂原生就是使用系統指定的編程語言開發的軟件,“非原生”,一般指套用一個網頁瀏覽器,然后再在瀏覽器內用網頁展示內容實現的軟件。
2)PC端軟件
例如我們常用的office系列軟件Word、Excel、PowerPoint;電腦版的QQ、微信、QQ音樂;上網頁用的Google Chrome瀏覽器、Firefox瀏覽器等,都是PC端的軟件。PC端也因系統的差異,前端也會進一步的細分。
3)網頁web
網頁基于HTML(HyperText Markup Language,超文本標記性語言)實現,現在已經發展到了HTML5.0版本,也就是大家耳熟能詳的H5。Web內容具有編程語言統一、與平臺無關的特點,我們可以通過各種電腦網頁瀏覽器、手機上的網頁瀏覽器(UC、百度瀏覽器等),甚至內嵌了網頁瀏覽器的微信、QQ、支付寶等等,實現網頁的訪問。
得益于網頁內容編程語言統一的特點,網頁前端程序員一般能做非常多的事情,例如開發電腦端網頁、手機端網頁、微信公眾號H5等等。
4)小程序
一種新生的事物,某些軟件當用戶規模足夠巨大時,就可以設定一套規范,然后讓前端程序員們直接為這些軟件,而不是不同的系統,開發“程序中的程序”。
這樣的好處就是,用戶不再需要手機上裝各種各樣的APP,一個軟件里就能解決大部分事情。
現在主流的小程序,例如微信小程序、百度小程序、支付寶小程序等,都是基于HTML衍生發展出來的。開發過程與編寫HTML網頁相似,所以一些公司并沒有專門的小程序前端,而是由網頁web程序猿哥哥“被迫營業”同時從事小程序的開發。
目前很多公司推出的小程序,雖然都是基于HTML衍生出來的,但是各自衍生(魔改)方法不一樣,所以具體編寫時也有所差異。目前,市面上有一些小程序代碼轉換工具,例如寫好一個微信小程序,用工具一轉,就能生成一個百度小程序。
相對于“用戶看得見”的前端,那用戶“看不見”的部分,就是由后端負責了,后端程序猿哥哥要負責業務邏輯的實現、訂單、用戶資料等數據的增刪改查。
一款產品的后端,一般只會用一種編程語言編寫。一些功能特別豐富的產品可能會用一種編程語言作為核心,另外用1-2種語言實現一些這類語言擅長的模塊,例如用Java做核心語言,但配套的數據平臺用Python寫之類的。
由于在同一款產品中,后端編程語言不像前端一樣根據系統/設備不同各種開花。所以,后端程序猿哥哥就可以一個人負責多個業務模塊的后端編寫,甚至輪流負責不同模塊的編寫。
后端哥哥也是很辛苦的,因為他們需要去實現各種業務邏輯,訂單流轉、登錄登出及權限管理、實現數據的存儲導出、進行不同系統間的對接等等。
根據問題特征,回溯bug該找誰
介紹完了前端后端分工內容的區別,那么想區分一個bug到底歸誰,那就容易些了。
如果是頁面樣式上的錯位、缺了或多了啥字段或模塊,某些按鍵或交互點了沒反應,就優先找對應內容的前端。
相對比前端的bug,后端bug體現形式就比較豐富:
1)業務邏輯錯誤
例如創建訂單計算金額錯誤、優惠券是否能用判斷條件錯誤、訂單審批流程錯誤等等。
2)點了之后報錯
一個按鈕不是點了沒反應,而是點了就彈出一大堆英文的錯誤信息,這種情況下一般可以先找后端看看問題。
3)404、500錯誤
這種有明顯數字代碼的錯誤,先找后端就沒錯了。
這下子,小汪就明白了,原來前后端的程序猿哥哥們是這樣分工的。
用戶可見的界面、進行的交互操作就是前端負責,業務的邏輯、流程、數據的處理就是后端的職責。
本文由 @iCheer 原創發布于人人都是產品經理,未經作者許可,禁止轉載。
題圖來自Unsplash,基于CC0協議。
你是不是想搞定小魚搬到獵德住,你真是不要臉
寫的很清楚,非常感謝作者,在評論區做個筆記。
1.端得劃分有兩種方式。按照用戶使用者角色劃分,xx角色端。按照業務模塊劃分,實現某一具體業務,xx功能系統。
2.前端負責交互和視覺樣式設計,實現交互事件。不同的操作系統有不同的編程語言,按照系統指定的編程語言開發叫’原生‘,套用瀏覽器開發叫’非原生‘。H5可以打破平臺的壁壘,統一編程語言,是較為流行的開發技術。小程序則是程序中的程序,市面上有較多的小程序轉化工具。
3.后端負責業務邏輯實現,數據的增刪改查存儲導入導出以及不同系統的數據對接。一個產品一般只有一種后端編程語言,負責的產品會搭配其他編程語言實現。
文中提到“前端是負責‘用戶看到見’的內容”,個人決定描述的非常好理解。
但是有些后臺不是前后端分離做的,所有后臺的頁面可能會是后端開發直接寫的,所有個人覺得應該增加一個補充說明“后臺管理系統為前后端分離開發情況下”。
滿滿的干貨,還寫的通俗易懂,點贊了??
搜噶!
asp.net datatable 還拼 sql….. 呵呵呵呵
奈斯~真是需要的
干貨! ??