首页 > 其他分享 >产品经理必懂得技术那点事儿——读书笔记

产品经理必懂得技术那点事儿——读书笔记

时间:2022-10-02 14:57:44浏览次数:46  
标签:控件 读书笔记 经理 用户 那点 懂得 产品 Android 数据

产品经理必懂得技术那点事儿

1.产品思维与技术思维

1.1.产品经理为什么要懂技术

当产品经理与工程师就某一个具体问题进行讨论时,双方站在各自角度就问题进行分析和讨论,固有知识结构的差异导致思维模式和角度的差异,工程师通常是路径推理的技术思维,产品经理通常是用户场景的产品思维。

image

产品思维侧重从用户和商业视角出发,技术思维侧重在技术实现和系统架构层面,两种思维方式也有交叉点,那就是产品的需求、设计和产品功能。

1.2.产品经理和工程师分别是干什么的

产品职能属于信息上游,负责发现并定义需求,将用户需求通过具体的产品功能设计呈现为用户可用的产品,包括需求分析、功能定义、原型设计等。

技术职能属于信息下游,负责从技术实现角度评估产品设计,设计技术方案,最终将产品设计实施落地为用户可用的产品。

image

产品设计包括了产品本身的功能和流程设计,同时也包括产品的交互和视觉设计。在大公司里,交互和视觉设计分工比较明确,职能更细。

研发版块是技术团队的主要构成部分,一般是人数最多的职能版块,研发分为前端开发和服务端开发,前端开发又可细分为Android开发、iOS开发、Web前端开发等,服务端开发可以细分为应用接口开发、数据库开发等。

测试是保证产品高质量上线发布的保障职能,测试具体可以细分为黑盒测试和白盒测试。

黑盒测试是指一般的功能性测试,测试人员会从用户视角对产品进行全方位多角度的使用,模拟岀各种可能出现的用户场景对产品进行全流程测试。白盒测试是比黑盒测试更进一步的测试,白盒测试会深入到代码层面进行测试,使用测试用例对某一代码模块进行测试,白盒测试对测试人员的要求更高。

测试用例是指测试时使用的一套严格的测试标准,测试用例覆盖越全,测试所覆盖的可能性问题就越全,更有利于遍历所有可能的问题。

运维是对系统进行持续稳定运转的保障职能,需要持续监控和优化系统的运行状态,比如对带宽的监控、对系统负载能力的监控和优化等。

1.3.产品设计中需要注意的技术边界

技术边界是指在现有技术水平之下,可以被实施运用的有限范围。

对于产品设计者来说,在设计产品时需要了解技术边界在哪儿,需要知道什么样的设计在今天能被满足,但同时也不要受制于技术边界,想象的空间无限大,在思考层面需要无边界。

同样一个产品功能,在不同的物理设备上,由于设备的技术标准限制,使得同一个产品功能在一些设备上可用,在一些设备上不可用。

作为产品经理,在设计某一个产品功能时,首先要判断在现有的技术边界下该产品功能是否可被实现,否则一个再好的功能,缺失了基本的土壤条件,也无法落地。

1.4.工程师的思考方式:“工程思维”

工程思维往往是理性的逻辑思维,从实现的难易程度和系统的角度去定义产品和设计产品。

1.5.入门产品经理的思考方式:“功能思维”

功能思维是从软件产品本身角度出发的思维模式,是从系统功能的角度来评判产品的完整性和实用性。

1.6.高阶产品经理的思考方式:“产品思维”

产品思维是一种结合工程思维、功能思维及商业思维的综合思维模式,包括对商业目标的理解、对目标用户及用户使用场景的理解。

产品思维其实可以大大简化产品工作,整个产品体系从下往上分为战略层、范围层、结构层、框架层和表现层。

image

战略层决定了业务和产品需要实现什么目标,为谁和什么场景服务;

范围层需要定义清楚在既有战略的基础上做哪些东西来实现战略目标;

结构层需要基于范围层的内容完成基础信息架构和交互设计;

框架层完成我们能看得到的界面设计;

表现层则是视觉表现设计,让产品看起来更友好;

此五个层面从上到下,重要程度依次增加,最重要的就是战略层,很多时候战略层的内容都是公司高层已经确定的,所以产品经理要做的就是理解战略,在理解战略的基础上挖掘符合战略的用户需求。

关于产品定位的问题,通常就是指战略层和范围层需要明确的,产品定位是否清晰直接决定了产品以什么样的形态呈现给用户使用。

本章小结

准确把握什么是工程思维,什么是功能思维,什么是产品思维,产品经理设计的是产品,但产品不仅仅只有功能,产品是业务的表现形式,抓住业务的本质并洞悉

用户,沉淀出关键功能的产品才是好产品。同时具备技术思维和产品思维的产品经理才是好产品经理。

2.互联网技术与产品

2.1.互联网技术发展史

image

2.2.互联网产品发展史

对应的产品形态也在持续演进,最初的计算机软件产品更多是用来解决某一领域的具体问题,比如开发一个软件系统来管理和控制生产,类似库存管理或者财务管理系统等。早期的计算机软件更多是以光盘的形式进行安装。

2.3.互联网开源社区和技术

互联网的基础技术大部分都是开源的,所谓开源,就是开放源代码,开源技术可以被任何人、任何组织以无偿的方式直接使用。

开源的代码仓库:GitHub;GitHub主要为软件项目提供项目托管和软件版本管理工作,GitHub被比喻为“程序员的维基百科”。

开源的操作系统:Linux;Android手机其底层系统使用的就是Linux,世界上很多超大型计算机使用的操作系统也是Linux。

