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


