u****p 发帖数: 526 | 1 如题,设计网站上的搜索功能,比如顾客要买书,请问这种怎么下手?
另外买的时候,那个cart要注意什么? |
u****p 发帖数: 526 | |
i*****9 发帖数: 3157 | 3 好大的题目,从产品上说需要先定义有哪些域
技术上定义搜索策略是一条线,定义 indexing pipeline是一条线。
考虑购物车之后,主要就是库存变化和 indexing pipeline 的关系。一般来说下单的
时候你必须保证有库存,但搜索的时候不保证搜出来的一定有库存。这就涉及库存这种
时间变化的数据在哪儿 cache, cache 如何更新的问题。
:如题,设计网站上的搜索功能,比如顾客要买书,请问这种怎么下手?
:另外买的时候,那个cart要注意什么? |
u****p 发帖数: 526 | 4 面试的时候让设计一个网站的搜索功能,然后买东西cart怎么设计,我问是要OOD还是
system design,面试官没说话。然后问用的人多不多,TPS多少,说很少,就不知道具
体到底要问什么了。
对了库存这个我一直好奇,比如存货有9件,10个人在看,10个人把物品放入cart,最
后结账的时候肯定有一个人买不成,那这个库存是按付钱的时候扣除,还是什么时候?
【在 i*****9 的大作中提到】 : 好大的题目,从产品上说需要先定义有哪些域 : 技术上定义搜索策略是一条线,定义 indexing pipeline是一条线。 : 考虑购物车之后,主要就是库存变化和 indexing pipeline 的关系。一般来说下单的 : 时候你必须保证有库存,但搜索的时候不保证搜出来的一定有库存。这就涉及库存这种 : 时间变化的数据在哪儿 cache, cache 如何更新的问题。 : : :如题,设计网站上的搜索功能,比如顾客要买书,请问这种怎么下手? : :另外买的时候,那个cart要注意什么?
|
u****p 发帖数: 526 | |
r*****s 发帖数: 1815 | 6 cart你先考虑基础实现
cookie, session cookie, merge carts, conflict resolution, version vector....
search,基础实现
做index,offline batch,加减产品。。。还是去睡了
这个玩意挺大的。。。
: 面试的时候让设计一个网站的搜索功能,然后买东西cart怎么设计,我问是要
OOD还是
: system design,面试官没说话。然后问用的人多不多,TPS多少,说很少,就不
知道具
: 体到底要问什么了。
: 对了库存这个我一直好奇,比如存货有9件,10个人在看,10个人把物品放入
cart,最
: 后结账的时候肯定有一个人买不成,那这个库存是按付钱的时候扣除,还是什么
时候?
【在 u****p 的大作中提到】 : 哪个大牛能再给具体说说吗?多谢啊
|
A*******5 发帖数: 690 | 7
我认为是按付钱的扣,要不然所有人只加不买,就把其他想买的买家block了,而且一
般情况下默认为库存的data是accessible的,所以你本身掌握库存和确认购买的数量,
不需要考虑买家能否hold住物品。这个和amazon那种不一样,而且我听amazon的人说了
,他们也没用什么算法或者技术保证足够的库存,而是因为他们是amazon,卖家们会预
留一部分库存专门给amazon,这个数是定的,所以amazon不需要担心同一个商品在不同
的平台上卖,自己库存不足的问题
【在 u****p 的大作中提到】 : 面试的时候让设计一个网站的搜索功能,然后买东西cart怎么设计,我问是要OOD还是 : system design,面试官没说话。然后问用的人多不多,TPS多少,说很少,就不知道具 : 体到底要问什么了。 : 对了库存这个我一直好奇,比如存货有9件,10个人在看,10个人把物品放入cart,最 : 后结账的时候肯定有一个人买不成,那这个库存是按付钱的时候扣除,还是什么时候?
|
i*****9 发帖数: 3157 | 8 建立购买记录,扣钱,减库存必须是一个 transaction. 其他的事情都可以靠PM 去定
义。
你选好东西,确认订单的时候说没货了不是大问题,确认支付成功再发现没货麻烦就大
了。
从搜索开始到最后完成支付,每一步都有 churn rate, 真做产品的话要根据估算的
churn rate 算每一步的QPS,然后考虑那一步上要不要确认库存,以什么精度确认库存。
:面试的时候让设计一个网站的搜索功能,然后买东西cart怎么设计,我问是要OOD还是
:system design,面试官没说话。然后问用的人多不多,TPS多少,说很少,就不知道
具体到底要问什么了。 |
r*****s 发帖数: 1815 | 9 您说的这是payment flow, cart一般就只是说那个购物车本身而已
虽然cart abandoning rate确实是flow里面做analytics时候比较重要的一个指标
但是一般说cart还是关注不丢商品,处理冲突。就是一个简单的分布式系统。
: 建立购买记录,扣钱,减库存必须是一个 transaction. 其他的事情都可以靠PM
去定
: 义。
: 你选好东西,确认订单的时候说没货了不是大问题,确认支付成功再发现没货麻
烦就大
: 了。
: 从搜索开始到最后完成支付,每一步都有 churn rate, 真做产品的话要根据估
算的
: churn rate 算每一步的QPS,然后考虑那一步上要不要确认库存,以什么精度确
认库存。
: :面试的时候让设计一个网站的搜索功能,然后买东西cart怎么设计,我问是要
OOD还是
: :system design,面试官没说话。然后问用的人多不多,TPS多少,说很少,就
不知道
: 具体到底要问什么了。
【在 i*****9 的大作中提到】 : 建立购买记录,扣钱,减库存必须是一个 transaction. 其他的事情都可以靠PM 去定 : 义。 : 你选好东西,确认订单的时候说没货了不是大问题,确认支付成功再发现没货麻烦就大 : 了。 : 从搜索开始到最后完成支付,每一步都有 churn rate, 真做产品的话要根据估算的 : churn rate 算每一步的QPS,然后考虑那一步上要不要确认库存,以什么精度确认库存。 : : :面试的时候让设计一个网站的搜索功能,然后买东西cart怎么设计,我问是要OOD还是 : :system design,面试官没说话。然后问用的人多不多,TPS多少,说很少,就不知道 : 具体到底要问什么了。
|
s**********g 发帖数: 14942 | 10 库存肯定只能付钱了才减
没人付钱的时候100个人都能放购物车
结账就比谁快了
结账flow刚启动你还可以再跑一次check看还有没有货
【在 u****p 的大作中提到】 : 面试的时候让设计一个网站的搜索功能,然后买东西cart怎么设计,我问是要OOD还是 : system design,面试官没说话。然后问用的人多不多,TPS多少,说很少,就不知道具 : 体到底要问什么了。 : 对了库存这个我一直好奇,比如存货有9件,10个人在看,10个人把物品放入cart,最 : 后结账的时候肯定有一个人买不成,那这个库存是按付钱的时候扣除,还是什么时候?
|
|
|
u****p 发帖数: 526 | 11 谢谢楼上各位大牛。我想在问问面试官出这题到底是要system design还是OOD? 我看网
上好多shopping cart的OOD答案。 |
u****p 发帖数: 526 | 12 好的,多谢啊
【在 A*******5 的大作中提到】 : : 我认为是按付钱的扣,要不然所有人只加不买,就把其他想买的买家block了,而且一 : 般情况下默认为库存的data是accessible的,所以你本身掌握库存和确认购买的数量, : 不需要考虑买家能否hold住物品。这个和amazon那种不一样,而且我听amazon的人说了 : ,他们也没用什么算法或者技术保证足够的库存,而是因为他们是amazon,卖家们会预 : 留一部分库存专门给amazon,这个数是定的,所以amazon不需要担心同一个商品在不同 : 的平台上卖,自己库存不足的问题
|
u****p 发帖数: 526 | 13 对了大家怎么判断是system design还是OOD? |
i*****9 发帖数: 3157 | 14 要是互联网公司就是 system design, 要是传统公司的IT部门就是 OOD
互联网公司只要求最后的方案 work, 管你是 OO,还是过程还是FP。
有意义的对象设计自然体现在了数据库设计上,剩下的就是搞软件工程的人自 high 了
:对了大家怎么判断是system design还是OOD? |
u****p 发帖数: 526 | 15 马鬃的design有时候是OOD有时候是system,分不清楚怎么办
【在 i*****9 的大作中提到】 : 要是互联网公司就是 system design, 要是传统公司的IT部门就是 OOD : 互联网公司只要求最后的方案 work, 管你是 OO,还是过程还是FP。 : 有意义的对象设计自然体现在了数据库设计上,剩下的就是搞软件工程的人自 high 了 : : :对了大家怎么判断是system design还是OOD?
|
J*******n 发帖数: 2901 | 16 不一定必须得是付钱了才减库存,这是一个产品经理来决定的问题
如果加入购物车就先hold住库存的话,要给购物checkout时间设置一个限制,例如5分
钟之内不完成付款就自动release库存 |