开源的数据传输:OpenSSL;OpenSSL全称OpenSecureSocketsLayer,是一个开源且强大的安全套接字层密码库。

开源的数据存储:MySQL;MySQL是一个开源数据库管理系统,属于关系型数据库;MySQL的适用性非常广泛,为C、C++、Java,PHP等主流开发语言提供了使用接口,使基于任何技术语言开发的系统都可以使用MySQL作为数据库。

开源的网站容器:Apache;Apache为我们每天访问的网站提供着最基础的容器支持,是一款^务器运行软件系统;它可以运行在大多数计算机操作系统中,以其跨平台、快速、简单的特性被广泛使用,也是主流的Web服务端软件之一。

2.4.互联网产品技术构架

image

产品视角是从用户使用产品的场景出发,产品经理从产品视角设计产品功能,涵盖常规使用场景和异常使用场景。产品视角考虑问题并不会细化深入到每一个实现环节,而技术视角则会微观到每一个实现环节。

技术视角是从产品功能的实现步骤角度出发,实现某一个产品功能需要设计的实现步骤分别是什么,每一步又可以拆分成子步骤,粒度相对于产品视角更细,逻辑严谨性更强。

2.5.移动互联网技术的特点

内置在手机中的各种物理组件,像是重力传感器,GPS定位,NFC等等,都为移动互联网实现各种功能提供了可能性。

本章小结

在移动互联网时代,智能手机成为用户的主要入口,智能手机所带来的一些新的技术特性让很多产品创新成为可能,同时也催生出很多产品形态。移动互联网时代,产品经理的角色变得越来越重要.对技术的把握与运用成为新时代产品经理的必备技能之一。

3.产品经理学编程

3.1.产品经理为什么要学编程

编程语言是程序设计人员与计算机进行交互的指令集,在计算机中任何逻辑和表达都可以通过编程语言来实现,编程语言的种类有很多;

Linux系统基本是用C语言编写而成的;Android系统是由Java语言编写的;iOS操作系统使用的是Objective-C语言;各类编程语言也有相互搭配使用的案例,开发iOS也可以使用Swift语言。

3.2.主流编程语言介绍

每一位工程师都有自己擅长的语言,作为非技术产品经理,一定要能区分不同的编程语言,如果让一位只开发Android应用的工程师去改iOS应用的代码,或者让做客户端的同学去帮助服务端的同学开发,那会成为笑话的。当然,也有所谓的全栈工程师,精通多门技术,可以跨领域工作。

3.3.编程语言中的数据结构

数据类型是用来在计算机世界中区分和表达数据载体的规则,数据类型是一种对数据的约束,每一种数据都有一种且唯一一种数据类型,数据类型代表编程语言中的最基本规则。

整型是一种数字类型,所有的不带小数点的数字都属于整型,在编程语言中,用关键字int来表示整型。

字符型是一种文本类型,字符型的内容没有规则限制,可以是任意内容。在不同的编程语言中,表示字符型的关键字略有不同。

浮点型也是一种数字类型,与整数型相比,浮点型的数据都是带小数点的数据。在编程语言中,一般使用float或者double标记浮点型数据。

布尔型是一种特殊的数据类型,布尔型的数据只有两种值,即“true”和“false”。“true”对应的序号是1,“false”对应的序号是0。

在大部分编程语言中,都会有对应的工具来进行数据类型转换。

如果字符型数据不是数字而是其他字符,比如“a”,这时将字符型转换为整型的话,得到的结果是"a"在ASCII中对应的具体数值,实际上就是字母“a”对应的二进制代码,也就是一串由0和1组成的代码。

ASCII(AmericanStandardCodeforInformationInterchange,美国标准信息交换代码,是基于字母的一套编码系统)

3.4.编程语言中的逻辑结构

条件判断“ifelse”

条件选择"switchcase"

循环操作"while/dowhile"

wherethefor?

3.5.数据的组织方式:数据结构

数据结构是计算机存储和组织数据的一种方式,是按一定规则进行组织的数据的集合。

数据结构分为数组队列等,每种数据结构都代表一种数据集合组织的方式,每种方式都有各自的特点。

数组:同一数据类型的集合

数组是指具有相同数据类型的数据元素组成的集合。数组可以指定大小,而且数组里的元素可以通过数组下标标记和获取。

数组是在程序设计中使用比较多的一种数据结构,数组的应用范围很广,而且相对来说是一种最简单的数据结构。

栈:汉诺塔结构

例如我们设计一个层级页面,从页面A进入B再进入C,此时如果需要返回A的话,我们在界面上执行返回操作,首先会返回到B,继续返回则回退到A,这就是一种典型的栈的设计思路。

栈又可以叫作堆栈,是一种满足一定规则的数据结构,这种规则通常叫作“后进先出”。

队列:排队的艺术

队列在结构上分为队头和队尾,只能在队头执行岀队操作,在队尾执行入队操作。

例如一件事务包括几个步骤,而且这几个步骤有严格的先后顺序,即必须先完成前面的步骤才能进行后面的步骤。当遇到这种情况时,我们就可以考虑使用队列。队列可以保证一个操作的原子性和顺序性,所以在处理一些事务性的操作时常用到队列结构。

树:长在树上的数据

树状结构上的元素往往叫作一个节点。每个树状结构都有一个“根节点”,也就是树根,从树根岀发可以延伸出“枝干节点”或者叫“兄弟节点”,树状结构末端的节点我们称为“叶子节点”。

3.6.什么是程序

程序是指按照一定的规则和顺序的任务执行过程,是一套指令集合,在软件开发中,程序由数据结构和算法组成。

程序=数据结构+算法

3.7.程序的最小执行体

