首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
华为云
V2EX  ›  问与答

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

  •  
  •   okwork · 125 天前 · 2402 次点击
    这是一个创建于 125 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    image.png

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

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

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

    getMonth() + 1 是什么作用?
        15
    qiayue   125 天前   ♥ 1
    http://www.runoob.com/jsref/jsref-obj-date.html

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

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

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

    生成订单号要安利一发某乎了。
        33
    shinwood   125 天前
    话说这个函数名称不是 GetDateNow 吗?与订单的关系体现在哪里?
        34
    Suclogger   125 天前
    楼主是来骗金币的,鉴定完毕
        35
    king2014   125 天前
    @okwork 因为 js 这个方法月份表示是 0-11 所以要真实的要+1
        36
    king2014   125 天前
    其实这个还是无法保证唯一性的.
        37
    auroraccc   125 天前
    @okwork getMonth 是从 0 开始的, 0-11 月
        38
    GoPython   125 天前
    不会吧,单纯的时间生成订单么? 量这么大,谁能保证没有两个人同一时刻下单?
    竟然没有用户 id 也能保证唯一嘛? 我是不相信的。
        39
    TomatoYuyuko   125 天前
    我有一套祖传的算法卖给你要不要,可以通晓时空变幻,10 金币一份(滑稽
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2305 人在线   最高记录 3821   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 21ms · UTC 12:38 · PVG 20:38 · LAX 04:38 · JFK 07:38
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1