在上一则该文中,本栏撷取了web前端的有关科学知识与应用领域(所写商品副经理的控制技术撷取–前端篇),这篇该文是对上一则该文的补充,主要撷取前端、和其间端可视化有关科学知识或其在商品组织工作中的应用领域。
一、简单谈一下API
1. API的种类和表述
API这个词,我想所有的商品副经理都母汤氏许多次。
上一则撷取中,他们提到了一种用作其间端通讯的API,其作用形式之一是:前端随允诺即将传达的统计数据装箱mammalian送至伺服器,伺服器执行适当处理流程,并将流程的输入传回前端。
前端通常采用此种形式从伺服器允诺最新统计数据,因为这些组织工作涉及到其间端相互配合,因而在实际组织工作中还须要工业生产适当的API文档格式(班莱班县在一些公司是由商品副经理去输入API文档格式),详述随允诺推送的组件、允诺方法,传回的组件等。
除了此种用作其间端通讯的API,还有很多其它类型的API,例如:他们初始化PayPal、QQ等服务器端应用领域的API,从而为自己的应用领域减少支付、撷取等机能。
在《headfirst python》这两本书中,透过一个具体的范例,更为有条理的传授了API的来历:
在程式设计中,透过表述表达式,能减少多次重复标识符;将表达式留存在一个JAVA文档中,使之转化为组件;将组件放进文档夹,同时减少元数据文档,就能将组件装箱准备正式发布;在web上正式发布你的文档(也是API),德博瓦桑县别人下载、安装和采用,其它开发人员能采用API所提供更多的表达式为商品减少机能。
为了让更多人以不同形式更为灵巧的初始化API,他们在表述表达式时能采用可选组件(也是为组件提供更多缺省),透过采用组件控制表达式的行为与表现。
2. 在商品组织工作中的应用领域
即使不须要写API文档格式,商品副经理对于API或其初始化形式也须要有基本的知觉,展开考虑并体现在商品设计方案或者PRD中。
以初始化QQ撷取USB为例展开表明:他们须要查阅QQ金蝶API初始化表明,明确各种API初始化的效果以最终确定要挑选出的API,和该API须要自表述什么样组件。
下图是我的PRD的截图,详述了初始化的API、初始化效果和须要自表述的组件值。
二、web开发
1. web应用领域如何组织工作
在上一则讲其间端通讯的时候,已经初步提到了web应用领域的组织工作形式。
这里再大概陈述一下:
用户在浏览器执行操作,比如输入URL或者点击一个跳转链接。浏览器将用户动作转换为一个web允诺,透过互联网推送至伺服器。伺服器收到允诺并展开处理。在这里,如果允诺的是静态内容,伺服器会找到适当资源并把它作为响应返回给浏览器;如果允诺的是动态内容(也是须要运行流程才能输入),那么伺服器会找到并运行适当服务端流程,并将流程的输入作为响应发给浏览器。这个生成动态内容的过程称为通用网关USB(CGI),符合这个标准的服务端流程称之为CGIJAVA。浏览器接收到web响应,透过改变DOM将之显示在用户的屏幕上。2. 采用MVC设计web应用领域
MVC即模型-视图-控制器(model-view-controller),这是一种常用的开发模式,有助于将标识符分解为易于管理、维护、扩展的机能组件。
其中:
模型(model):用作封装与应用领域流程的业务逻辑有关的统计数据和对统计数据的处理方法;视图(view):标识符提供更多直接与用户可视化的界面;控制器(controller):标识符起到组织协调作用,将模型标识符和视图标识符粘合起来,用作处理响应,控制应用领域流程的流程。在互联网早期,前端做了绝大部份组织工作,也是模型、视图、控制器标识符都由前端完成。
前端会建立统计数据模型,透过视图标识符对HTML标记展开拼接,透过控制器标识符将模型统计数据填充到页面视图中并打印出来,这些输入作为响应传回浏览器,浏览器再将页面显示出来。
此种模式的缺点在于:每次允诺都要返回一个新页面,这会降低浏览器的响应性;另外,许多前端页面存在大量多次重复标识符,但是还要一遍一遍多次重复生成。
而现在,这一情况已经改变,视图标识符和部分控制器标识符已经运行在前端,模型和部分控制器标识符则运行在前端。
在此种模式下,
举个范例:比如他们的网站有一个这样的页面,用户输入某一个歌手,他们的网站就为其展示该歌手的所有歌曲名。那么其间端分别须要编写什么样标识符组件呢?
前端须要编写视图(View)有关标识符,提供更多一个表单页面让用户输入歌手名;前端还须要编写一部分控制器(controller)标识符,用作创建允诺,随允诺将用户的输入以键值对的形式(例如 singer:“周杰伦”)推送至服务端,另外还须要编写统计数据到达时的执行流程,在服务端统计数据到达时,对歌曲统计数据展开处理并以一定的结构减少到页面中。
3. 在商品组织工作中的应用领域
透过以上的范例,他们就能看出:其间端在软件开发中角色的分工与相互配合形式,知道了目前其间端的分工原则后,他们在和其间端的沟通中就应该适当有所侧重。
,复杂的统计数据逻辑运算一般发生在服务端),和现有统计数据的关联等。
在这里还要强调一下:无论是“模型-视图-控制器”这一开发模式,还是上述的其间端的分工形式,都不是唯一正确答案,此种划分也不是非黑即白的。他们要明确其间的区别,但更要知道其中的联系。
三、关于统计数据库
1. 简介
前面已经提到了统计数据在其间端之间的传达,在上一则讲本地存储的时候也提到了能采用local storage(本地存储)、session storage(会话存储)将统计数据存储在浏览器本地。但是,绝大多数用户统计数据、内容信息是存储在服务端的统计数据库中。
统计数据库的类型主要有关系型统计数据库和非关系型统计数据库。
关系型统计数据库是一种基于关系模型的统计数据库,此种关系模型是对现实中实体关系的抽象表达。非关系型统计数据库,在存储的统计数据结构上没有那么严格的约束和规范,以更为灵巧的形式表述统计数据存储。
常用的统计数据库管理系统(软件)包括:Oracle、MySQL、MongoDB等。
能这样理解统计数据库和统计数据库管理软件的关系,统计数据库是一个类似Excel文档的数据文档,里面包含很多的统计数据表,这些文档会放在web应用领域的根文档夹下,以便在运行流程时展开访问;统计数据库管理系统类似于Excel软件,能可视化的查阅并管理统计数据库文档。
在这里他们仅对关系型统计数据库展开传授。
2. 如何与统计数据库可视化
这里以python程式设计为例,传授服务端流程与统计数据库如何展开可视化。python的统计数据库API提供更多了一种操作统计数据库的标准机制,如下图(注意这并不是与统计数据库展开可视化的唯一形式)
以上流程翻译成python标识符是这样的:
3. 设计并建立统计数据库
关系型统计数据库是由一张张相互关联的统计数据表构成的,对统计数据库的设计也是设计统计数据表的结构和关联。他们现在来设计一个统计数据库,并采用python真正建立这个统计数据库。
现在他们设计了一个名为runningdata的统计数据库,里面包含两张统计数据表,一张表记录每个用户的基本信息(姓名和出生日期),另一张表记录每个用户的跑步时间统计数据。
两张统计数据表分别如下:
能看到,这两张表透过用户ID展开关联,此种表的结构和关联应该是具有逻辑意义、现实意义、业务导向、支持扩展的。
上面是对统计数据表的设计,那么如何透过python建立上面的统计数据表,并展开统计数据插入和查询等操作呢?
首先套用3他们采用第一个表生成的用户ID填充第二个表,使之关联起来),然后提交修改并关闭连接。
建立后的统计数据库一般长这个样子:
4. 将统计数据库集成到web应用领域
上面讲MVC(模型-视图-控制器)时他们提到,模型标识符用来存储并提供更多统计数据。所以,他们只需在模型(model)中编写上述标识符,让其帮助他们创建统计数据库,并表述有关的统计数据处理方法。这样在控制器标识符展开响应时就能初始化该方法,使之返回他们须要的统计数据。
5. 在商品工作中的应用领域
商品副经理对于统计数据库的设计形式、作用形式有一定的了解,有助于评估商品机能的实现对现有统计数据库的影响,和新的设计对原有统计数据的兼容性问题。
另一方面,现在的商品设计往往须要参考大量的用户行为统计数据,进行下一步优化。这些用户统计数据往往存储在统计数据库中,商品副经理有时须要采用SQL语句对统计数据库展开查询,因而对于统计数据库的了解也是大有帮助的。
写在后面
本文主要传授了三个方面的内容:
关于API的基本科学知识web应用领域的组织工作形式、开发模式统计数据库的简介、操作方法、应用领域形式透过这些内容简单介绍了服务端的基本科学知识,和与商品组织工作的联系。
我个人对于服务端控制技术的学习是透过《Head First Python》这两本书,因此写这篇该文,也算是抛砖引玉。前端的内容非常之庞大,我虽诚惶诚恐,还是大胆把自己有所感悟的写了下来,欢迎大家与我探讨或者批评指正。
这两篇该文传授了web应用领域开发所涉及的基本科学知识,希望大家看完之后有所收获,也建议商品副经理们去看一下控制技术有关的书籍,班莱班县写一个自己的应用领域,体会一下开发的过程,思考商品设计与控制技术实现的关系,思考商品副经理与开发人员的协作形式。
本文由 @lemon 原创正式发布于人人都是商品副经理。未经许可,禁止转载
题图来自Unsplash,基于CC0协议