程序的最小执行单元我们称为函数或者方法,函数是完成一项具体任务的独立模块,函数的组成包括输入、输出及函数内部的处理流程。

本章小结

编程语言中,通过程序的逻辑结构来表达具体的业务流程;通过常用的数据结构组合数据;通过函数实现最小执行单元,由这些最小执行单元组合成庞大复杂的程
序,构成系统,最终体现为我们所使用的产品功能。

4.产品经理学数据库

4.1.产品经理为什么要学数据库

了解数据库后,我们就可以知道数据以何种方式进行存储,如果要对产品功能进行调整,就可以先从数据的角度岀发来思考应该如何调整数据模型。例如,在用户注册功能环节新增几个用户基本信息,只需要在用户模型中新增几个数据项。如果新增的数据项需要与其他模型产生关联关系,就需要添加这种关联关系。

数据库运行在服务器中,类似于一个进行数据存储的仓库,数据按照一定的规则存储,可以对数据库中的数据进行增删改查的操作。

4.2.关系型数据库

关系型数据库是一种基于关系模型的数据库,关系模型折射现实世界中的实体关系,将现实世界中各种实体及实体之间的关系通过关系模型表达出来。这种关系可以是一对一的,也可以是一对多或者多对多的。

在关系型数据库中可以通过数据库表和表之间的关系来具象表示这种模型,表就是我们常用的二维表格,有表的名字,表的各项标题名。

数据库操作语言(SQL)

SQL(StructuredQueryLanguage)即结构化查询语言,是一种用来操作关系型数据库的编程语言,可以理解为对数据库的操作命令。

SQL是一种非常灵活的数据库操作语言,可以进行非常复杂的数据库操作,它能做到的远远不止上文提到的内容,基本可以满足我们对数据库的一切操作。

4.3.非关系型数据库

非关系型数据库是一种相对松散且可以不按照严格的结构规范进行存储的数据库。非关系型数据库一般叫作NoSQL(NotOnlySQL),非关系型数据库没有关系型数据库那样严格的数据结构约束,在存储的形式和使用上有别于关系型数据库。

在非关系型数据库MongoDB中,我们使用键值对的方式表示和存储数据。我们也可以叫这种结构为JSON结构,基于这个结构我们可以无限扩展其他的键值对,而且键值对可以进行嵌套,通过这种嵌套的方式可以很灵活地扩展数据表示,数据存储方式也更灵活。

非关系型数据库适合应用在一些对存取要求比较高且并发处理比较高的场合,例如对网站访问数据的统计。

5.产品经理学客户端技术

5.1.产品经理为什么要学客户端技术

在pc互联网时代,客户端主要是Web网页;在移动互联网时代,客户端主要是以智能手机为载体的移动APP产品。在设计客户端产品时,如果对客户端技术有一定了解,能大大提高产品经理设计客户端产品的效率。

客户端是指普通用户使用的终端,用户通过客户端接触并使用产品。

Android系统

Android系统基于Linux开发,主要运行在智能手机或平板电脑上。

由于其开源的特性,很多厂商也基于Android系统进行了深度定制,例如小米推岀的MIUI系统就是一款基于Android系统进行深度定制的操作系统。

Android的应用范围非常广泛,扩展性也很强。从开发角度看,它基于成熟的Linux开发而来,在应用开发层使用主流的Java语言进行开发。

iOS系统

iOS系统是一个闭源系统,好处是保证了系统的统一性,规避了各类厂商的深度定制带来的差异性,为苹果移动设备独大。

Web网页

Web技术通常是指由HTML、CSS及一些动态交互技术(例如JavaScript等)组成的Web前端技术。

5.2.Android基础技术及基本控件

Android应用使用Java作为开发语言,开发工具可以使用常用的Java开发工具eclipse或者IDEA,也可以使用谷歌推出的AndroidStudio

Android应用产品都由许多个具体的界面构成的,每个界面上由各种按钮、输入框、文本框、列表,以及一些操作对象构成,这些元素组合在一起为我们提供了产品使用的交互介质,这些元素在技术上称为“控件”。

有关单位——像素

设备像素(物理像素)

1个设备像素就代表1个真实的像素点,是设备能控制显示的最小单位,我们常说的1920×1080像素分辨率就是用的设备像素单位。

设备独立像素(逻辑像素)

(DeviceIndependentPixel)。与设备无关的逻辑像素,代表可以通过程序控制使用的虚拟像素,是一个总体概念,包括了CSS像素。

image-20220929113544666

显示器分辨率所能达到的最高就是1920×1080,购买屏幕时所说的分辨率就是设备像素,也就是屏幕上真正拥有的物理像素点。而之后可以选择的选项(包括1920×1080)当前选择的像素都是设备独立像素。在不同的设备独立像素下如果布局仍旧按照物理像素来展示就会错乱。

View

View是视图的意思,表示在屏幕上展示的一个可视化控件,是Android所有控件的根。也就是说,所有Android控件都是基于View扩展来的,可以把View理解成所有系统控件的祖先,其他(例如,按钮Button和文本展示框TextView)都是继承自View,在具备View的一些基本属性的同时还扩展了属于自己的属性。

Button

Button是按钮控件,外观可自定义设置,用于触发点击事件。

TextViewz

在Android中我们使用TextView代表文本展示框,文本展示框就是我们在产品里看到的展示文字的部分。

EditText

EditText是文本输入框,也就是我们在产品中输入内容的控件。EditText的基本属性和文本展示框TextView基本类似,唯一不同的地方就是它可以进行内容输入,而且对于输入的内容可以进行类型控制。

可以设置为明文或者密文,也就是是否可见;也可以设置输入的数据类型,只可以为数字或者字母等等。

ImageView

