读书笔记 | 产品经理必懂的技术那点事儿 2

以下文章选自《lynn真的不是咸鱼》
 
最近在写论文,没怎么看书。今天接着上次的读书笔记往后写,是《产品经理必懂的技术那点事儿:成为全栈产品经理》第3章和第4章的内容。
 
第3章/
 
产品经理学编程
 
编程语言是程序设计人员与计算机进行交互的指令集, 在计算机中任何逻辑和表达都可以通过编程语言来实现。
 
1、主流编程语言
 
C语言
 
Java:具有跨平台、通用性和安全性等特性。Java是一门面向对象的语言,相对于C语言等面向过程的语言来说,Java的灵活性更高。
 
PHP:主要运用于Web开发。PHP是一种开源脚本语言,脚本语言通常以文本形式被保存,只有在调用时进行解释和编译,相对于C语言或者Java语言来说,PHP更轻量化而且更灵活。
 
JavaScript:运用于Web开发,是一种脚本开发语言,主要运行在浏览器中,可以为网页增加动态功能。
 
2、编程语言中的数据类型
 
数据类型是用来在计算机世界中区分和表达数据载体的规则。“数据”是计算机世界中的基本单元,一个基本的数据单元主要由几部分构成,分别是数据类型、数据名称和数据值。数据的名称也叫变量名,每一个变量都有对应的数据值。
 
整型:int,表示整数。
 
字符型:是一种文本类型,字符型的内容没有规则限制,可以是任意内容。在Java语言中,使用关键字String表示字符型数据;在C语言中,字符型使用关键字char来表示;在Objective-C语言中用NSString表示字符型数据。在产品界面上展示的所有信息在程序里都是以字符型的数据类型展示的。
 
浮点型:表示小数。一般使用float或者double标记浮点型数据。
 
布尔型:表示是非判断,布尔型的数据只有两种值,即true和false。在编程语言中,一般用关键字boolean或者bool表示和声明布尔型数据。在产品设计中,经常会在流程设计里使用到布尔型。布尔型主要用于控制流程或者做一些特殊标记。
 
数据拼接一般是字符型数据间的拼接, 拼接后的字符型数据统称为字符串, 字符串的内容可以表达任何内容, 字符串简单来说就是一串文本。
 
举例:
 
设计一个功能展示有多少人参与了活动,文本会设计成“目前有××人参与了本次活动”,这句话在程序里是以字符型的数据类型存储的,整个字符串中间关于多少人的部分是变量。
 
在进行产品设计时,如果某个功能涉及固定字符和动态字符的组合,就要考虑数据拼接。
 
3、编程语言中的逻辑结构
 
条件判断“if else”
 
条件选择“switch case”:根据条件值选择对应的执行方式。在“switch case”条件选择中,条件值的数据类型必须是整型的。“case”是对应输入值的条件分支,“case”对应值的数据类型也必须是整型,每一个“case”分支都会有一个对应的执行结果。
 
循环操作“while/do while”:让一个事件在某一条件下重复发生,在循环停止前持续让这个事件发生一段时间。还可以通过“do while”控制循环逻辑,即先做一件事情,再判断循环条件,如果条件满足,就继续循环该动作。“do while”是一种后向判断的循环,即先执行循环体的操作,再判断循环条件是否继续。
 
4、数据的组织方式:数据结构
 
数组:同一数据类型的集合
 
栈:汉诺塔结构。又可成为堆栈,是一种满足一定规则的数据结构,这种规则为“后进先出”。可以把栈理解成一种底部封口、顶部开口的容器,数据元素可以从开口进入栈,这个过程称为“入栈”,如果要取出在栈里的数据元素,则从开口处取出最上面的数据元素,这个过程为“出栈”。出栈的顺序与入栈的顺序相反。
 
队列:在结构上分为队头和队尾,只能在队头执行出队操作,在队尾执行入队操作,符合“先进先出”规则的顺序集合。数据元素只能从队尾入队,从队头出队。
 
树:每个树状结构都有一个“根节点”,即树根,从树根出发可以延伸出“枝干节点”或者叫“兄弟节点”,树状结构末端的节点称为“叶子节点”。
 
5、什么是程序
 
程序是指按照一定的规则和顺序的任务执行过程,是一套指令集合,在软件开发中,程序由数据结构和算法组成。
 
程序=数据结构+算法
 
数据结构是对数据进行组织和表示的结构,算法是指完成某一件事情需要处理的步骤。
 
使用编程语言中的数据类型表达数据含义,使用逻辑结构表达和控制逻辑处理,通过数据结构组合和呈现数据,将一套算法用编程语言表达出来就构成了程序。
 
