幼儿饰品瑜伽美体用品微软
投稿投诉
微软创意
爱情通信
用品婚姻
爱好看病
美体软件
影音星座
瑜伽周边
星座办公
饰品塑形
搞笑减肥
幼儿两性
智家潮品

写给产品经理们的技术分享后端篇

  在上一篇文章中,笔者分享了web前端的相关知识与应用(写给产品经理的技术分享前端篇),这篇文章是对上一篇文章的补充,主要分享后端、以及前后端交互相关知识及其在产品工作中的应用。
  一、简单谈一下API
  1。API的种类以及定义
  API这个词,我想所有的产品经理都听过无数次。
  上一篇分享中,我们提及了一种用于前后端通信的API,其作用方式之一是:前端随请求将要传递的数据打包并发送到服务器,服务器执行相应处理程序,并将程序的输出发回前端。
  前端通常使用这种方式从服务器请求最新数据,因为这些工作涉及到前后端配合,因而在实际工作中还需要产出相应的API文档(甚至于在一些公司是由产品经理去输出API文档),指明随请求发送的参数、请求方法,传回的参数等。
  除了这种用于前后端通信的API,还有很多其他类型的API,例如:我们调用支付宝、微信等第三方应用的API,从而为自己的应用增加支付、分享等功能。
  在《headfirstpython》这本书中,通过一个具体的例子,更加透彻的讲解了API的由来:
  在编程中,通过定义函数,可以减少重复代码;将函数保存在一个脚本文件中,使之转化为模块;将模块放入文件夹,同时增加元数据文件,就可以将模块打包准备发布;在web上发布你的文件(也就是API),以供他人下载、安装和使用,其他开发者可以使用API所提供的函数为产品增加功能。
  为了让更多人以不同方式更加灵活的调用API,我们在定义函数时可以使用可选参数(也就是为参数提供默认值),通过使用参数控制函数的行为与表现。
  2。在产品工作中的应用
  即便不需要写API文档,产品经理对于API及其调用方式也需要有基本的认知,进行考虑并体现在产品设计方案或者PRD中。
  以调用QQ分享接口为例进行说明:我们需要查看QQ开放平台API调用说明,明确各种API调用的效果以最终确定要选取的API,以及该API需要自定义哪些参数。
  下图是我的PRD的截图,指明了调用的API、调用效果以及需要自定义的参数值。
  二、web开发
  1。web应用如何工作
  在上一篇讲前后端通信的时候,已经初步提及了web应用的工作方式。
  这里再大概陈述一下:
  用户在浏览器执行操作,比如输入URL或者点击一个跳转链接。
  浏览器将用户动作转换为一个web请求,通过互联网发送到服务器。
  服务器收到请求并进行处理。在这里,如果请求的是静态内容,服务器会找到相应资源并把它作为响应返回给浏览器;如果请求的是动态内容(也就是需要运行程序才能输出),那么服务器会找到并运行相应服务端程序,并将程序的输出作为响应发给浏览器。这个生成动态内容的过程称为通用网关接口(CGI),符合这个标准的服务端程序称之为CGI脚本。
  浏览器接收到web响应,通过改变DOM将之显示在用户的屏幕上。
  2。采用MVC设计web应用
  MVC即模型视图控制器(modelviewcontroller),这是一种常用的开发模式,有助于将代码分解为易于管理、维护、扩展的功能模块。
  其中:
  模型(model):用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法;
  视图(view):代码提供直接与用户交互的界面;
  控制器(controller):代码起到组织协调作用,将模型代码和视图代码粘合起来,用于处理响应,控制应用程序的流程。
  在互联网早期,后端做了绝大部份工作,也就是模型、视图、控制器代码都由后端完成。
  后端会建立数据模型,通过视图代码对HTML标记进行拼接,通过控制器代码将模型数据填充到页面视图中并打印出来,这些输出作为响应发回浏览器,浏览器再将页面显示出来。
  这种模式的缺点在于:每次请求都要返回一个新页面,这会降低浏览器的响应性;另外,许多前端页面存在大量重复代码,但是还要一遍一遍重复生成。
  而现在,这一情况已经改变,视图代码和部分控制器代码已经运行在前端,模型和部分控制器代码则运行在后端。
  在这种模式下,后端不再需要每次都返回一个完整页面,只需传送数据(通常为JSON格式);前端定义好页面样式,从服务端获取数据并根据业务逻辑填充到页面中。这可以提高页面的响应速度,并且高效利用了不同页面的重复代码。
  举个例子:比如我们的网站有一个这样的页面,用户输入某一个歌手,我们的网站就为其展示该歌手的所有歌曲名。那么前后端分别需要编写哪些代码模块呢?
  前端需要编写视图(View)相关代码,提供一个表单页面让用户输入歌手名;前端还需要编写一部分控制器(controller)代码,用于创建请求,随请求将用户的输入以键值对的形式(例如singer:周杰伦)发送到服务端,另外还需要编写数据到达时的处理程序,在服务端数据到达时,对歌曲数据进行处理并以一定的结构增加到页面中。
  后端需要有一个数据模型(model),该模型以一定的结构存储了许多歌手及其歌曲数据,还定义了获取业务所需数据的方法或者说函数(在这个例子中就是通过歌手的名字,获取该歌手的所有歌曲);后端还需要有一个控制层(controller),用于处理前端发来的请求并进行响应,在这里就需要获取用户输入的歌手名(同样是使用键获取对应的值),调用数据模型及相应函数,并将歌手名传入函数。该函数会获取模型数据并进行处理,最终输出该歌手对应的歌曲列表,作为响应发回前端。
  3。在产品工作中的应用
  通过以上的例子,我们就可以看出:前后端在软件开发中角色的分工与配合方式,知道了目前前后端的分工原则后,我们在和前后端的沟通中就应该相应有所侧重。
  着重像前端展示页面的结构、样式、交互,指明页面数据来源;着重向后端展示,哪些数据来源于后端,这些数据的计算规则(如上文所言,复杂的数据逻辑运算一般发生在服务端),和现有数据的关联等。
  了解前后端的分工不仅可以帮助我们更好的推动产品方案落地,还有助于在出现bug时,更加快速定位到问题来源与对应开发人员。
  在这里还要强调一下:无论是模型视图控制器这一开发模式,还是上述的前后端的分工方式,都不是唯一正确答案,这种划分也不是非黑即白的。我们要明确其间的区别,但更要知道其中的联系。
  三、关于数据库
  1。简介
  前面已经提到了数据在前后端之间的传递,在上一篇讲本地存储的时候也提及了可以使用localstorage(本地存储)、sessionstorage(会话存储)将数据存储在浏览器本地。但是,绝大多数用户数据、内容信息是存储在服务端的数据库中。
  数据库的类型主要有关系型数据库和非关系型数据库。
  关系型数据库是一种基于关系模型的数据库,这种关系模型是对现实中实体关系的抽象表达。非关系型数据库,在存储的数据结构上没有那么严格的约束和规范,以更加灵活的方式定义数据存储。
  常用的数据库管理系统(软件)包括:Oracle、MySQL、MongoDB等。
  可以这样理解数据库和数据库管理软件的关系,数据库就是一个类似Excel文件的数据文件,里面包含很多的数据表,这些文件会放在web应用的根文件夹下,以便在运行程序时进行访问;数据库管理系统类似于Excel软件,可以可视化的查看并管理数据库文件。
  在这里我们仅对关系型数据库进行讲解。
  2。如何与数据库交互
  这里以python编程为例,讲解服务端程序与数据库如何进行交互。python的数据库API提供了一种操作数据库的标准机制,如下图(注意这并不是与数据库进行交互的唯一方式)
  以上流程翻译成python代码是这样的:
  3。设计并建立数据库
  关系型数据库是由一张张相互关联的数据表构成的,对数据库的设计也就是设计数据表的结构和关联。我们现在来设计一个数据库,并使用python真正建立这个数据库。
  现在我们设计了一个名为runningdata的数据库,里面包含两张数据表,一张表记录每个用户的基本信息(姓名和出生日期),另一张表记录每个用户的跑步时间数据。
  两张数据表分别如下:
  可以看到,这两张表通过用户ID进行关联,这种表的结构和关联应该是具有逻辑意义、现实意义、业务导向、支持扩展的。
  上面是对数据表的设计,那么如何通过python建立上面的数据表,并进行数据插入和查询等操作呢?
  首先套用3。2中的流程,建立与数据库的连接、创建数据游标,然后使用create语句创建两个数据表。使用SELECT语句对数据表进行查询并获取结果,使用INSERT语句分别向表增加数据(其中用户ID可以自动生成,我们使用第一个表生成的用户ID填充第二个表,使之关联起来),然后提交修改并关闭连接。
  建立后的数据库一般长这个样子:
  4。将数据库集成到web应用
  上面讲MVC(模型视图控制器)时我们提到,模型代码用来存储并提供数据。所以,我们只需在模型(model)中编写上述代码,让其帮助我们创建数据库,并定义相关的数据处理方法。这样在控制器代码进行响应时就可以调用该方法,使之返回我们需要的数据。
  5。在产品工作中的应用
  产品经理对于数据库的设计方式、作用方式有一定的了解,有助于评估产品功能的实现对现有数据库的影响,以及新的设计对原有数据的兼容性问题。
  另一方面,现在的产品设计往往需要参考大量的用户行为数据,进行下一步优化。这些用户数据往往存储在数据库中,产品经理有时需要使用SQL语句对数据库进行查询,因而对于数据库的了解也是大有帮助的。
  写在后面
  本文主要讲解了三个方面的内容:
  关于API的基本知识
  web应用的工作方式、开发模式
  数据库的简介、操作方法、应用方式
  通过这些内容简单介绍了服务端的基本知识,以及与产品工作的联系。
  我个人对于服务端技术的学习是通过《HeadFirstPython》这本书,因此写这篇文章,也算是抛砖引玉。后端的内容非常之庞大,我虽诚惶诚恐,还是大胆把自己有所感悟的写了下来,欢迎大家与我探讨或者批评指正。
  这两篇文章讲解了web应用开发所涉及的基本知识,希望大家看完之后有所收获,也建议产品经理们去看一下技术相关的书籍,甚至于写一个自己的应用,体会一下开发的过程,思考产品设计与技术实现的关系,思考产品经理与开发人员的协作方式。