ImageView是图片展示控件,我们使用ImageView作为图片载体来体现。

ListView

ListView在Android系统中是列表控件。在Android系统中,ListView是一种容器型控件,可以在它里面放其他的控件,放入其中的便是模板。(类似于vue中的v-for)在产品设计中,ListView也是使用频率非常高的系统控件.ListView的外观和其他控件一样可以进行自定义控制,扩展性很强。

例如淘宝app中的商品列表(会展示商品缩略图和基本信息)以及微信的联系人页面(显示联系人头像和备注昵称)。

GridView

GridView和ListView类似,也是一种容器控件,区别在于ListView以列表方式展示,而GridView是以表格的方式展示。如果我们需要实现多行多列的展示,就可以使用GridView。

例如支付宝中和各类购物app首页中的快捷入口

image-20220929150156415

5.3.Android界面布局原理

线性布局

线性布局简单说就是按照顺序从左至右或者从上到下依次在界面上排列控件,线性布局支持横向和纵向两种方式。

相对布局

相对布局就是指定控件与其他控件的相对位置,所谓相对位置就是以某一控件为参考基准,与其他控件的空间位置。

或许还会有衍生出来的各种布局,可自行了解使用。

5.4.Android系统的权限控制

Android系统有专门的权限管理机制,应用访问用户隐私或者获取一些系统权限时,需要取得用户的授权后才能使用。

Android权限控制实际上是对用户授权的一种后向保证,通过权限控制,在开发阶段技术人员若需要通过产品使用某一项系统功能,需要在权限控制列表中登记,若没有登记,则系统会报错。一般的软件设计都会有相应的权限控制,常见的超级管理员和普通用户角色设置实际上就是一种权限控制。

5.5.Android应用打包及发布

通常Android应用会被打包成为.apk类的文件,APK即为AndroidPacket。由于各种应用市场鱼龙混杂,我们在打包安装文件时,需要使用一个特殊的签名文件为这个安装包文件进行签名,目的是保证这个应用安装包的唯一性和安全性。

在发布Android应用时,我们需要标记当前所发布版本的版本号,比如V1.0可以对应为1,VI.1对应为2,每次更新版本这个自然数版本都会增加,这样就可以区分市场上的新老版本。

5.6.Android多屏幕适应

由于各个安卓手机厂商的深度定制,Android手机屏幕尺寸多样化,为了解决界面适配的问题,Android提供了一种使用可拉伸图片作为界面素材的解决方案,这种图片是以扩展名“9png”结尾的图像文件,通常叫作“点九图”。

9.png格式的图片是安卓平台上新创的一种被拉伸却不失真的玩意。9png图片一般用在需要拉伸的地方,比如聊天程序的对话框,字数不同,对话框的大小也不同。之所以叫9是因为图片被分割为9个部分。9.png格式图片会比原来的图片向外拓展1像素,上下左右各有一条线,他们的作用不相同。

右边和下边:决定了你中间content区域的大小,比如对话框中的文字区域的大小。

上边和左边:决定了图片横向拉伸(上边),和纵向拉伸(左边)使用哪一块。程序会自动复制这一块区域,用来填充被拉伸后的图片。

5.7.iOS基础技术及基本控件

iOS系统由美国苹果公司开发,使用Objective-C语言进行开发,现在也可以使用苹果研发的Swift语言进行开发,开发iOS应用使用由苹果公司推出的开发工具Xcode,而且只能在苹果系统中进行开发。

与Android系统不同的是,iOS是一个闭源系统(也就是不开放源代码的系统),该系统只能由苹果公司在自家的移动设备上使用。

UlView

UlView在iOS系统中是一个通过坐标和长宽表示的矩形图形,我们可以指定UlView的背景颜色或者矩形的圆角。与Android系统不同的是,在iOS系统中可以实现UlView的相互嵌套,也就是说我们可以在UlView里再放一个UlView,但在Android系统中,我们就不能在TextView里再放一个TextView,这是二者的差异。

在iOS系统中每一个控件在屏幕中都通过坐标轴定位具体位置,但这个坐标轴的范围不是根据物理分辨率的像素点去标记,而是通过逻辑像素去标记,所谓逻辑像素就是不管屏幕尺寸,只需要按照固定的逻辑像素定位坐标轴中控件的位置。

UlButton

在iOS系统中使用UIButton表示按钮控件,与Android系统中的按钮Button类似,只是叫法不一样,基本属性基本类似。

iOS中的UIButton与Android系统中的Button的不同之处在于在UIButton中可以嵌套其他控件。

UILabel

在iOS中使用UILabel表示文本展示控件,和Android中的TextView类似。

UlTextField

UITextField在iOS系统中是文本输入框控件,对应于Android系统中的EditText,都是用来进行文本输入的系统控件。

Android系统中的EditText通过"hint"这个属性来表示文本提示信息,在iOS中UITextField就叫作"placeholder"。

UlImageView

在iOS系统中使用UllmageView作为图片展示的基础控件,对应于Android系统中的ImageView,基本属性基本一致。

在iOS系统中,UllmageView可以对图片进行展示和一些基本处理,例如对图片进行圆角处理,可以使用系统的一些滤镜功能对图片进行特殊处理。

UlTableView

UITableView和Android系统中的ListView类似,用来表示列表型控件,也是一种容器类控件,基本原理和ListView一样。

UlCollectionView

UlCollectionView是iOS系统中进行表格展示的控件,和Android系统中的GridView类似,iPhone的系统相册就是使用UlCollectionView实现的。

5.8.iOS界面布局原理

iOS界面布局与Android不同,iOS使用的是绝对布局,也就是说,每一个控件在界面上是通过指定控件的绝对位置进行显示的。

