从你每天用的外卖说。打开 App,选店、下单、付款、看骑手到哪了,每一步都在这一个界面里完成。但付款成功那一下,钱的事不是这个 App 自己办成的------它只是把你那一下操作变成一次请求发出去,真正记账的,是机房里的另一套东西。
一个能真跑起来的互联网产品,技术上被切成三段。
用户手里那一面叫业务前台系统。外卖有 iOS、Android、PC 三个端。它干的事是接住用户的动作、把结果好好显示出来。它自己不存业务数据,也不做业务判断------它没有资格决定"这单能不能下"。
中间那一层叫业务后台系统,就是这门课要做的那个东西。它按业务对象切,不按界面切。外卖后台切三块:商品、订单、配送,每块背后是自己的数据。前台说"给我附近的店",后台去商品数据里查出来;前台说"我下单了",后台往订单数据里写一条;前台问"骑手到哪了",后台去配送数据里取。前台永远是问的那一方,后台永远是给答案的那一方。
最右边是数据中台:数据集市、数据计算、报表分析。它不参与任何一笔交易,只把后台沉下来的数据加工成决策依据。
这里有两个方向要看清楚。前台和后台之间是来回的:请求出去,响应回来。后台到中台是单向的:数据只往下沉,中台不反向驱动业务。所以中台挂了,用户那单照样能下;后台挂了,用户当场就卡死。后台必须是那层永远在线、且必须算准的东西。
再往下收一层。后台对前台做的事,不管包装出多少菜单、多少页面,其实只有两件:把数据取出来,把数据存下来。
课程用两个行业验证这句话。电商后台:查询商品信息的系统,保存订单的系统。短视频和资讯类------微博、头条------后台:查询视频基本信息和资讯的系统,保存短视频的系统。两个行业,一套骨架,区别只在业务对象不同。
那合家云的骨架落在哪?浏览器里业主和物业点的那些页面,是前台。你要写的 hjy-community 是后台,它的业务对象是小区、楼栋、单元、房屋、业主、报修单、投诉建议。往后你写的每一个接口,做的无非是"从哪张表取"或者"往哪张表存"。想不清一个功能该写什么的时候,先问自己这句话,方向就出来了。
还有一件事先说在前头:这门课不做数据中台,别一上来就想报表大盘。骨架是三段里的中间那段,我们只做中间那段。
下课前留个判断,你自己想,不用回我长篇:物业管理员在后台录入一个新小区,后台是在取数还是存数;业主查自己那张报修单的处理进度,后台又在干什么。想清楚这两个,下一节讲业务后台的分类,你就知道为什么要分读、写、扣减三种了。
录入是在存数 业主查是取数后台是在查询数据库
答对了,方向没错。补一层你现在还看不见的东西:业主查"我那张报修单",后台不是把报修表整个查出来再筛,它在查的时候就已经带着条件------这条单是不是他的、他有没有权限看。也就是说,存和取之间还夹着一个动作:判断。这条线先记住,后面第四章讲权限的时候会回来找它。