这个据说是蚂蚁金服推荐的订单生成算法, js 不是很熟,有人用 Python 翻译一下吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
okwork

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

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

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

    image.png

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

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

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

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

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

    客户传过来的图片,说是那边工程师建议的,我开始用自增加+随机数混淆,因为订单不好识别,所以客户说按这个方案改,具体情况我也不是很清楚
    Quarter
        25
    Quarter  
       Jul 13, 2018 via iPhone
    @okwork #24 告诉客户,他的工程师可以开除了
    FanWall
        26
    FanWall  
       Jul 13, 2018 via Android
    @okwork #24 提出这个建议的工程师好坏的,建议扣工资
    img src="https://cdn.v2ex.com/avatar/d92e/7173/175311_normal.png?m=1759030105" class="avatar" border="0" align="default" alt="Mogugugugu" data-uid="175311" />
        27
    Mogugugugu  
       Jul 13, 2018   1
    chinvo
        28
    chinvo  
       Jul 13, 2018 via iPhone
    提建议的这个人不是坏就是蠢

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

    生成订单号要安利一发某乎了。
    shinwood
        33
    shinwood  
       Jul 13, 2018
    话说这个函数名称不是 GetDateNow 吗?与订单的关系体现在哪里?
    Suclogger
        34
    Suclogger  
       Jul 13, 2018
    楼主是来骗金币的,鉴定完毕
    king2014
        35
    king2014  
       Jul 13, 2018
    @okwork 因为 js 这个方法月份表示是 0-11 所以要真实的要+1
    king2014
        36
    king2014  
       Jul 13, 2018
    其实这个还是无法保证唯一性的.
    auroraccc
        37
    auroraccc  
       Jul 13, 2018
    @okwork getMonth 是从 0 开始的, 0-11 月
    GoPython
        38
    GoPython  
       Jul 13, 2018
    不会吧,单纯的时间生成订单么? 量这么大,谁能保证没有两个人同一时刻下单?
    竟然没有用户 id 也能保证唯一嘛? 我是不相信的。
    TomatoYuyuko
        39
    TomatoYuyuko  
       Jul 13, 2018
    我有一套祖传的算法卖给你要不要,可以通晓时空变幻,10 金币一份(滑稽
    About     Help     Advertise     Blog     API     FAQ     Solana     897 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 92ms UTC 22:23 PVG 06:23 LAX 15:23 JFK 18:23
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86