Clubhouse需要你解决的问题之三

书接前文,pm升到partner level后,打算再接再厉,把clubhouse推向全宇宙。 之前一个房间参考微信设置只能容纳500人,pm说500人太少了,应该能容纳5亿人。 dev一时间不知如何回应,只能拉出了张小龙:做产品不是要节制么。 pm:做产品没有一成不变的方法论,每个产品我们都要追问自己几个问题:你这个产品的底层逻辑是什么?顶层设计在哪?最终交付价值是什么?过程的抓手在哪?如何保证闭环?你比别人的亮点在哪优势在哪?你的思考和沉淀又是什么?你的独特价值在哪?(*) dev:独特价值在哪? pm:我们能容纳5亿人在一个房间,地球村我都嫌路远,我称之为地球房。 dev:可是我的技术能力可能实现不了这么高难度的服务,认真再想了下,以我的技术能力还是去掉可能二字。 pm:好,那就5000人吧,我已经让步了5个数量级了,可不能再讨价划价了哦。另外,考虑到你的技术能力,给你10%的冗余范围,就是你分布式环境下计数不用做到丝毫无误,高并发下从4500一下跳到5500再阻止人加入也可以,4500时就阻止人加入也可以。 dev:你是不是一开始就只想要5000人的房间。 pm:你知道你为什么还是Senior SDE么? dev:请指教 pm:这个功能deliver时,我跟你1:1 请问,如何完成这个功能,限制房间人数为5000人,超过5000人时自动阻止其余人加入。 *注: 此段子转自fenng

February 6, 2021 · 1 min · 17 words

Clubhouse需要你解决的算法题之二

书接前文,the coding guy delivered the feature of finding the closest friend in a timely manner. PM got new task from the leads team. They want to improve clubhouse users’ engagement. PM proposed the immediate idea that it would benefit the engagement if we can improve the joining rate of the rooms recommended to users. Dev said, I would prefer to join rooms with my closest friends in. That’s said, we can recommend rooms based on the closeness between the room and the user....

February 5, 2021 · 2 min · 360 words

Clubhouse需要你解决的算法题之一

Clubhouse大火,平台迅速聚集了大量用户,每个用户都有自己的profile,profile里除了自己的id,还会标注推荐人。现在产品经理提出一个要求,希望能研究任意两个用户的最近的共同好友在哪。程序员也不知道pm为什么要提这么个要求,但这个功能不算费事,所以程序员决定不与pm多做讨论,因为一般情况下,所谓讨论都沦为给pm扩充知识理清思路的过程。简化起见,profile定义如下,完成TODO,注意,这个API可能会被多次调用。 class Profile { // Id of this profile. public String id; // Id of the person who nominated this person. public String nominatedBy; } public class Clubhouse { public Clubhouse(List<Profile> clubPool) { // TODO ? } public Profile getClosestCommonFriend(Profile a, Profile b) { // TODO } }

February 5, 2021 · 1 min · 48 words

俱乐部会所火了

Clubhouse(ch)几乎是一夜爆火,窃以为多少与Elon Musk推荐有关。社交产品几乎已成定居的今天,ch是切中了什么用户痛点,能病毒式传播开来是个有趣且值得研究的对象。 ch目前是邀请注册制,每个人可以邀请两人,那两人又可以分别邀请两人,以此类推。注册后,有一些话题和平台上用户的推荐,可以选择关注。平台会根据你的关注在应用首页展示相关的房间(room)。房间是这个app最大的特色,真正的信息交流发生的场所。房间里用户分成两波,一波是可以直接发言,这波人成为房间主持人(room moderators),另一波则需要举手得到房间主持人的批准才能发言。这非常类似大型会议现场,台上嘉宾,台下观众。主要是听嘉宾畅聊,但观众也可以举手示意得到允许后提问发言。ch另一个特点是交流介质是实时语音,纯直播,无记录,错过不可回看。所以房间主持人可以预告直播时间,你如果关注了此人,ta的预告会置顶你的应用首页。 就是这么一个产品,平平无奇。有人说像qq语音室,有人说像早期知乎,有名人或叫大v入驻,搞邀请制,逼格高,让草根用户与大v有了同台(准确讲是同房间不同台)聊天的满足感。或许都对,文字,语音和视频作为社交介质,都有其特点,不同人也各有偏好,没什么争论必要。邀请制也不是独此一家,能吸引到大v的却不多。 脸书,推特,微博像无界广场,虽有大v,但任何人都可在任何地方任何时间不加节制发言,只要不被夹。微信朋友圈像客厅,面向熟人发言,有所节制但受众有限。ch找了个中间地带,有限制的广场,虽然名字叫room。每个人都可以创建房间,房间可面向所有人也可以准入制,这把受众范围一下子推向了全平台的用户。房间里主持人控制下的台上台下又限制了一定的发言自由,同时直播式的语音交流带来的面向一群人发言的仪式感,两者结合有效减少甚至避免了现在主流社交平台无处不在的放肆言论。 社交媒介更新换代太快,人类却没能适应这么快。把本不属于一个圈层的芸芸众生推到一个平台,还是异步文字交流,结果更多的是牛头不对马嘴接着升级到仇恨敌视,而不是我们所希冀的不同的思想碰撞出火花。既然步子太大扯到了,那么退一步,牺牲点时空的便捷性(定时定点直播),来一场更直接,有限制,还有点仪式感的交流,是不是值得探索下实验下? 所以,ch与其说切中了用户痛点,不如说切中了时代脉搏。

February 4, 2021 · 1 min · 8 words

动态规划系列(1)

01背包问题(01 backpack problem) Problem Given N items and a bag of weight capacity W. Each item has weight w[i] and value v[i]. What’s the most value this bag can hold? E.g., N = 5, W = 10. w = [1 2 3 4 5], v = [5 4 3 2 1] Output: 14. Explanation: Choose item 1 2 3 4 whose total weight is 10 and total value is 14. Solution dp[i][j] := the most value to get if taken from item [1:i] and weight <= j....

February 4, 2021 · 2 min · 321 words