01、计算机网络概述
场景一:“这个需求做不了,你想其他产品方案吧”——其实是程序员觉得开发起来太难或者太麻烦而糊弄产品经理。在你转身准备离去的那刻,不巧你眼角的g J p f K 2 t L余光瞟到他轻蔑上扬的嘴角:“憨憨”。? o s / - ? y场景j C 1 o p ^ g二:“你一点技术都不懂,这个方案太奇葩,按照目前的技术框架无法实现,键盘给你,你来敲”——因为确实无法用技术实现,并向你投来鄙视的眼光,看着p s C % . Z , 7 +你默默走开的背景,他缓缓的放下了双手侧举的键盘。
有些朋友$ : ! o `可能遇到过我在上方提到的两种情况,这也是很多不懂技术的产品经理会v V ? ) o F担忧的难题。要么程序员因为太难或太, + 7 r ~ s 2 ~ n麻烦而不想做需求,就欺负你不懂技术糊弄你;要么就是你提的需求太天马行空,没有考虑技术实现的可行性,落的被程序员鄙视的下场(可能还会被打)。这也是为什么我们经常听到网上关于产品经理和程序员之间的吐槽段子。
那么问题来了,产品经理到底要不要懂技术呢?应该懂多少呢?个人认为不需要深入到] v D k前的样子,有多种形态,比如APP、WEB前端(web网站—电脑上的网站,wap网站—手机上的网站)、PC客户端、小程序、快应用等等。
完成一个前端产品的步骤基本分为3大步:
1、画页面的样式(; { [ 2 u ) E S样子):所有的页面样式都是前端开P w & K发工程师画上y ! d 2 (去的,虽然有{ $ x j A d一些前端框架可以直接用,但是页面细节还是需要按照实际需求调整,比如页面的布局、按钮的颜色、栅格栏的间距、字体的大小等等;
2、页面逻辑(逻辑):一个前端页面画好之后,如果没有写入逻辑,那只能算是一个静态页面,就好比是一张静静的图片,什么动效都没有。如果我们想要页面产生交互效果,比如点击按钮实现什么效果,输入信息的验证、页面之间的跳转等等,就需要程序员写入大量的前端处理逻辑。
3、前后端交互(数据闭环):页Z I $面画完了,逻辑也写好了,但是还差一个东西——数据!数据要从哪里来?比如点击用户头像,进入该用户的个人信息页面,用户信息这个数据从) q ^ g f * ,哪里来?这就是由后端服务提供的。
前端向后端服务发起一个HTTP请求去$ 2 H j { =问后端要H * 3数据,后端接受请求后就向前端提供r . P l R W M对应的数据。同样的,如果前端` / T A , - b 9修改一个信息后点击提交,也会发起一个HTTP请求给后端,由后端处理完之后再反馈给前端。
刚才提到了,产品可以呈现为多种形态,接O x n V下来就讲讲常见的几种L - _ 6 d:
一、APP
目前市场上APP主要分为IOS版本和安卓版本。由于手机操 c $ -作系统的不同,程序员写代码时使用的语言也不同,安卓APP用的主流语言是JAVA,IOS则是用object3 } ^ B端
我们日常能用浏览器打开的都属于WEB端。用电脑浏览器打开的是web网页,用手机浏览器打开的是( , e m c g # M Kwap网页,包括你用微信、支付宝扫码之后打开的页面(小程序除外)。总体来说WEB端的使用率其实比APP还高。WEB端的实现分为3部分:
最基本的HTML页面布局。全称Hypertext Mo M K * u W ^ 2 iarkup Language,也就是超文本链接标志语言。
CSS层叠样式表。它是一种用来表现HTML(标准通用标记语言的一个应用)N & % Z的计算机语言。
JavaScript,也就是J . C I ? t & `程序员嘴里常常提到的“JS”。注意JavaScript和JAVA是两种语言,不能混为一谈
第1部分:HTML页面。
大家可以这么理解,我们在网站上看到的r ` Q + k H ; J是HTML页面,它是由各种HTML标签k ( L y $组成的,开头和结尾分别是<html>和</html>这样的标签。
我们看到的内容都被写在<html>&^ k T A 1 K +lt;body></body></3 . html>中的<body>标签里面。如下图o q ) ^ 5 :
网站中的输入框,都是被写在&M % _ Z Dlt;inj J g $ C t ! = |put/>标签里面的,如下图:
第2部分:CSS样式表。
它是用于控制和渲染HTML标签的样式。CSS就类似女生的化妆品,有的女生化妆就是仙女,不化妆就是路人甲,同样,如果一个HTML如果没有CSS控制样式,那页面就会丑的让人无法直视。但有所不同的是,有的女生天生丽质不需要3 } (化妆就很好看,但是HTML不化妆就s ~ - n 5 q惨不忍睹,你看到的 d们一头雾水。作为PM,我们不用知道其具体实现原理,只需要把它们理解为:被封装过的更牛逼的语言!就y H _ { R A .类似模板一样,程序. o q s员可以直接拿来用。简单说,封装逻辑框架就是为了省代码] = e V + @ ` t s,提高开发效率。
三、小程序
拿微信小程序来说,小程序是微信出的一款基于微信内的应用,但它s F p s e P H 6不是一个应用程序,是微信基于网页端开发语言(CSS= A K ^ Y、JavaScrip~ I 1 d 9 N $t)拓展封装而来。把原来的CSS样式表、JavaScript进行封装,然后基于微信APP的功能提供一些可用的接口供开发人员开发,开发? z X + { #完成后提交给微信,微信进行打包处理呈现给最终用户,就是我们在微信中看到的小程序。
第二层:API网关和负载均衡
网关一词较早出现在网络设备里面,比如两个相互独立的局域网段之间通过路由器或者桥接设备进行通信, 这中间的路由或者桥接设备我们称之为网关。
而API网关则是将各系统对外暴露的服务聚合起来,所有要调用这些服务的系统都需要通过API网关进行访问,基于这种方式网关可以对API(接口)进行统一管控,例如:认证、鉴权、流量控制、协议转换、监控等等。
这里只说说我们常见的面向Web或者App的场景,在物理形态上类似前后端分离,前端应用通过 API(接口)调用后/ p B Z s s u端G y u服务,需要网z F ? N 4关具有认证、鉴权、缓存、监控告警等功能。
关于负载均衡原理网上的专业词汇解释有很多,也很详细。但是不了解技术的人往往看M - G V完还是一头雾水。我们只需要这样理解:原本s Z C V ` w是一台服务器干活,然后工作量增加产生负载,就平均分摊给多个服务器,从而协同完成工作任务。
第三层:后端服务z h 7 M ! ( L
前端服务是整个产品的表现层,后端服务就是整个产品底层逻辑3 S U H ~最核心的地方,负责处理业务逻辑,数` 8 - I O 就会问:你刚讲的,前端服务会处理各种逻辑,那为什么还要后端服务来处理呢?因为前端处理是不安全的,前端是直接暴露给用户的7 C n ; , n,前端程序中的JavaScript、HTML、CSS代码都会被加载到用户使用的浏览器中,你的数据就很容易被懂技术的不法分子篡改、利用。而后端服务对于用户来说是不可见的,它只会接受数据请求,返回结果,a 6 2 ( ? ? m但是用户就无法得知它是如! X J A何处理数据的。
就拿最常见的登录功能来说,前端X D p 0 U Q 6服务给用户展现一个登录的页面,用户输入账号密码5 j 5 {,数据再被存在库房里面,这个库房就叫数据库。数据库分很多种类型,根据不同的数据场景来存储不同的数据,至于存哪些数据是由后端服务决定的。
最后:打包和发布
“w W K ) Y v ^ -赶紧打包,打好包就提测了,测试人员在E ] s O _催了”“没有bug了吧,没有我就打正式包了,准备正式提交发版了哦”
当开发人k ( B N员把Pc ? } % 3 D 9 oM设计的产品开发完成后,是不能直接发布到服务器上的,需要经过编译、打包,也就是把开发语言编译成机器可以识别的语言,然后把所有文件放在一个可运行的软件包里面才行。当然,一个产品在正式上线之前会放到开发环境、| ` T /测试环境,当在这两个环境下测试都没有p % z 5 s ^ ( -问题之后,才能发布到正式的生产环境。有时候到正式b | 2 S i环境之后,为了保险起见,测试人员还会再测一轮,因为不同的环境可能引起不同的问题。
总结
以上就是针对开发流程的简单概述,真实情况当然要复杂的多。所$ H - i V S p 8以我们在平时的工作H Z u c T中应该多和程序员交流,在与他们的沟通中,我们自然也会增加对技术知识. % ] k ! T E + m的理解。也许你还会惊喜的发现,他们也有可爱有趣的一面。
除此之外,在工作之余,产品经理也要多去看看技术相关方面的书籍和资料,通过这种方式多去了解一些x D , 2 ( ^ w v技术6 ( A ` h $ A w *方面的知识。当我们了解的更多,设计产品的时候,我们就会在e Z f 5 u #产品设计初期就把一些目前无法实现的功能给换一W y t s ,种方式实现。
本文由作者@s u ~ N hZss_Zhou 在PMCAFF社区发布,转载请注明作者M x K ; 4 4及! v m -出处。