随着iOS设备尺寸的多样化,iOS开发也逐渐面临界面适配的问题,为了适应多屏幕适配,苹果在技术上也推出了类似Android布局方式的相对布局,通过响应式布局来调节界面控件的显示方式。

5.9.iOS系统权限控制

iOS系统授权的控制方式也与Android不同,Android授权是发生在应用安装阶段,当用户安装Android应用时会提示用户同意相关权限协议才能进行安装,而iOS的授权则是发生在用户使用产品的过程中。

5.10.iOS应用打包及发布

iOS应用打包是通过苹果推岀的开发工具Xcode完成的,打包完成后,可以进行几种类型的发布。

5.11.Web基础技术知识

通过浏览器访问的网页通常被称为Web页,每一个Web页都有一个唯一的地址,不同的地址组合在一起,通过链接相互跳转,最终形成一个网站系统。

HTML(HyperTextMarkupLanguage)全称超文本标记语言,超文本的意思是它所能表现的内容不仅仅是文本,还可以是图片、链接、音乐等非文字元素,标记语
言是对HTML特性的一种描述,HTML语言的语法结构是通过一个个的标签来标记体现的。

CSS(CascadingStyleSheets)全称层叠样式表,是一种将网页内容与网页样式分离的技术。简单地说,CSS是给只有内容的HTML页面穿衣服,让HTML页面好看起来。

URL(UniformResourceLocator)的全称是统一资源定位符.互联网上所有的资源都有一个唯一的URL地址,资源的类型可以是一个网页、一张图片、一首歌曲或
者一段视频。

HTTP协议(HypertextTransferProtocol)全称超文本传输协议,是互联网的基本协议。字面意思是通过该协议我们可以在互联网上传递除了文字以外的其他内容,例如网页、音乐、图片等。

移动APP的实现有两种形态,一种是通过Web的方式实现,也就是在APP内部通过加载Web网页的方式实现产品功能。另一种是Native或者叫原生的方式实现,这种方式是使用移动平台原生的控件开发而成。现在有很多产品是使用Web和Native混合实现的方式,混合实现是指在一个原生APP产品中嵌套一部分Web实现。

本章小结

产品经理在日常工作中会经常接触到技术相关的内容,可能是需求评审中工程师提到的问题,也可能是产品遇到一个BUG时讨论解决方案。遇到这些问题时,非技术型产品经理不能不懂装懂,在考虑产品设计方案或者与工程师的沟通中,要能站在产品和技术两个角度思考,在保证产品目标和用户体验的前提下,与工程师一起商讨行之有效的解决问题的方法。

6.产品经理学服务端技术

6.1.产品经理为什么要学服务端技术

产品经理在设计产品时,虽然设计的更多的是客户端产品,但是两个客户端之间的信息互动和数据传输却是通过服务端完成的,服务端起到了中间核心处理者的
作用,它负责处理复杂的业务逻辑并对数据进行存储管理。

常用的服务端开发语言有PHP和 Java等,还有以Python语言为主的服务端技术和以C#语言 为主的ASP.NET等多种服务端技术。

在服务端处理请求的部分,可以通过不同的技术选型实现,针对不同的产品或系统类型,往往会选择对应各自特点的技术选型。

对平台安全性和支持性较强的产品或系统来说,JavaEE企业级开发平台就是一种比较好的选择;

一些轻量级产品或系统,要求快速迭代和快速发布,就可以选择例如PHP或者Node.js这样的服务端技术

6.2.服务端的基本构架

服务端通常被叫作云端,也就是我们所说的云服务器,云服务器是指物理机房是托管在第三方,而不用自建机房。

每个机房都由应用服务器、数据库服务器、交换机' 网络端口和外网光缆构成。

负载均衡服务器是用来处理大规模请求的服务器,通常对于一些访问量比较高的系统来说,负载均衡就显得尤为重要,负载均衡服务器的作用是将同时进来的大量访问请求根据应用服务器的忙碌程度进行动态调度,可以把负载均衡服务器理解成服务端的调度中心,它负责流量的动态分配,根据对应的应用服务器的负载情况,动态分配请求到不同的应用服务器。

6.3.数据接口及结构

数据接口是指客户端与服务端进行数据传输和交互的数据协议,数据接口是一种数据交换的标准。

在实际应用中有两种常用的数据接口的结构,分别是JSON和 XML。

SON ( JavaScript Object Notation ) 是一种轻量级的数据交换格式,也是一种用 来表示数据接口结构的形式。其内部利用键值对进行存储数据,键值对之间可进行嵌套。

XML ( Extensible Markup Language ) 的全称是可扩展标记语言,与JSON 一样,XML也是一种数据交换格式,它也可以用来进行简单的结构化文本数据的存储。XML的结构可以进行自定义,XML的基本元素是由一个一个的标签构成,每一个标签都由标签头和标签尾构成,内容放在标签头尾之间。XML的标签元素之间也可以进行嵌套。

6.4.服务端与客户端的交互模型

image-20220929164435619

这个模型叫作请求响应(Request-Response)模型,这是互联网技术产品实现 信息交互的一种数据交换模型,通过这个模型主要完成信息的发送、处理和响应。

6.5.服务端部署及运维

服务器上线即为把我们开发完成的系统部署到公网服务器上。

产品开发完成后,测试也通过了,产品经理就会申请上线,这时产品经理需要做的事情就是确保客户端代码已经更新到最新状态并且已经打包就绪,同时确保服务端代码已经更新到最新状态并且已经处于可部署状态。

6.6.云服务器