6、程序与产品功能之间的关系
 
如果把一个产品功能看成一个整体,那么功能分两部分支撑:
 
第一部分是用户能看到、能用到的业务逻辑和交互逻辑,例如登录功能;
 
第二部分是实现业务逻辑和交互逻辑的程序。
 
整个程序由多个程序片段相互组合起来,不同的程序片段完成不同的工作,组合到一起相互协作就成了一个完整的产品功能。
 
第4章/
 
产品经理学数据库
 
数据模型就是产品在计算机中存储结构的设计,在功能层面看到的是一个个根据用户场景设计的功能。目前数据库的类型主要有两种,关系型数据库和非关系型数据库。
 
1、关系型数据库
 
是一种基于关系模型的数据库,关系模型折射现实世界中的实体关系。将现实世界中的实体和关系通过关系模型表达出来就可以形成一种数据存储关系, 即关系型数据库。
 
主流的关系型数据库有之前提到的MySQL, 另外还有SQL Server、 Oracle、 DB2等。
 
2、非关系型数据库
 
非关系型数据库是一种相对松散且可以不按照严格的结构规范进行存储的数据库。一般称为NoSQL(Not Only SQL),它没有关系型数据库那样严格的数据结构约束,在存储的形式和使用上有别于关系型数据库。现在主流的非关系型数据库有MongoDB和CouchDB。数据以类似文档的方式进行存储,每一个文档都有对应的唯一标识和版本号。
 
在非关系型数据库MongoDB中,使用键值对的方式表示和存储数据,键值对就是“key-value”的形式,类似在关系型数据库表中的字段名和该字段名对应的值。在MongoDB中,使用JSON格式的数据进行数据表示和存储。
 
非关系型数据库适合应用在一些对存取要求比较高且并发处理比较高的场合, 例如对网站访问数据的统计。
 
举例:
 
在设计某一个产品功能时,工程师认为这个功能影响到了现在数据库的设计,功能里有些字段是目前数据库里没有的,或者这个功能导致了数据库结构的变化。
 
当遇到这些问题时,产品经理需要知道所有的功能最终都是将数据通过产品功能表现出来,尤其是对已有功能进行修改时,需要处理两个问题, 第一个问题是新的设计应该对数据库做何种调整,是需要新增数据库字段还是修改或删除原有字段;第二个问题是新的设计对原有数据的兼容性问题。
 
3、数据存储与恢复
 
数据存储在数据库中,而数据库在物理上是位于服务器的数据磁盘中的。在数据磁盘里通常划分为两个区域,一个是索引区,一个是数据区。
 
数据存储:当一条新数据需要存入数据库中的数据磁盘时,首先会在索引区建立一个索引,然后将具体的数据存储在数据区。
 
数据删除:当删除一条数据时,只会将索引区的索引删掉,并不会立刻对数据区的数据进行删除操作,直到下一条新数据存储时,会将这些已经没有了索引的数据区数据覆盖掉。
 
数据恢复:当需要恢复已经删除了的数据时,只需要到数据区检索那些失去索引的数据然后重新为它们建立索引即可。如果数据被覆盖,就无法恢复了。
 
4、从数据角度看产品设计
 
数据库是用来存储产品中各种数据的仓库,从数据角度看产品设计需要回归到产品中各个实体对象上,实体对象就是产品中的各种角色。
 
数据视角往往独立于产品功能,产品功能描述的是一系列流程和逻辑的组合,而数据更多是站在原子角度描述产品中的每个数据对象。
 
产品都是在一些功能的基础上实现数据的流转,通过用户对产品的操作和具体的业务流程,实现对输入数据的处理和输出数据的存储。
 
产品经理在设计产品时,需要先明确在整个产品业务流程中有哪些实体对象,产品所涉及的数据在系统内是如何流转的。产品中的业务逻辑实际上是由不同的实体对象按照一定的业务规则和顺序组合起来的。
 
举例:
 
用户使用电商类产品下订单,具体的数据流转包括用户选择商品,基于商品信息产生订单,订单会根据业务阶段划分为多种状态,例如待付款、已付款、待发货、已收货等。
 
不同的业务阶段,数据处于不同的流转状态。当订单结束时,当前订单的数据才算流转结束,在这个过程中涉及的数据实体对象包括用户数据、商品数据、订单数据等。
 
下一篇读书笔记《产品经理学客户端技术、服务端技术》
 
一度暑出处暑时,
 
秋风送爽已觉迟。
 
-扫码关注我吧-
 
 

相关读后感推荐: