不懂技术的产品经理可能在遇上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错误
这种有明显数字代码的错误,先找后端就没错了。
这下子,小汪就明白了,原来前后端的程序猿哥哥们是这样分工的。
用户可见的界面、进行的交互操作就是前端负责,业务的逻辑、流程、数据的处理就是后端的职责。