产品完成开发时,需要部署到服务器上运行,然后通过公网提供给用户使用。传统做法是购买服务器,准备好交换机和网线并开通带宽,甚至还需要一些制冷措施和备用电源,还需要有运维人员在机房待命。云服务器是一个中央机房,由云服务商提供服务,使用方按照使用情况付费。

7.产品经理学数据

7.1.什么是数据

互联网里的数据是指我们在使用互联网产品时发生的行为所沉淀下来的结果。像是我们的浏览记录、购物记录、消费记录、聊天内容、发布内容等都属于互联网里的数据。这些数据可以被用来进行分析,进行预测……

数据是互联网时代最重要的资产,尤其是对于互联网公司。

7.2.数据分类及数据分析

大致来说,在互联网上产生的数据主要分结构化数据和非结构化数据两类。简单地说,结构化数据就是按照固定的格式和结构存储的数据,好比我们按照格子一个个存放数据;非结构化数据是对一些零散型数据的集中管理,好比我们在一个格子里放上很多零散的东西。

结构化数据

结构化数据是按照一定的数据规则存储的数据,像是电商app上会依据商品类别和属性对商品进行分类,这样更加便于管理。

结构化数据能大大提高数据存储的规范性和可分析能力,我们平时所说的大数据其实有很大一部分都是结构化数据.互联网中存储了大量的结构化数据,将现实世界的知识、内容、业务都沉淀在了数据库中。

非结构化数据

非结构化数据大多数都是一些零散的、没有一定规律的数据。像是我们的浏览记录以及操作日志等等,图片、视频、音频等数据都属于非结构化数据。与结构化数据相比,非结构化数据的采集和分析也要更复杂一些,非结构化数据的数据量同时也要大很多。

7.3.数据指标

数据指标是指产品在各个方面所记录和统计出来的数据结果,是对过去进行回顾和对未来进行预测的参考标准。

转化率指标是反映一个产品功能的实际效果的数据指标,数据指标是公司业务和产品健康情况的监测表,基于这些数据指标进行分析,可以得出很多指导性的建议和下一步的调整方案。

7.3.1.UV/PV

UV (Unique Visitor)是网站独立访客和独立用户的意思,指访问某个网站的独立IP的数量,通常计算的周期是当天的0点到24点。UV可以反映出用户活跃度,也可以反映出在某一个固定周期内用户使用产品的情况。

PV (Page View)通常是指网站的页面访问量,和 UV不同的是,PV统计的是用户打开网站的次数。对于同一台计算机的同一个用户,在一天的时间内多次重复访
问了网站,那PV数就是该用户当天实际访问该网站的次数。

7.3.2.DAU/MAU

DAU (Daily Active U ser)是指日活跃用户,记录一天内独立用户登录或使用产 品的次数。日活跃用户数通常可以反映网站或者APP在一天内的用户活跃情况,DAU越高说明产品的活跃用户越多,使用产品的人也就越多。

MAU( Monthly Active User)是指月活跃用户,记录在一个自然月内用户的活跃度情况,MAU相比DAU是一个更宏观的指标。

7.3.3GMV

GMV (Gross Merchandise Volume)全称为商品交易总额,是一种反映平台交易总量的数据指标。

7.3.4.转化率/留存率

转化率是统计一个大范围的运营活动或者产品动作转化出有效用户的比例。转化率越高说明活动的效果越好,投入产出比越高。转化率通常衡量的
是投入产出比,低投入、高转化是所有产品和运营追求的目标。

留存率是指用户进入产品后,在一定的周期过后留存在产品中的用户数量。

7.4.数据仓库

数据仓库(Data Warehouse)可简写为DW ,是一种对历史数据进行存储和分析的数据系统,通常是为企业根据过往数据进行分析从而制定相关决策而存在的。

7.5.数据可视化

数据可视化是指通过不同的视觉呈现方式,将数字数据通过生动形象的方式呈现出来,使数据查看者能以一种更直观方便的方式查看数据。数据可视化是对数据分析结果的展示,通过数据可视化能给决策者提供更直观生动的数据决策支持。

7.6.数据驱动下的产品与业务

数据驱动产品和业务的调整的前提是数据的采集,数据采集的方法有很多种,现在也有很多第三方公司提供数据采集和分析的服务。

在大数据时代,数据是真正有价值的资产,掌握了数据就掌握了未来,数据所能产生的价值远远超岀我们的预期,对现在的很多产品和公司来说,掌握数据入口并拥有采集数据的能力就拥有话语权,真正利用数据驱动产品和业务也能在未来产生极大的商业价值。

8.产品经理如何写一份高质量的PRD

8.1.PRD的基本结构

PRD (Product Requirement Document,产品需求文档)由产品经理负责撰写。 产品需求文档是产品经理用来与技术人员或其他相关人员进行信息传递和沟通的工
具。PRD起到的是沉淀结论并且辅助沟通的作用。

一份完整的PRD至少应该包括三部分,分别是变更日志需求描述功能设计

8.1.1.变更日志

变更日志即PRD的版本及变更记录;

产品需求面临时刻变化的情况,而这种变化如果不通过文档的形式记录,就可能出现由于被遗忘或者工程师理解偏差导致需求实现出现偏差。

避免这种情况的最好方式就是将变化记录在PRD里,并标记上变更时间、原因及变更人等。

image-20220929203719065

8.1.2.需求描述

需求描述是用来介绍产品功能所满足的业务需求和用户需求的,如果产品经理在设计产品时不知道产品功能满足了什么需求,那么这个功能就很有可能成为一个无用,功能。若无必要,勿增实体。

业务需求是指该产品功能在业务开展中所扮演的角色,像是收藏功能能够明白用户更喜欢哪类产品。

