okwork
V2EX  ›  问与答

这个据说是蚂蚁金服推荐的订单生成算法, js 不是很熟,有人用 Python 翻译一下吗?

  •  
  •   okwork · Jul 13, 2018 · 4923 views
    This topic created in 3039 days ago, the information mentioned may be changed or developed.

    订单生成的算法以前用的要升级下,综合考虑简短、纯数字、易识别,唯一性这些情况

    image.png

    39 replies  •  2018-07-13 18:20:46 +08:00
    NoMustard
    NoMustard
    Jul 13, 2018
    1
    这不是 go 写的么...这函数就是获取时间变成一个字符串 有什么好翻译的
    GetDateNow 不写的明明白白么
    naix1573
    naix1573
    Jul 13, 2018
    2
    就别 Python 翻译了,我口语给你翻译一下吧
    定义一个字符串 sNow,依次+=年,月份,天,小时,分,秒,毫秒
    把这个值赋给那个 WIDout —— no
    luoway
    luoway
    Jul 13, 2018
    3
    不懂 js,英文得懂吧。GetDateNow 知道啥意思不
    okwork
    okwork
    OP
    Jul 13, 2018
    4
    @NoMustard @naix1573 汗,我看成是 js 写的,怎么就感觉看着怪怪 =_=||
    okwork
    okwork
    OP
    Jul 13, 2018
    5
    @luoway 我当 js 新的语法糖啦(ε=ε=ε=┏(゜ロ゜;)┛
    zlfera
    zlfera
    Jul 13, 2018
    6
    这就是 js
    freeznet
    freeznet
    Jul 13, 2018
    7
    @NoMustard #1 这不是 js 写的么。。。为啥说是 go 嘞?
    qiayue
    qiayue
    Jul 13, 2018❤️3
    8
    都有 document,getElementById 了,怎么就不是 js 了
    CFO
    CFO
    Jul 13, 2018 via Android❤️1
    9
    这个算法真有意思
    NoMustard
    NoMustard
    Jul 13, 2018
    10
    @zlfera @freeznet @qiayue 看错了..我的我的
    最近用 Go 写爬虫,goquery 也是 getElementById
    qiayue
    qiayue
    Jul 13, 2018
    11
    四位数年+月份+日期+小时+分钟+秒+毫秒

    订单数一多,绝对会重复,并不是多好的生成方式
    U7Q5tLAex2FI0o0g
    U7Q5tLAex2FI0o0g
    Jul 13, 2018
    12
    就算不懂 js,随便懂任何一门语言+懂英语的都看的懂什么意思吧。。。
    privatezcoding
    privatezcoding
    Jul 13, 2018
    13
    @qiayue 纠正一下 是 document.getElementById
    okwork
    okwork
    OP
    Jul 13, 2018
    14
    @zlfera
    @freeznet
    @qiayue

    楼上说是 go 的,不知道是什么意思

    getMonth() + 1 是什么作用?
    qiayue
    qiayue
    Jul 13, 2018❤️1
    15
    http://www.runoob.com/jsref/jsref-obj-date.html

    好好看手册,能用手册解决的就不要问人,手册里清清楚楚写了为啥要+1
    okwork
    okwork
    OP
    Jul 13, 2018
    16
    @littleylv 主要就是为什么要 getMonth() + 1 不确定什么作用,其他看看也知道的
    privatezcoding
    privatezcoding
    Jul 13, 2018❤️1
    17
    @okwork Java 里面 getMonth 是获取这个月是今年的第几个月份 从 0 开始的 所以要+1 修正
    我猜这里也是这个意思
    qiayue
    qiayue
    Jul 13, 2018
    18
    @privatezcoding 手误, 点打成逗号了
    ZY2071
    ZY2071
    Jul 13, 2018
    19
    老哥,这个只是个算时间的函数而已
    okwork
    okwork
    OP
    Jul 13, 2018
    20
    @ZY2071 是的,想多了,就是一个时间戳能搞定的事情,写了这么多行
    Quarter
    Quarter
    Jul 13, 2018 via iPhone
    21
    @okwork #4 这个就是 js,我也是醉了,go 的字符串是不支持修改的
    Quarter
    Quarter
    Jul 13, 2018 via iPhone
    22
    另外,这完全不是算法,就是时间,没意义,感觉还是会重复,蚂蚁金服是不可能用这个算法的,楼主是不是被骗了啊😂
    nihiue
    nihiue
    Jul 13, 2018 via Android
    23
    Date.now().toString(32)就得了,写这么半天
    okwork
    okwork
    OP
    Jul 13, 2018
    24
    @Quarter 哎 没办法,城里人忽悠农村人没写过 go 啊 O(∩_∩)O

    客户传过来的图片,说是那边工程师建议的,我开始用自增加+随机数混淆,因为订单不好识别,所以客户说按这个方案改,具体情况我也不是很清楚
    Quarter
    Quarter
    Jul 13, 2018 via iPhone
    25
    @okwork #24 告诉客户,他的工程师可以开除了😂
    FanWall
    FanWall
    Jul 13, 2018 via Android
    26
    @okwork #24 提出这个建议的工程师好坏的,建议扣工资
    Mogugugugu
    Mogugugugu
    Jul 13, 2018❤️1
    27
    chinvo
    chinvo
    Jul 13, 2018 via iPhone
    28
    提建议的这个人不是坏就是蠢

    还阿里用的是算法 = =
    redtea
    redtea
    Jul 13, 2018 via iPhone
    29
    哪有前端生成订单号的?
    rootsir
    rootsir
    Jul 13, 2018
    30
    这是什么订单方式??? 这是反面教材吧
    jevonszmx
    jevonszmx
    Jul 13, 2018
    31
    先不说这个是不是拿来做订单号的,就这函数定义也是有问题的啊,函数是 GetDateNow,结果里面竟然直接 dom 操作了。。。
    cccssss
    cccssss
    Jul 13, 2018
    32
    https://www.zhihu.com/question/19805896/answer/131710504

    生成订单号要安利一发某乎了。
    shinwood
    shinwood
    Jul 13, 2018
    33
    话说这个函数名称不是 GetDateNow 吗?与订单的关系体现在哪里?
    Suclogger
    Suclogger
    Jul 13, 2018
    34
    楼主是来骗金币的,鉴定完毕
    king2014
    king2014
    Jul 13, 2018
    35
    @okwork 因为 js 这个方法月份表示是 0-11 所以要真实的要+1
    king2014
    king2014
    Jul 13, 2018
    36
    其实这个还是无法保证唯一性的.
    auroraccc
    auroraccc
    Jul 13, 2018
    37
    @okwork getMonth 是从 0 开始的, 0-11 月
    GoPython
    GoPython
    Jul 13, 2018
    38
    不会吧,单纯的时间生成订单么? 量这么大,谁能保证没有两个人同一时刻下单?
    竟然没有用户 id 也能保证唯一嘛? 我是不相信的。
    TomatoYuyuko
    TomatoYuyuko
    Jul 13, 2018
    39
    我有一套祖传的算法卖给你要不要,可以通晓时空变幻,10 金币一份(滑稽
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1661 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 97ms · UTC 11:08 · PVG 19:08 · LAX 03:08 · JFK 06:08
    ♥ Do have faith in what you're doing.