产品经理日常工作有研究用户需求,对用户行为结果负责,通过使用各种方法以及整合资源,来满足用户需求,形成产品价值,为企业带来预期收益。根据受众用户不同,又分为ToC和ToB两类产品。

ToC类的产品是面对的各种终端用户,解决个人聚集的群体类需求,如购物,社交,出行等生活行为需求。

ToB是为了解决某行业性问题,既有面向外部的进行客户管理的各种流程化系统化的产品,如OA/钉钉/ERP/CRM等,还有一些企业内部的中后台产品、数据分析平台/资管平台/风控决策系统等。

以上是从产品受众来区分产品分类。由于B端产品与技术交互更多(技多不压身),面向B端产品更懂一些基础技术原理和技术术语更有利于产品落地。由于专业背景不同、分工不同、思考切入点不同合作中不可避免的出现互相不被理解的痛苦。所以PM同学有必要懂的一些技术逻辑,有助于顺畅沟通。One word,One world,只有先做到,同词同意,才能交流顺畅,前者是必要不充分条件。

这个世界本没有坏人,只有互相不被理解的人。

所以,产品和开发是互相成就的,而不是互掐的'天敌'。

接下来我们看下产品实现路径上一些技术术语介绍。

开发端:

1.前端 所见即所得。运行在产品最前端,普通用户可以直接看得到或直接操作的交互页面,比如我们看到的微信公众号文章、Web网页、APP各种功能页。哪些内容是前端负责?用户可见的交互界面,网站前端页面也就是网页的页面开发,比如网页上的设计、特效、布局、图片、视频,音频等内容。前端的工作内容之一就是将美工设计的效果图的设计成浏览器可以运行的网页,并配合后端做网页的数据显示和交互等可视方面的工作内容。前端技术主要有HTML、CSS、JavaScript、还有一些集成框架比如vue.js等。2.后端 运行在服务器端,你不能直接看到的,通常是与前端进行数据交互,包括数据处理和流转以及存储等。哪些内容是后端负责?提供有交互逻辑的数据,如微信公众号热门词汇,每篇文章的具体内容是什么时机由后端提供给前端进行展示。后端给前端传递信息的通道有接口有消息,前端会根据跟后端约定好的方式将请求参数发给后端,后端返回前端想要的数据。

当你在某度搜索“如何找一个女朋友”,并按下搜索按钮后,你的电脑就会发送一个请求给服务器,服务器会根据这个请求,来决定接下来的操作——1)监视你的爱好。存“属性:男屌丝。爱好:女。”去数据库。2)从数据库里挖点什么“把妹神技”吐回给用户,让他觉得很厉害的样子。根据这个过程,用户就收到了他想要的东西,万事大吉。
我勒个去?有33,400,000个方法找女朋友?男同胞们,你们还好意思单身?
绝大多数情况下,互联网就是这样运行的——发东西给服务器,服务器再发回些什么东西。这其实就是http协议的功能之一,关于http协议,这其实是一个大坑,在这里展开就没完没了了。至于不符合上面说的绝大多数情况?那很可能就不是http协议拉,比如基于更上一层TCP协议的Websocket,不过这个扯得就会有点远了。 Websocket最常见的应用就是我们经常说的推送。所谓的推送,就是在你不发东西给服务器的情况下,服务器都会像舔狗一样发东西给你。咦?这个故事就那么简单吗?那还要分什么前端后端?没错,在遥远的年代,确实不分什么前端后端,反正都叫程序猿就对了。

Tips:在需求沟通时,由于产品和开发所理解的前后端可能有差异,为避免语义理解偏差,建议使用容错率更高的“前台”、“后台”代替前端和后端。除了前后,还有“中台”存在。一句话理解前中后台理,前台即展示层,后台即数据层,中台即逻辑层。中台概念这几年特别火爆、诞生于阿里腾讯这类大规模业务的企业,为了更快响应用户需求、前后解耦更彻底而存在,这里不做详细展开。

