一、前言
一个好的产品少不了一个好的产品经理的策划与设计,外界普遍认为产品经理也隶属于技术工种,但其实不是,产品经理在我看来属于文艺圈,设计一套产品对他们来说是创作,可以天马星空,可以不受任何束缚尽情创作,所以产品经理普遍是不知道他们设计的产品是如何实现的,这就是为什么我们经常听到或者看到网上产品经理和技术开发之间的各种争斗段子。产品经理不懂技术在创作层面上来说是必要的,反之一个好的技术是绝对设计不出一款好的产品的,如果让一个人即做开发又做产品。。。。。。我真的很难想象产品出来是啥样子的。。。。。。
那么问题来了,产品经理到底要不要懂技术呢?答案是了解就好,不要深入也不能完全不懂!为什么?打个比方,我们设计一个摩天大楼,这个大楼的设计者可以完全不用考虑各种物理定律天马行空,漂浮在半空中的天空之城都没问题,但是这种大楼至少在他活着的时候是不会竣工的甚至都不会动工,真正好的设计至少他得知道楼为什么不能漂浮在半空中,怎么设计这个楼才不会倒塌等等。相应的,产品经理所要了解的东西也远不止如何天马行空如何让最终用户眼前一亮。恰巧,我认识一个产品经理他就完全不懂技术,最近发现了自己至少得了解一下产品是如何实现的,所以在网上看了半天,还是云里雾里,看了还不如不看越看越懵逼。
以上是这篇文章的前提条件,为了不让我认识的这位产品小达人更加迷茫,我决定给他写一篇干货,介绍一下他的产品到底是如何落地的。
废话不多,我们开始正式进入主题!
二、正文
我们以一个最简单的架构来说,如下图
红色的1就是产品经理设计出来的产品最终在用户那里展示出来的东西,一般管他叫前端;红2是网关层,是后端与前端交互的中间层;红3是后端服务,由各种后端语言开发完成,所有的数据处理逻辑都是由后端完成;红4是数据库,就是存储数据存储文件的各种服务,那接下来就根据1、2、3、4的顺序分别说明一下。
2.1、前端技术
前端的实现就是产品经理设计的产品最终展现在用户面前的样子,如APP、WEB前端、小程序等等,不同的展现方式需要由不同的攻城狮去完成,用的技术也基本不同,有些甚至需要用到多种语言去完成,这个是与产品经打交道最多的。以目前来看主流的前端展现无非就是APP、WEB前端(PC端网站、移动端网站等用浏览器打开的)、小程序这几种。完成一个前端产品步骤基本分为三个,跟把大象装进冰箱的步骤差不多:
1、画页面(把冰箱门打开):所有的页面都是前端工程师手动画上去的,虽然也有一些前端框架可以用,但页面还是需要细致的调整,比如页面的布局、按钮是什么颜色的、表单之间的距离、字体的大小等等;
2、页面逻辑(把大象装进去):一个前端页面画好之后没有逻辑去处理,最多算是一个静态页面,没有那么多的前端交互,所以需要写大量的前端逻辑去处理,比如点一个按钮实现什么功能、表单输入的校验、拖动效果、不同页面之间的跳转等等;
3、前后台交互(把冰箱门关上):页面画好了、逻辑也写好了,但是数据从哪里来?比如点开个人信息页,个人信息从哪里来?那就是后端服务给的,需要发起一个HTTP请求去问后端服务要,同样的,前端修改完一个信息之后点击提交按钮,数据提交到哪里去,也是需要发起一个HTTP请求到达后端,由后端处理完之后给出反馈。
前端这里APP的开发我不是太懂,所以只能匆匆带过,有写的不对的地方也请大家贱量!关于前端我着重说网站的前端。
2.1.1、APP
目前市面上主流的就是安卓版APP和IOS版APP,这两种APP由于操作系统不一样,所以由两种不同的语言去完成,安卓的APP用的主流语言是JAVA,IOS由objectC开发,这就是为什么你们公司为什么要分开招聘安卓和IOS工程师的原因,当然你要是说你们公司的工程师流弊,一人干安卓和IOS的开发那我也没的说,坐等他累死!
安卓开发:安卓机上的APP刚才说主要开发语言是JAVA,JAVA语言主要是用来处理页面逻辑的,画页面的话还得需要布局文件,一点一点的去调,由于市面上安卓机的机型特别的多版本也特别的多(因为安卓系统是开源的,所以很多厂家都乐此不疲的自己去定制属于自己的安卓操作系统,比如格力的开机画面。。。),所以安卓工程师的大部分时间都花在做不同屏幕的适配和不同机型不同版本的兼容问题上。
IOS开发:IOS系统是苹果自己出的,开发者只能在苹果生态的环境内开发,而且苹果的开发者账号是收费的,也就是说一个IOS开发工程师想要成为真正的大牛首先你得有钱买一台苹果电脑!其次想要你的产品真正能跑起来在苹果市场上交付你不给苹果交保护费那是不可能的!
2.1.2、WEB前端
我们日常但凡用浏览器打开的都是网页端,不管是是电脑的浏览器还是手机的浏览器,包括你