V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kcats
V2EX  ›  分享发现

小米这回丢人了哈哈哈哈?

  •  
  •   kcats · 2018-11-16 20:15:41 +08:00 · 8494 次点击
    这是一个创建于 1981 天前的主题,其中的信息可能已经有所发展或是发生改变。
    第 1 条附言  ·  2018-11-17 19:55:00 +08:00
    看到评论区有人没看代码就开水, 感觉有点无脑发帖了.

    事实是从这个人的 twitter 截图看逻辑上是没有毛病的, 所以应该英国佬都被这货耍了. 但是感觉又不好意思, 所以矛头现在是指向了小米没有提示这个 1 元(镑)抢购 的库存只有 10 台(一说是 3 台). 然后小米道歉说没有解释清楚, 会进行下一波活动, 然后英国佬们就在小米的推特上留言说再来一次也不过是 3 台机器罢了.

    https://twitter.com/XiaomiUK_/status/1060974435820359680
    51 条回复    2018-11-17 19:33:04 +08:00
    mmdsun
        1
    mmdsun  
       2018-11-16 20:32:07 +08:00 via Android
    iConnect
        2
    iConnect  
       2018-11-16 20:37:09 +08:00 via Android   ❤️ 3
    后台连假装一下都不愿意了
    jydeng
        3
    jydeng  
       2018-11-16 20:37:31 +08:00
    这波药丸
    leoojiang
        4
    leoojiang  
       2018-11-16 20:43:47 +08:00 via iPhone
    哈哈哈哈 耍猴被揭穿
    x86
        5
    x86  
       2018-11-16 20:45:21 +08:00 via iPhone
    雷军回应:are you ok ?
    ballshapesdsd
        6
    ballshapesdsd  
       2018-11-16 20:47:08 +08:00
    笑死
    kawkeye
        7
    kawkeye  
       2018-11-16 20:47:28 +08:00
    Are you ok?
    jdgui
        8
    jdgui  
       2018-11-16 20:48:17 +08:00
    气氛有点微妙
    duvalier
        9
    duvalier  
       2018-11-16 20:50:28 +08:00 via iPhone
    丢人丢到国外了
    Ultraman
        10
    Ultraman  
       2018-11-16 20:56:07 +08:00
    kcats
        11
    kcats  
    OP
       2018-11-16 21:09:02 +08:00 via Android
    好像是说其实是真的抢,但是只有 3 台机器?
    laoyur
        12
    laoyur  
       2018-11-16 21:09:22 +08:00
    中文注释也阻挡不了外国友人,哈哈
    lekai63
        13
    lekai63  
       2018-11-16 21:33:12 +08:00 via iPhone   ❤️ 1
    论用中文编程的重要性?
    yshtcn
        14
    yshtcn  
       2018-11-16 21:42:42 +08:00 via iPhone   ❤️ 7
    耍猴的确挺丢人的

    但是这个代码其实没什么问题。只是前端做好的返回提示。并不能确认后端没有查询
    yshtcn
        15
    yshtcn  
       2018-11-16 21:46:58 +08:00 via iPhone
    你如果看小米国内那个排队,也差不多。

    不也有买到手机的么……估计小米想着输出一波先进经验
    F1024
        16
    F1024  
       2018-11-16 21:49:04 +08:00
    送三台是有点扣 主要是最开始没说明送几台
    iEverX
        17
    iEverX  
       2018-11-16 23:02:33 +08:00   ❤️ 1
    代码没啥问题吧
    ys0290
        18
    ys0290  
       2018-11-16 23:07:56 +08:00 via iPhone
    用黑五美国大叔超市抢购来说
    一般的玩儿法是开门,买家涌入,超市搬空,然后 SOLD
    小米的玩儿法是开门,买家涌入,计时三分钟,然后 SOLD
    maemual
        19
    maemual  
       2018-11-16 23:09:20 +08:00 via iPhone   ❤️ 1
    楼上很多都没真的看代码吧,从这个 JS 里根本看不出来什么问题
    feverzsj
        20
    feverzsj  
       2018-11-16 23:28:43 +08:00
    在国内叫耍猴,在国外叫虚假广告,罚得很严的
    feverzsj
        21
    feverzsj  
       2018-11-16 23:30:19 +08:00
    @ys0290 小米是让你在乌漆墨黑的空超市里乱摸一通,然后等人出来的时候,随机挑选三个人送手机
    Biwood
        22
    Biwood  
       2018-11-17 00:01:09 +08:00
    @yshtcn
    @maemual
    还有另外两张图呢,发推的人应该比较细心,特地在计时完成的时候打开调试栏,没有看到服务端请求就直接在前端显示“卖完了”,显然是造假
    yexm0
        23
    yexm0  
       2018-11-17 01:38:44 +08:00
    哈哈..把外国佬当猴子耍
    May725
        24
    May725  
       2018-11-17 02:36:56 +08:00 via iPhone
    @Biwood 估摸着服务端应该卖完了,不用在请求,省事儿。
    yuzo555
        25
    yuzo555  
       2018-11-17 03:14:03 +08:00
    @Biwood
    不能排除 WebSocket 的可能性...
    zhouyut001
        26
    zhouyut001  
       2018-11-17 04:21:49 +08:00
    猴王,are u ok?
    yshtcn
        27
    yshtcn  
       2018-11-17 04:26:30 +08:00 via iPhone
    @Biwood 我的推测是这个人并没有第一时间去抓网络交互。(一般人也不会想到第一时间保留证据)此时输出的页面已经不包括向后端查询了。

    当然这只是推测,会这么推测也是因为小米国内那个排队系统对服务器压力的缓解,真的是大师级别的。(虽然淘宝聚划算,双 11 才是硬功夫)
    Perry
        28
    Perry  
       2018-11-17 04:42:36 +08:00   ❤️ 2
    ryan18
        29
    ryan18  
       2018-11-17 08:22:34 +08:00 via Android   ❤️ 1
    下面有人回应:
    The "£1 flash sale" used our flash sale mode. Of the thousands who clicked "buy" simultaneously, the tie-breaker is done by selecting the winners randomly. Winners will access inventory to add to cart and proceed, which is why there was no call to check stock limit on the page.
    owencodeing
        30
    owencodeing  
       2018-11-17 09:16:37 +08:00
    3Q 油? are you ok ?
    KuzhiBake
        31
    KuzhiBake  
       2018-11-17 09:29:56 +08:00 via Android
    请看下方评论再谨慎回复。
    jptx
        32
    jptx  
       2018-11-17 09:36:53 +08:00
    建议也看下国内的分析 https://weibo.com/1134179710/H2WROlM7l
    chinvo
        33
    chinvo  
       2018-11-17 09:39:26 +08:00 via iPhone
    根据某个自称小米员工的人的回复,点购买的时候服务器抽奖,中了的倒计时结束就能买,没中的倒计时结束显示售完

    所以依旧是耍猴
    ooooo
        34
    ooooo  
       2018-11-17 09:52:10 +08:00
    国内的猴子确实还是猴子
    但是国外的猴子都成精了
    autoxbc
        35
    autoxbc  
       2018-11-17 09:53:48 +08:00 via iPhone   ❤️ 2
    总结一下就是,按钮点下去小米就知道你出局了,但是静静的看着你智障一样傻等几分钟,此处应该有表情包
    ooooo
        36
    ooooo  
       2018-11-17 09:57:54 +08:00
    @ooooo

    猴精猴精得
    比雷猴还精
    这下玩砸了吧
    YLGG
        37
    YLGG  
       2018-11-17 09:57:54 +08:00
    小米一直不都是这样耍的吗?抢雷大炮个 B ?
    pheyer
        38
    pheyer  
       2018-11-17 10:18:47 +08:00
    昨天看到一个微博说法是,在整点抢购前进行预约时其实就决定了你是否能中奖了
    cherbim
        39
    cherbim  
       2018-11-17 10:20:30 +08:00 via iPhone
    ~o(〃'▽'〃)o,小米不一直这样耍猴么,不过外国猴子不像中国猴子那么好欺负
    cydysm
        40
    cydysm  
       2018-11-17 11:39:36 +08:00 via Android
    @jptx 我先看了他微博 才知道这件事😂
    zjsxwc
        41
    zjsxwc  
       2018-11-17 16:25:49 +08:00
    我觉得小米这次没问题,被黑的有点冤,

    因为技术上秒杀在 1 秒内结束的话,不发前端请求可以缓解服务器压力,因为每个人浏览器时间有很大可能不一致

    然后在 1 秒内点击的都进入正常排队秒杀逻辑,

    要我实现的话我也会这么实现。
    olo9527
        42
    olo9527  
       2018-11-17 17:01:56 +08:00 via iPhone
    不是洗地,国内的企业到国外,真合规的能有几个?都是套路!
    vipfts
        43
    vipfts  
       2018-11-17 17:15:37 +08:00
    耍猴这个词真是智慧的结晶
    crab
        44
    crab  
       2018-11-17 17:20:53 +08:00
    @olo9527 确实。遇到过盛大搞游戏活动页面也这样。有的会假装下,有的直接前台那个。
    oneonesv
        45
    oneonesv  
       2018-11-17 18:50:04 +08:00
    看了下,他贴的代码证明不了什么,也并没有什么问题,相反 Twitch 这位估计对代码的理解还在小学生水平

    评论里有人发了这个微博


    1. Phil Williams 对代码的理解为什么是错的

    上面代码中是用户访问活动页面时候执行的, 但是根据不同访问时刻,执行不同的分支, 代码中 setStatus() 有三个分支, “该场次未开始”, “该场次进行中”, “该场次结束”, 而 v.is_cos 是页面里自带的变量, 表示访问页面时库存是否为空, false 表示有库存, true 表示没库存. “该场次未开始” 时用户访问页面等待秒杀, 此时用户页面里 v.is_cos=false, 表示有库存, 此时用户能参与活动, 肯定不会显示 Out of Stock. “该场次进行中”时用户访问页面,此时 v.is_cos=false, 也不会显示 Out of Stock, v.is_cos=true 表示没库存, 显示 Out of Stock, 不能秒杀也是完全正确的,不用发送额外网络请求。Phil Williams 以为必须单独发送一个请求, 再调用 setStatus()更新按钮和文字, 这个理解是错误的。Phil Williams 对代码的理解根本就是错的



    2. Phil Williams 抓取的网络请求的方法也是错的

    Phil Williams 的网络请求, 也是错的, 他根本没有显示点击”秒杀”按钮时的请求, 只有一个可能,就是他是活动开始以后, 已经没有库存的时候抓取的. 这个时候, 根本不需要另外发请求到小米服务器查库存, 因为在他访问页面里面已经随着一个变量 v.is_cos=true 让页面正常的显示文字 Out of Stock 了. 如果正常的活动前打开页面的用户, 可以点击秒杀按钮, 此时, 用他的工具, 是会发现有一个网络请求发到小米服务器参与秒杀的。




    摘自微博:
    https://weibo.com/ttarticle/p/show?id=2309404307029442298271
    oneonesv
        46
    oneonesv  
       2018-11-17 18:50:44 +08:00
    @oneonesv Twitter
    potcode99
        47
    potcode99  
       2018-11-17 18:51:51 +08:00
    仔细看下下面的评论吧,好多人不看就开始嘲讽了
    oneonesv
        48
    oneonesv  
       2018-11-17 18:55:12 +08:00
    不过小米可能在页面引导做的并不好,再加上抢的很快,备货也不多,被骂也很正常了...
    janxin
        49
    janxin  
       2018-11-17 18:56:22 +08:00
    用户说小米耍猴本来也是说的这么回事

    当然大促策略国内公司也都是这么做的,国外行不行的通就看该国国情了
    tmly200
        50
    tmly200  
       2018-11-17 19:17:56 +08:00 via Android   ❤️ 1
    中文编程不能再等!
    hwdef
        51
    hwdef  
       2018-11-17 19:33:04 +08:00
    之前 it 之家发了帖子,后来收钱删了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   911 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 21:02 · PVG 05:02 · LAX 14:02 · JFK 17:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.