3.部署/发布/上线 服务端研发,虽然他们是后端开发,但是并不能直接在服务器写代码。只能天天在自己ide上写,写好代码本地自测没问题,再Push到服务器。4.同步 发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。

举例:当程序1调用程序2时,程序1停下不动,直到程序2完成回到程序1,程序1才继续执行。5.异步 异步的概念和同步相对。发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。举例:当程序1调用程序2时,程序1继续自己的下一个动作,不受程序2结果的影响。

Tips:同步不一定比异步快。至于同步还是异步的选择是根据哪种能更好的满足业务需求来定。

6.配置文件 配置文件的优点是灵活,很多需要经常变换的数据是不能写死在程序里,因为程序在运行过程中无法更改。所以对一些经常变化的配置,比如价格、数量、库存这些经常要调整的参数,这个就适合写在配置文件中开放给产品或采销同学更改,程序需要这些数据,就从配置文件中读取。*.xml、*.yaml、*.config等7.API接口 Application Programming Interface,即应用程序接。API的作用是信息传递,比如,我们通过京东的API接口获取某笔订单的详细信息:订单号,收货人,订单商品信息,订单金额等。获取信息的方式有两种:主动调用和被动调用。主动调用是我们通过别人的接口,获取自身想要的信息;被动调用需要我们提供API接口,让别人通过接口获取信息。API两个核心信息:请求参数和返回参数。请求参数是获取想要的信息需要告诉对方接口的必要条件。比如想要获取某笔订单的信息,就需要告诉接口对应的京东订单号,接口根据订单号返回这个订单的详细信息。返回参数是接口能告诉我们的信息,如上面所说订单的收货人、订单金额、订单商品。8.消息

8.1.主要组成
1)Broker消息服务器,作为server提供消息核心服务。2)Producer消息生产者,业务的发起方,负责生产消息传输给broker。3)Consumer消息消费者,业务的处理方,负责从broker获取消息并进行业务逻辑处理。4)Topic主题,发布订阅模式下的消息统一汇集地,不同生产者向topic发送消息,由MQ服务器分发到不同的订阅者,实现消息的广播。5)Queue队列,特定生产者向特定queue发送消息,消费者订阅特定的queue完成指定消息的接收。6)Message消息体,根据不同通信协议定义的固定格式进行编码的数据包,来封装业务数据,实现消息的传输。

8.2.交互方式

□ 点对点PTP点对点:使用queue作为通信载体说明:消息生产者生产消息发送到queue中,然后消息消费者从queue中取出并且消费消息。消息被消费以后,queue中不再存储,所以消息消费者不可能消费到已经被消费的消息。Queue支持存在多个消费者,但是对一个消息而言,只会有一个消费者可以消费。

□ 发布/订阅Pub/Sub发布订阅(广播):使用topic作为通信载体说明:消息生产者(发布)将消息发布到topic中,同时有多个消息消费者(订阅)消费该消息。和点对点方式不同,发布到topic的消息会被所有订阅者消费。queue实现了负载均衡,将producer生产的消息发送到消息队列中,由多个消费者消费。但一个消息只能被一个消费者接受,当没有消费者可用时,这个消息会被保存直到有一个可用的消费者。topic实现了发布和订阅,当你发布一个消息,所有订阅这个topic的服务都能得到这个消息,所以从1到N个订阅者都能得到一个消息的拷贝。