用户需求是指该产品功能在用户的使用场景中为用户解决了什么问题,用户通过这个功能能完成什么用户任务。像是搜索记录就是为了解决每次用户都要耗时间搜索的问题。

8.1.3.功能设计

产品功能设计是PRD里重要的组成部分,PRD的主要目的是沉淀记录每一个产品功能的设计思路和产品规则。产品功能设计包括产品业务流程、功能信息结构、产品原型及交互逻辑、产品视觉设计

8.2.基于目标读者写作

PRD是产品经理与相关人沟通和传递信息的主要辅助产物,PRD的目标读者有工程师、测试人员、其他产品经理、业务市场人员甚至是老板,通常PRD的主要读者是工程师,所以以目标读者的视角去写PRD能够事半功倍。

基于目标读者的写作不仅仅是把事情说清楚,而且要说明为什么,也就是说在PRD中的需求描述里要写明本次变化的原因,是基于产品战略考虑还是观测数据后得出的结论,或者是用户反馈得出的结论。

8.3.PRD里的产品逻辑

在PRD里有一块很重要的内容就是产品逻辑,产品逻辑更多的是指功能模块内部及功能模块之间的相关逻辑,模块划分越清晰的产品,之间交错的逻辑就越少。

功能逻辑通常是指产品功能的内部逻辑,像是产品登录功能包含的密码是否正确,账号错误提示以及登陆成功后获取用户的各种信息都要在PRD中标注清楚。

8.4.PRD里的技术规则

PRD里的技术规则是指在PRD里通过技术化的语言来标注的相关内容,把一些技术规则写在PRD里面能提升PRD的专业性,也更易于让工程师理解。

8.5.常用的PRD写作工具介绍

例如产品经理常用的Axure和 Sketch,使用这两种工具都能非常快速而且直观地 制作产品原型和交互图,同时也可以在原型上标注产品功能逻辑和交互逻辑。

5.6.沟通胜过文档

产品需求文档是传递产品设计意图的载体,应该说,产品需求文档是结果,是对产品设计沟通结果的沉淀。沟通永远是产品经理需要不断学习和提高的技能,好的产品经理肯定是个会讲故事,而且能站在不同角度讲故事的人。

沟通胜过文档,沟通才是产品经理需要掌握的核心技能之一。

本章小结

9.如何与工程师正确沟通

9.1.工程师是一个什么样的群体

工程师是知识型脑力工作者

工程师的思维方式是一种线性而且逻辑性比较强的方式,考虑问题或者做出行动时往往会按照严密的顺序和逻辑进行,他们认为一件事情肯定是按照固定的流程执行,不喜欢中间突然变化或者出错,因为这会使他们感到沮丧。

9.2.如何向工程师阐述产品需求

在表达方式上,尽可能采用第三方讲述法。所谓第三方讲述法就是站在一个公立的立场上,不要把自己的感情色彩带进去,因为人在主观上都只认可自己的观点,如果总是被要求接受别人的观点,就会让人感觉不舒服。

9.3.如何从产品角度参与技术讨论

产品经理参与针对需求的技术讨论,不能以一个技术人员的视角来要求自己,而应该站在产品的角度,以产品经理的角色参与到技术讨论。

产品经理要想参与技术讨论,首先要做的就是思考每一个设计背后的原因,只有知道了原因,才能真正参与到工程师的技术讨论中,在讨论中维护产品的完整性,然后学习并了解产品的技术实现细节,等下次再针对这个需求做优化或者升级时,产品经理也能做到心中有数,做到真正知其然并知其所以然。

形象化提问就是产品经理利用自己同理心优势,将自己不了解的技术问题通过一种比较形象化的方式描述出来,以提问的方式让工程师帮忙解答,这样既能合理地表达出问题,也能得到工程师的帮助。

ep:“咱们现在讨论的是不是这个功能的数据结构设计,那么数据结构是不是可以理解为这个功能的数据字典,咱们要讨论的就是这个字典里需要包含什么词,并且给这些词起什么名字,是吗?”

9.4.产品需求变动时的沟通方法

做产品的过程中无一例外避免不了需求的变化,所谓唯一不变的就是变化,在产品的演化过程中,用户需求和商业目标都在时刻发生着变化,如果不拥抱变化,就有可能被淘汰。

产品经理作为变化的驱动者,需要把握产品变化的原则和如何去驱动变化,驱动变化的过程中需要做好的第一步是变化前的沟通。人的本能都是拒绝变化的,面对拒绝变化,产品经理首先应当从事情的本质层面进行探究。

9.5.非技术背景产品经理的沟通技巧

沟通最重要的是把自己想讲的事情表达清楚,产品经理位于信息上游,是信息输出方,将事情以对方能够理解的方式讲清楚是沟通的开始。

较为推荐的沟通模型:先把事情大概概括一下,表达本次沟通的核心观点;其次根据参与方对于观点的理解和反馈情况,确保双方理解一致;然后不断进行信息输出然后重复和确认,保证信息是有效而且是正确传递的。

“这个需求做不了!”

  1. 这个产品需求在现有技术条件下是否可以实现,是不是存在技术边界?是则寻求新的产品解决方案,不是的话——
  2. 那做不了的原因是否是因为我们目前不具备这样的技术?是就需要寻找技术替代方案,不是的话——
  3. 是因为开发进度和时间导致做不了吗?如果是,产品经理就需要衡量这个产品需求的用户价值和业务价值,也就是说这个产品需求的满足是否会为用户解决棘手问题,是否能在业务上带来增长。如果能满足这两个条件中的一个,哪怕调整下开发进度延长时间也是可以接受的。

“这个不是BUG”

