不懂技术是产品人在和开发对话时遇到的最大的阻碍。如果产品一点儿都不懂技术的话,当开发高谈阔论时,你在一旁以泰勒展开式懵逼脸和开发四目相对,心理活动可能是:“我是谁?我在哪?他在说啥?嗯???”,此时开发一点办法都没有,只能长叹一口唉呀。
所以为了让产品和开发之间的沟通更有效,和我一起疯狂洗劫技术知识吧!
1 思维篇
产品汪面试被拒,从面试官得到的反馈绝大部分理由是产品思维薄弱。产品思维就是从用户、痛点、价值、体验、收益、商业价值等多方面考量的思考方式,侧重点在用户价值。而程序猿的技术(工程)思维,侧重于问题的解决和功能实现,考虑架构和开发成本 。思维方式的不同,侧重点不同,分析产品需求的切入点也不同。
产品汪一般都是以大家熟知的用户体验五要素来进行层层剖析的,从战略层思考需求有无用户价值,市场是红海还是蓝海,是否符合公司的产品定位;在范围层思考做哪些业务;在结构层分析资源结构;在框架层梳理业务流程、功能结构、信息结构,功能的布局;在表现层分析以什么色彩、交互来展现产品。
技术人员则是从框架层切入,数据库设计、接口设计、交互实现等。
了解二者之间的思维差异,是进行有效沟通的重要前提。
2 基础篇
了解这些技术知识,让你有问题不迷路,避免找错人的尴尬瞬间。
1、前端
主要职责是负责前端展示,当我们打开一个网站时,肉眼可见的都是前端工程师管辖范围,涉及的主流技术为HTML、CSS、JS、VUE、Node.js等等。HTML是标记类语言,CSS是在HTML的基础上进行样式修改的标记类语言,HTML+CSS实现静态页面,JS则能实现交互动作,形成动态页面,比如下图弹出的下拉菜单效果。
2、后端
主要是逻辑功能实现,通过接口向前端返回数据。涉及的技术太多了,自行百度吧哈哈。
小剧场:
小明发现前端一个功能的提示错误,找前端,前端小哥“这是后端返回的数据,不是我控制的”,心里想找错人了吧? 小明转而走向后端小哥,后端小哥后背一寒,“当初产品没说返回什么结果啊” 哦这锅我不背,产品没说啊。
3、数据库、服务器、客户端
举个栗子,小明去米其林餐厅恰饭,这时服务员给你菜单(前端展示),你在菜单上勾勾选选,将最后的选定的菜单提交给服务员(提交一个表单),服务员将你最终点的菜——白开,点菜票子给后厨(处理信息),后厨收下票子(完成一个表单的存储)给你准备好白开,服务员给你呈上(返回结果)。
小明就相当于是客户端,是触发响应的一侧;服务员就相当于是服务器,进行信息处理;后厨就相当于是数据库啦。
客户端和数据库之间是通过接口传数据,那么要准确无误的收发数据必定要遵循一定的协议,接口的形式有两种:JSON和XML,我们只有可以阅读接口文档,知道里面的内容就好。
JSON接口代码格式如下:
var country=
{
name:"中国"
provinces:[
{name:"黑龙江",citys:{city:["哈尔滨","大庆"]}},
{name:"福建",citys:{city:["福州","厦门","泉州","莆田"]}}
]
}
可以得到传递的信息是国家、身份、城市。
XML接口实现相同数据的格式为:
中国 </name>
<name>福建 </name>
<citys>
福州
...
</province>
</country>
所以可以看出来,JSON标准更简洁。
数据库分为关系型数据库(SQL)和非关系型数据库(NoSQL),像我们常听说的MySQL、Oracle就是属于关系型数据库,非关系型数据库代表有Redis、MongoDB等。
关系型最大的特点就是实物一致性。适用于要求一致性比较高的系统,比如银行系统,但读写性能较差。比如“小明,技术,996”。
非关系型对一致性要求不到,读写性能较好。像微博、facebook这类网页应用,允许一定时间间隔,读写能力要求高,适用NoSQL。
这里推荐书籍《必知必会SQL》,争取可以自己敲SQL语句;关于HTTP协议,可以看《图解HTTP协议》,前两章即可。
3 技术术语
【偷小懒,直摘参考文章3】
接口:不同服务器进行数据交互的通道
API:网页常用接口格式
TCP:网络传输协议
HTTP劫持:HTTP传输数据被第三方修改
SDK:客户端或对外的常用接口格式
CDN:内容分发系统,将源站内容缓存到离用户最新的节点
DNS:域名解析,将用户输入的内容转换成IP地址
CNAME记录:别名,可以把一个域名解析到另一个域名
SLB:负载均衡,让多台服务器保持相同压力
Cookie:客户端记录信息
Session:服务端记录信息
Token:服务端返回给客户端的令牌,以便于客户端免密登录
前后端分离:页面和数据分开返回给请求方
互踢:同一平台,在不同设备,登录同一账号,先登录的账号被踢出
泛域名:在一个域名根之下的,所有未建立的子域名集合
回源HOST: 源站所对应的主机站点
过滤参数:用户请求URL中?后的参数
请求:向另一端索要信息或数据,所以需先发起请求
丢包:通信数据包丢失
拉取:用户端向服务端获取数据的过程
并发:多个事件同时进行
进程:服务器中运行的程序
进程挂掉了:进程运行出错被系统终止
拉起进程:让系统执行指定程序
线程:一个进程里,可以有多个线程,在分配的资源区域内可以多线程运行。比如我在边听歌边在别人主页里评论。
单点:只有一个服务,通常不安全
防盗链:检验客户端URL来验证其合法性
宕机:服务器死机
上报:数据从客户端上报到服务端
心跳:用户端每隔几秒上传一次数据,称为一次心跳
存量:某个时间段已有的数量
增量:某个时间段新增的数量
MVC/MVP:程序框架设计模式
4 测试术语
提测:提交测试,通过公司内部系统将需求提交给测试人员
复测:再次测试;
复现:再次呈现的bug;
bug的常见类型: 功能测试、兼容性测试、压力测试、偶发性bug;
debug:修改bug;
测试用例:测试人员编制的一组测试输入、执行条件以及预期结果的用例
参考文章:
[1]https://baijiahao.baidu.com/s?id=1629130300193146452&wfr=spider&for=pc
[2]https://www.zhihu.com/question/302732543?sort=created
[3]https://zhuanlan.zhihu.com/p/54266673?utm_source=wechat_session
这篇文章兴许有许多不严谨、不完善之处,欢迎批评赐教。
题图源自Unsplash,基于CC0协议,表情包源自网络。仅做学习交流使用,侵删。