8.3.为什么使用MQ?有的产品经理会问,已经有API这种高效及时的交互方式了,为什么还要再有一套MQ机制进行信息交互呢?其实道理比较好理解,API的被调用方作为信息提供方,如果只有一个或几个下游系统进行请求且请求频率不高,可能没有负载问题。但是如果这种下游系统有若干个并且请求频率极高,比如双11、618这种大促活动,作为信息上游的被调用方压力很大。一句话总结:MQ除了承载消息传递的通道作用,一端连接着生产者,一端连接着消费者,还起着消息队列缓冲池的作用。
因此对于一些信息及时性要求不是那么高、多个下游系统均存在使用的场景,MQ方式必不可少。1)异步。可以将一些非核心流程,如日志,短信,邮件等,通过MQ的方式异步去处理。这样做的好处是多应用间通过消息队列对同一消息进行处理,避免调用接口失败导致整个过程失败。缩短主流程的响应时间,提升用户体验。2)消峰。这个其实也很好理解,因为MQ的本质就是业务的排队。所以,面对突然到来的高并发,MQ也可以不用慌忙,先排好队,不要着急,一个一个来。消峰的好处就是避免高并发压垮系统的关键组件,如广泛应用于秒杀或抢购活动中,MQ有个缓冲机制,解决由于流量并发过大导致应用系统挂掉的问题。

测试端

1.单元测试:由程序员自己负责,粒度可以是一个类或是一个函数,测试的是某个类或某个函数是否能够正常运行,单元测试属于白盒测试。2.回归测试:代码已经发布,修改了旧代码发布的时候就需要测试以前的测试用例在新系统上是否能够正常运行。3.压力测试:测试软件的最大承受能力,比如一个网站最大可以支持多少用户同时访问。有TPS/QPS等衡量指标,一般大型系统上线会进行全链路压测。4.AB测试:AB测试就是将用户分为两组,例如A组和B组,当A组访问时,给出的是A页面,当B组访问时给出的是B 页面,测试AB两组用户对AB两个页面不同的行为,再决定最终用那个页面,属于决策层。5.白盒测试:了解程序内部原理的测试,这部分是由程序员自己搞定的,比如单元测试。6.黑盒测试:无需了解程序内部原理,根据软件的功能进行测试。比如用一个APP,测试各个功能。7.测试用例:就是各个测试的场景,测试用例也分单元测试的测试用例和集成测试的测试用例,测试用例需要覆盖各个场景,包括正常产品场景,比如点击输入提交订单按钮,是否会如产品设计的一样跳到支付的页面等,另外测试用例还要覆盖各种极端场景,比如计算机,输入很大的数字的时候会是什么样的结果,除数为0应该是什么样的结果,支付时输入一个极大金额会怎样等等。8.mock:并非生产环境的真实数据,通过批量造的测试数据模拟请求,这个一般是在开发自测阶段或测试人员模拟参数进行仿真测试。

数据库

数据库是“按照数据结构来组织、存储和管理数据的仓库”,管理动作包括增、删、改、查等。按照存储形式,分为关系型数据库和非关系型数据库。

SQL查询教程。

声明:本文为作者原创,转发请备注来源。违者必究!

最后推荐产品同学们看一下《给产品经理讲技术》,可以日积月累的了解技术实现。

