Redian新闻
>
问个Design题,怎么设计网站上的“搜索”功能
avatar
问个Design题,怎么设计网站上的“搜索”功能# JobHunting - 待字闺中
u*p
1
如题,设计网站上的搜索功能,比如顾客要买书,请问这种怎么下手?
另外买的时候,那个cart要注意什么?
avatar
u*p
2
哪个大牛给说说吧,多谢
avatar
i*9
3
好大的题目,从产品上说需要先定义有哪些域
技术上定义搜索策略是一条线,定义 indexing pipeline是一条线。
考虑购物车之后,主要就是库存变化和 indexing pipeline 的关系。一般来说下单的
时候你必须保证有库存,但搜索的时候不保证搜出来的一定有库存。这就涉及库存这种
时间变化的数据在哪儿 cache, cache 如何更新的问题。

:如题,设计网站上的搜索功能,比如顾客要买书,请问这种怎么下手?
:另外买的时候,那个cart要注意什么?
avatar
u*p
4
面试的时候让设计一个网站的搜索功能,然后买东西cart怎么设计,我问是要OOD还是
system design,面试官没说话。然后问用的人多不多,TPS多少,说很少,就不知道具
体到底要问什么了。
对了库存这个我一直好奇,比如存货有9件,10个人在看,10个人把物品放入cart,最
后结账的时候肯定有一个人买不成,那这个库存是按付钱的时候扣除,还是什么时候?

【在 i*****9 的大作中提到】
: 好大的题目,从产品上说需要先定义有哪些域
: 技术上定义搜索策略是一条线,定义 indexing pipeline是一条线。
: 考虑购物车之后,主要就是库存变化和 indexing pipeline 的关系。一般来说下单的
: 时候你必须保证有库存,但搜索的时候不保证搜出来的一定有库存。这就涉及库存这种
: 时间变化的数据在哪儿 cache, cache 如何更新的问题。
:
: :如题,设计网站上的搜索功能,比如顾客要买书,请问这种怎么下手?
: :另外买的时候,那个cart要注意什么?

avatar
u*p
5
哪个大牛能再给具体说说吗?多谢啊
avatar
r*s
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 的大作中提到】
: 哪个大牛能再给具体说说吗?多谢啊
avatar
A*5
7

我认为是按付钱的扣,要不然所有人只加不买,就把其他想买的买家block了,而且一
般情况下默认为库存的data是accessible的,所以你本身掌握库存和确认购买的数量,
不需要考虑买家能否hold住物品。这个和amazon那种不一样,而且我听amazon的人说了
,他们也没用什么算法或者技术保证足够的库存,而是因为他们是amazon,卖家们会预
留一部分库存专门给amazon,这个数是定的,所以amazon不需要担心同一个商品在不同
的平台上卖,自己库存不足的问题

【在 u****p 的大作中提到】
: 面试的时候让设计一个网站的搜索功能,然后买东西cart怎么设计,我问是要OOD还是
: system design,面试官没说话。然后问用的人多不多,TPS多少,说很少,就不知道具
: 体到底要问什么了。
: 对了库存这个我一直好奇,比如存货有9件,10个人在看,10个人把物品放入cart,最
: 后结账的时候肯定有一个人买不成,那这个库存是按付钱的时候扣除,还是什么时候?

avatar
i*9
8
建立购买记录,扣钱,减库存必须是一个 transaction. 其他的事情都可以靠PM 去定
义。
你选好东西,确认订单的时候说没货了不是大问题,确认支付成功再发现没货麻烦就大
了。
从搜索开始到最后完成支付,每一步都有 churn rate, 真做产品的话要根据估算的
churn rate 算每一步的QPS,然后考虑那一步上要不要确认库存,以什么精度确认库存。

:面试的时候让设计一个网站的搜索功能,然后买东西cart怎么设计,我问是要OOD还是
:system design,面试官没说话。然后问用的人多不多,TPS多少,说很少,就不知道
具体到底要问什么了。
avatar
r*s
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多少,说很少,就不知道
: 具体到底要问什么了。

avatar
s*g
10
库存肯定只能付钱了才减
没人付钱的时候100个人都能放购物车
结账就比谁快了
结账flow刚启动你还可以再跑一次check看还有没有货

【在 u****p 的大作中提到】
: 面试的时候让设计一个网站的搜索功能,然后买东西cart怎么设计,我问是要OOD还是
: system design,面试官没说话。然后问用的人多不多,TPS多少,说很少,就不知道具
: 体到底要问什么了。
: 对了库存这个我一直好奇,比如存货有9件,10个人在看,10个人把物品放入cart,最
: 后结账的时候肯定有一个人买不成,那这个库存是按付钱的时候扣除,还是什么时候?

avatar
u*p
11
谢谢楼上各位大牛。我想在问问面试官出这题到底是要system design还是OOD? 我看网
上好多shopping cart的OOD答案。
avatar
u*p
12
好的,多谢啊

【在 A*******5 的大作中提到】
:
: 我认为是按付钱的扣,要不然所有人只加不买,就把其他想买的买家block了,而且一
: 般情况下默认为库存的data是accessible的,所以你本身掌握库存和确认购买的数量,
: 不需要考虑买家能否hold住物品。这个和amazon那种不一样,而且我听amazon的人说了
: ,他们也没用什么算法或者技术保证足够的库存,而是因为他们是amazon,卖家们会预
: 留一部分库存专门给amazon,这个数是定的,所以amazon不需要担心同一个商品在不同
: 的平台上卖,自己库存不足的问题

avatar
u*p
13
对了大家怎么判断是system design还是OOD?
avatar
i*9
14
要是互联网公司就是 system design, 要是传统公司的IT部门就是 OOD
互联网公司只要求最后的方案 work, 管你是 OO,还是过程还是FP。
有意义的对象设计自然体现在了数据库设计上,剩下的就是搞软件工程的人自 high 了

:对了大家怎么判断是system design还是OOD?
avatar
u*p
15
马鬃的design有时候是OOD有时候是system,分不清楚怎么办

【在 i*****9 的大作中提到】
: 要是互联网公司就是 system design, 要是传统公司的IT部门就是 OOD
: 互联网公司只要求最后的方案 work, 管你是 OO,还是过程还是FP。
: 有意义的对象设计自然体现在了数据库设计上,剩下的就是搞软件工程的人自 high 了
:
: :对了大家怎么判断是system design还是OOD?

avatar
J*n
16
不一定必须得是付钱了才减库存,这是一个产品经理来决定的问题
如果加入购物车就先hold住库存的话,要给购物checkout时间设置一个限制,例如5分
钟之内不完成付款就自动release库存
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。