产品经理和工程师对于BUG的认定经常会不相同。产品经理对于产品上影响用户使用的问题在工程师看来是不影响使用的,这个问题需要在PRD中对这个功能进行更加详细的设计。

在工程师的世界里,BUG 是一种贬义词,是因为代码或者逻辑出错而导致的功能性错误,要认识清楚不要乱说。

本章小结

对于变化中的产品,产品经理需要掌握面对变化时如何沟通产品需求.化解变化是产品经理推动事情往前发展的前提,拥抱变化并且将变化的内因传递出去,通过自身对产品的理解将这种理解传递给更多人,形成共同目的下的利益共同体。

10.产品经理的自我修养

10.1.三种类型的产品经理

10.1.1.用户体验型产品经理

用户体验型产品经理主要是为产品的用户体验负责,什么是用户体验呢?简单说就是用户在使用产品的过程中形成的对产品本身的主观感受。用户体验包括了产品功能体验、视觉体验和信息体验。

专注于用户体验设计的产品经理首先得具备非常强的同理心,得理解目标用户的心理,甚至得成为产品的用户才能真正设计出好的产品。

最小化可行产品意思是构建一个能基本满足需求的产品,去掉多余的细枝末节,只保留主干功能,快速投入市场让用户开始使用,然后收集和整理用户在使用过程中出现的问题,经过分析后基于这些问题提出解决方案,再将这个解决方案应用到产品改进中,然后再次投入市场开始循环。

10.1.2.业务型产品经理

业务型产品经理的主要工作内容是围绕业务流程和业务动作的设计,业务型产品经理不直接设计产品功能。

做业务型产品经理需要具备宏观思维,因为业务型产品经理把控和设计的是整个产品的流程,具体到业务流程中的每个角色的动作,以及每个业务节点之间是如何衔接和配合的。

10.1.3.数据型产品经理

顾名思义,数据型产品经理是专注数据的产品经理,这里既包括了数据采集和数据分析,也包括了基于数据分析结果进行产品改进和决策的过程。

在选择产品优化方案时,对于拿不准的两个方案,通常会采用A/B测试的方式,所谓A/B测试就是同时将两个方案投放市场,然后设置数据指标。

数据型产品经理就好比产品的健康诊断师,需要随时关注产品的数据反馈,通过检测数据变化对产品进行灵活调整。

10.2.懂技术不如懂产品

10.3.产品是技术与艺术的结合

10.4.如何跨越产品经理初级阶段

10.5.产品经理如何驱动技术团队

10.6.成为产品领导者

本章小结

11.产品经理工作中会遇到的问题及解决方法

11.1.解决问题前先定位问题

11.2.产品经理工作中遇到的问题

11.3.“聚焦答案”而非“聚焦问题”

11.4.一个可能的解决问题模型

11.5.从问题和答案中获取洞察力

本章小结

标签:控件,读书笔记,经理,用户,那点,懂得,产品,Android,数据
From: https://www.cnblogs.com/Pilo-pillow/p/16748756.html

相关文章

  • 9月《代码大全2中文版》读书笔记
         本月,在王老师的推荐下,我进行了对美国的史蒂夫·麦克奈尔先生编著的《代码大全2中文版》这本书的学习工作。本次学习让我受益匪浅,以下是我个人的一些所思所想......
  • 读书笔记1
    读书笔记1程序员所应该遵循的实用主义原则。我的源码让猫给吃了:出现错误时,要诚实,不要推诿或者找借口。要提供各种可能的解决方案与后果并与他人沟通,而不是提供借口。软......
  • 读书笔记2
    程序需要遵守的实用主义原则。重复的危害:如果某个事物在代码中重复多次,就可能会在维护过程中带来问题,因为改动了一处而忘记改动另一处造成自相矛盾。这加大了维护难度。要......
  • 《程序员修炼之道:从小工到专家》读书笔记2
    除了是程序员,AndyHunt还是一位木匠和音乐家,你LD将v到h与这样的背景粕关单引擎飞机。尽管作者未曾明言,在本书的许多地方、你都将看到与这样的背景相关的叙述。我想,对于两位......
  • 九月读书笔记《程序员修炼之道——从小工到专家》
        本月,在王老师的推荐下,我进行了对美国的安德鲁·亨特和大卫·托马斯编著的《程序员修炼之道——从小工到专家》这本书的学习工作。本次学习让我受益匪浅,以下是我......
  • 《程序员修炼之道:从小工到专家》读书笔记1
    本书原名“ThePragmaticProgrammer”.也就是“注重实效的程序员”。正如书名所示.本书将围绕“注重实效”讲述关于编程的各种话题:个人责任、曳光弹开发、调试策略、元程......
  • 读书笔记1
    就同我在上篇读书笔记中说的那样,这本书中的一些方法和思想,需要我们在之后的编程学习过程中一点一点的参悟和领会。比如说从我的第一次个人作业中,我对书中提到的曳光弹代码......
  • 读书笔记2
    最近阅读了《程序员的修炼之道:从小工到专家》第四章:“注重实效的偏执”,再结合上周一的期中考试,让我感触颇深。本章开始先讲述了“按合约设计”,大该讲的是与计算机打交......
  • 程序员的修炼之道:读书笔记2
    在做软件的时候,我们需要看看我们做的对象是谁,这样来看看我们所作的软件的第一代是什么质量的,。如果,我们的工作对象是心脏起搏器,航天飞机等,我们需要将我们的软件做的很好,但......
  • [读书笔记]FDTD与YEE晶胞
    截图选自UnderstandingtheFinite-DifferenceTime-Domain Metho 作者是JohnB.Schneider有限差分时域(FDTD)方法使用有限差分作为麦克斯韦方程组(特别是安培定律和法拉......