消费端代码获取队列名称_B端产品要懂的技术相关推荐

  1. rabbitmq 消费端代码获取队列名称_C#调用RabbitMQ实现消息队列的示例代码

    前言 我在刚接触使用中间件的时候,发现,中间件的使用并不是最难的,反而是中间件的下载,安装,配置才是最难的. 所以,这篇文章我们从头开始学习RabbitMq,真正的从头开始. 关于消息队列 其实消息队 ...

  2. rabbitmq 消费端代码获取队列名称_RabbitMQ四:生产者--队列--消费者

    AMQP协议的梳理和名词解析 建议先把上篇AMQP协议先看一遍,理解一下,由于用XMind绘图,电脑屏幕比较小,不能截取全部,如果想要全图和源代码,请下面留言....... 可以点击图片,打开到新的页 ...

  3. android代码获取应用名称,Android获取应用程序名称(ApplicationName)

    MainActivity如下: package cn.testapplicationname; import android.os.Bundle; import android.widget.Text ...

  4. 仿京东开放平台框架,开发自己的开放平台(包含需求,服务端代码,SDK代码)

    目录 1开放平台需求 1.1调用参数 1.2签名算法 2服务端代码,Java举例 2.1接口入口代码 2.2业务逻辑层 2.3基础工具类 3.SDK代码,Java举例 4.集成SDK,代码举例 现在开 ...

  5. 仿京东开放平台框架,开发自己的开放平台(包含需求,服务端代码,SDK代码)...

    目录 1开放平台需求 1.1调用参数 1.2签名算法 2服务端代码,Java举例 2.1接口入口代码 2.2业务逻辑层 2.3基础工具类 3.SDK代码,Java举例 4.集成SDK,代码举例 现在开 ...

  6. extjs曲线数据如何从后端获取_B端产品经理应了解的技术知识(上)

    点击上方"蓝字"关注我!转载请注明出处! 互联网行业发展这么多年,产品经理这个行业也发展了多年,现在很多人都已形成了共识:产品经理需要懂技术!那么,作为B端产品经理,究竟需要掌握哪 ...

  7. Apache Kafka-消费端消费重试和死信队列

    文章目录 概述 Code POM依赖 配置文件 配置类 SeekToCurrentErrorHandler 自定义逻辑处理消费异常 生产者 消费者 单元测试 测速结果 源码地址 概述 Spring-K ...

  8. 完整mes代码(含客户端和server端_200行代码实现基于paxos的kv存储

    本文链接: https://blog.openacid.com/algo/paxoskv/ 前言 写完 paxos的直观解释 之后, 网友都说疗效甚好, 但是也会对这篇教程中一些环节提出疑问(有疑问说 ...

  9. 六.激光SLAM框架学习之A-LOAM框架---项目工程代码介绍---4.laserMapping.cpp--后端建图和帧位姿精估计(优化)

    专栏系列文章如下: 一:Tixiao Shan最新力作LVI-SAM(Lio-SAM+Vins-Mono),基于视觉-激光-惯导里程计的SLAM框架,环境搭建和跑通过程_goldqiu的博客-CSDN ...

最新文章

  1. 枚举与Combox的SelectedIndex绑定出现怪异问题的解决方案
  2. 一代偶像终将老去,总有AI正在年轻
  3. 查看MySQL的当前日期
  4. leetcode 123. 买卖股票的最佳时机 III(dp)
  5. 【今日CS 视觉论文速览】Tue, 15 Jan 2019
  6. 使用IPMI工具实现对服务器的远程管理
  7. OpenAI升级Codex,直接将书面语言转为计算机代码;区块链网站被黑客偷走6亿美元加密货币|极客头条...
  8. Android学习笔记之Broadcast Receiver
  9. Python 函数参数传递的困惑
  10. Lua面向对象之二:类继承
  11. H5小游戏源码在哪里可以免费获取?
  12. ActiveMQ专题2 —— ActiveMQ下载和安装(Linux版)
  13. 每天进步一点点————MUMA架构优化和应用优化
  14. linux报错的Syntax error “(“ 的解决方法
  15. iOS开发者续费流程
  16. 制作Centos7模板机
  17. js实现拼音模糊搜索
  18. DeepLab系列理解
  19. 小程序实现图片上传,并获取fileID存入数据库
  20. Mysql的四表练习题(一)

热门文章

  1. 程序员多数性功能不行_从面试官角度观察到的程序员技能瓶颈,同时给出突破瓶颈的建议...
  2. java condition详解_Java使用Condition控制线程通信的方法实例详解
  3. js java cookie_JS 打开一个模式窗口,使用Cookie传递一个参数
  4. 删除logs mysql_关于删除MySQL Logs的问题记录_MySQL
  5. excel vba基础入门_[VBA][基础入门] 第3讲 认识VBA IDE(集成开发环境)
  6. 如何去除 IDEA 中 xml 文件的屎黄色背景
  7. 为什么 Java 中 1000==1000 为 false ?
  8. 没了解过条件注解@ConditionalOn..?Spring Boot白学了!
  9. 永远不要在 MySQL 中使用“utf8”
  10. 语言const的生命周期_C语言的角落——这些C语言不常用的特性你知道吗?