洁白的纸张光反射系数高吗纸张是我们日常生活中必不可少的一种产品,我们写字画画,日常办公都离不开它。可是你知道吗?洁白的纸张同样也会产生光污染的危害。这是因为纸张由于它的表面光滑,具有反光性,而光污染的……年轻很简单朋友的家和一所大学很近,她每次上下班都有两条路可以选择。一条是走东边宽阔笔直的大路,步行需要10分钟;另一条是走西边靠近大学的小路,步行需要15分钟。朋友总是喜欢走小路。……装修做柜子用什么板材最好关于做衣柜,我一般支持整体定制多一些,并不是说定制的一定比木工做的好。只是觉得遇到一个靠谱定制商家的概率比遇到一个靠谱木工的概率要相对更高一些。一个好的衣柜,其实不仅仅是……不一样的清明今天是清明节,一大早妈妈说要带我去参加清明传统文化体验活动,我顿时发自肺腑地喊到:耶!太好了,我可以过个不一样的清明节啦!到达活动地点金陵图书馆,只见大厅里早已布置一新,……麦芽糖造句用麦芽糖造句大全31、在口腔内,唾液腺会响应食物的想法或存在分泌一种包含黏液和淀粉酶及麦芽糖酶的液体。32、别在鸡身涂过多麦芽糖,否则糖分过多,熏焗后会带苦涩味。33、把鸡肉摊平固……怎样让你的孩子吐露心声和很多父母一样,我希望孩子对我无所不谈,了解孩子真实的生活和思想,走进孩子的心灵,随时掌握孩子思想的脉搏,引领孩子向健康的方向发展。以下是我的一些做法,效果不错,供父母们借鉴。……我的小台灯我书房整洁的书桌上,摆着一盏非常引人注目的小台灯。每当夜幕降临,它便会发出银白色光辉,点亮自己,也照亮整个房间。这款台灯来历不凡。我上一年级时,妈妈觉得我长大了,应该有一……国产车哪个最好这十大品牌性价比极高在日产生活中人们都需要代步工具来走亲访友,关于代步工具人们第一想到的就是汽车。这篇文章小编我就为大家介绍一下国产车哪个最好,我为大家带来了国产车十大品牌,让大家详细的了解国产车……肥胖的并发症有哪些肥胖对我们身体的危害是很大的,不仅仅是影响外在美观,并且还容易导致一些并发症。有肥胖倾向的人,死亡率比正常的人要高出一大截。肥胖的人容易患上糖尿病,还容易患上肝硬化或者胆结石,……女性在经常喝豆浆益处非常多豆浆对于我们的日常生活来说是一道常见的营养美食,很多人美好的一天都是从一杯豆浆开始的,尤其是女性在经常喝豆浆益处非常多。1、经期可以喝豆浆吗经期女性面临身体出现的一……思想上造句用思想上造句大全(31)人是自然的仆役和解释者,因此他所能做的和所了解的,就是他事实上或在思想上对于自然过程所见到的那么多,也就只是那么多。对此,他既不知道什么,也不能做什么。(32)他……抛弃传统观念纠正新生儿的七大护理误区由于受传统思想影响,妈妈们在护理新生宝宝的时候会存在不少误区,好比喂奶后用纱布擦口腔,但这是错误的,因为粗糙的纱布有可能损伤宝宝口腔黏膜,引起口腔感染。下面,让我们一起看看本文……
一美元的約定吉姆在一個風景區工作,每天去上班時,鄰居老傑克都會遞來一張5美元的鈔票,請他從景區的咖啡店買一包4美元的咖啡,這習慣已保持了好幾年,當然,作為回報,老傑克總是將吉姆家的草坪修剪……陈敏胎儿基因检查的新技术孕妇担心胎儿会患上唐氏综合症?现行的唐氏综合症筛查诊断方法有1035的漏诊率,57的假阳性率,抽羊水和抽绒毛有0。5流产风险。NIFTY是非侵入性胎儿染色体基因检测……神医的秘方明朝末年,京城出了位张神医,不但医术高超,而且医德高尚,穷人看病,他分文不取。张神医晚年得子,取名张继志,顾名思义,希望儿子继承自己的衣钵。然而,张继志虽然聪明过人,但生……房屋租赁纠纷可以查封吗在21世纪的今天买房难是大家都发愁的话题,现在的房价一直呈现急速上涨的趋势,人们除了努力挣钱也别无他法,只能租房过日子,在租房过程中关于房屋租赁的纠纷不断,有的人选择以暴力方式……故事里的人生助人反被诬陷的故事三则故事一:三个少年好心扶起被摔倒老太婆却被诬陷。故事发生在四川省达州市城区正南花园。2013年6月15日下午3时许,江先生9岁的儿子小华和两位同龄的小朋友在正南花园小区的居民楼下……幽默的相亲和介绍对象1、有一位小伙子,特吝啬,相亲了许多姑娘都没有成,父母很着急。这天,又委托媒人领着他去一位姑娘家相亲。相亲后,小伙子没有表态,媒人问:怎么样,相中没有?小伙子……专业化造句用专业化造句大全61、校长专业化发展是一个过程,其知识构成也有不同的层面,本文仅从知识理论的角度分析校长知识的结构,隐性知识及其如何显性化是其中关键。62、提升脚手架的环保要求、成立专业……奇难杂症之月蚀疮有个六岁的小孩,耳根后好像被刀割了一圈,看着烂烂的,是啥情况呢?月蚀疮,用蚯蚓粪培干调猪油旋耳疮又名月蚀疮。《医宗金鉴外科心法要决》曰:旋耳疮生于耳后缝间,延及耳折……如何用旧技术开创新行业数码相机比起冲洗一卷一卷的胶片更便宜,而照片共享应用程序让你的iPhone相机用起来反而比你的旧数码相机更容易。诸如此类的新数码技术总是让人感到兴奋,这是可以理解的。新技……夫妻之间的名言同丝有同藕异心无异意1、不要夫妻千担粮,只要夫妻好商量2、才德的妇人,是丈夫的冠冕〈圣经〉3、痴心女子负心汉4、断弦犹可续,心去最难留5、夫妻和好,白头到老6、夫妻和……哪些食疗可以补血让孩子不贫血哪些食疗可以补血让孩子不贫血?出生后6个月内的婴儿若有足量的母乳喂养,一般不会发生缺铁性贫血。若母乳量不足,以牛奶喂养为主,由于牛奶中铁的含量比母乳低,小儿对牛奶中的铁的吸收也……甚微造句用甚微造句大全61便衣力量曾开展守候伏击,但效果甚微。62虽于战后稍为陆续补购,然为数甚微。63肖燕梅坦言,在扶贫开发上,罗田也出现过“跟风跑”现象,特别是在产业扶贫上,曾把发展……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网