V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
honkew
V2EX  ›  程序员

你们相信这是十几年的程序员写的代码吗?!

  •  1
     
  •   honkew · 2025 年 8 月 8 日 · 17636 次点击
    这是一个创建于 173 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近遇到个事想和大家分享一下。 我们业务最近出了一个 bug

    我这边通过同事的接口获取快递面单 pdf 具体流程是 [包裹号] -> [资源 ID ] -> [快递面单 pdf ]

    也就是说: 拿着包裹号请求接口,拿到资源 ID 再用资源 ID 请求下载地址,获取 PDF

    然后发现奇怪的事情,包裹 A 和 包裹 B 获取到的快递面单串了,下载下来是一样的单号 资源 ID res_id 是 32 位数,相同一秒获取到的 pdf 就是一样的,猜测是采用 md5(time()) 这种方式命名文件

    然后和 同事 A 反馈了该问题,同事 A 反应已经修复 接下来一段时间还是出现这种问题会导致仓库发错货

    老板问我咋回事,我又去查日志发现同一时间 res_id 还是会一样的,这次精度有所提升不是秒了,大概精确到后面两位的样子

    然后和老板说了一下,是因为资源 id 还是一样的 这里他还改了一下运单文件在他服务器上的保存的命名方式,这个改动压根解决不了这个问题 然后同事 A 说他已经改了,没问题的,你不应该请求速度这么快 我直接整个大无语

    然后开会 我说建议使用 sha1(运单号) 的方式生产资源 id ,或者使用 UUID ,还没有说完直接反驳 说不安全巴拉巴拉,不安全可以 accessToken 验证啊,外部访问不到不就可以了 然后又说改算法耗费服务器性能巴拉巴拉的,老板又好声好气的让他想办法改一下 最后他改了,改成 md5(microtime(true))

    然后今天又又又出现这个 bug 了,老板又跑过来问我,我已经要疯了 这个问题前前后后几个月都没有弄好

    同事 A 是那种反驳性型人格,而且比较自大那种,我快待不下去了

    140 条回复    2025-08-11 11:11:42 +08:00
    1  2  
    EchoTong
        101
    EchoTong  
       2025 年 8 月 8 日
    你为什么要做这个中间人?不让老板直接找他?
    Fallever
        102
    Fallever  
       2025 年 8 月 8 日
    工作中我总是秉信一个观点: 什么人干什么事。
    事能不能做好跟工作了多久关系并不正相关
    imokkkk
        103
    imokkkk  
       2025 年 8 月 8 日
    @lixining uuid 现成的 API 成熟的实现,为啥还非要自己搞哩
    ruke
        104
    ruke  
       2025 年 8 月 8 日
    懒一点 直接用 Id 来 hash
    pweng286
        105
    pweng286  
       2025 年 8 月 8 日
    @honkew #2 他找你你就找老板,让老板治他
    jzphx
        106
    jzphx  
       2025 年 8 月 8 日
    才疏学浅,才知道还有这种生成 id 的方式
    hefish
        107
    hefish  
       2025 年 8 月 8 日
    你得学会甩锅。 光跟我们讲问题有啥用。
    SanjinGG
        108
    SanjinGG  
       2025 年 8 月 8 日
    @xz410236056 #59 这种领导纯纯逗逼吧,我顶多排查下问题是那里的,上游改好再跟进,照常到点下班
    SanjinGG
        109
    SanjinGG  
       2025 年 8 月 8 日
    @evan1 #71 你直接让后端把数据库账号密码给你,让他滚蛋把
    Wandefu91
        110
    Wandefu91  
       2025 年 8 月 8 日
    @foufoufm 治不了他,只能远离他
    Steaven
        111
    Steaven  
       2025 年 8 月 8 日
    php 不是有 uniqid() 这个方法么
    lthon
        112
    lthon  
       2025 年 8 月 8 日
    @ryd994 开机开始计算,那么重启不就会重复了吗?
    ryd994
        113
    ryd994  
       2025 年 8 月 8 日 via Android
    @lthon 要配合机器 ID 和其它数据生成,这些可以在程序启动时存到内存。

    调试性能问题可以单用 TSC
    DefoliationM
        114
    DefoliationM  
       2025 年 8 月 8 日
    你不是老板就不要管他,诚心给自己添堵吗?他的问题直接让他自己解决,解决不了就上报说是他问题。老板再问你,你直接三个人拉个群 @他。
    opengg
        115
    opengg  
       2025 年 8 月 9 日 via Android
    神经病啊,hash time 作为业务 key
    opengg
        116
    opengg  
       2025 年 8 月 9 日 via Android
    你们老板是不是拿同事的工资上班啊?你同事是不是才是公司大股东啊?
    老板还得跟下属好声好气哄着他干活?干不了来找你?
    这公司是要玩啊
    AkinoKaedeChan
        117
    AkinoKaedeChan  
       2025 年 8 月 9 日 via Android
    Hmm ,都在讨论怎么生成随机 ID ,我觉得这包裹号好像就是唯一的?
    abolast
        118
    abolast  
       2025 年 8 月 9 日
    @honkew 反驳性人格这个词用的好,可以用来形容无知又傲慢的人,他们的狭隘的知识储备来理解这个世界,然后得出这个世界好菜
    abolast
        119
    abolast  
       2025 年 8 月 9 日
    @coderzhangsan 真的有这样愚蠢的。有个干了不少年的后端,还嘲笑过我在 alpine 里面用 apk 呢而不是 apt-get ,然后觉得我太菜了,笑死我家一大堆路由器的包管理器都是 apk ,无知傲慢是可怕的
    julyclyde
        120
    julyclyde  
       2025 年 8 月 9 日
    @Mithril 用 uuid 也避免不了碰撞的。无限的输入产生有限的输出,那必然会碰撞,所有定长输出的都不适用
    abolast
        121
    abolast  
       2025 年 8 月 9 日
    @DinnyXu 这看品德素养,我(运维)都用数据复现或者直接告诉他(后端)代码要怎么写能解决,25 年至今打脸不下于 20 次,最后他情绪越来越不稳定,每次对接都直接大声狂吼狂吠我。没关系,我给自己下了个禁制就是绝不看他代码具体内容,在他这我只是个运维
    jiuhuicinv
        122
    jiuhuicinv  
       2025 年 8 月 9 日
    ID 自增?
    whisper1225
        123
    whisper1225  
       2025 年 8 月 9 日
    唯一标志的问题,也是他的问题,不能惯着,这是底线,不然以后有你受的,但是要注意斗争方式
    silyboy
        124
    silyboy  
       2025 年 8 月 9 日
    人生艰难,别内耗, 自己权衡要不要多走一步. 例如:你已经给出了方案建议, 再进一步就是验证方案的可行性和性能影响. 摆数据讲事实.
    qiany
        125
    qiany  
       2025 年 8 月 9 日
    之前写 java 的时候用时间戳生成 id 在并发下很容易出现重复的,你这个不如直接用包裹号加上固定标识
    riceball
        126
    riceball  
       2025 年 8 月 9 日
    ❌ md5(microtime(true)) 对这样短的字符串冲突比较大,而且耗资源.

    ✅ microtime + nanoID: https://github.com/hidehalo/nanoid-php (偷懒用)

    这个其实是服务器端开发,优化要找到要点,变化的点,然后加顺序号。其他无论如何都要增加额外开销,只是大小不同。
    devtk
        127
    devtk  
       2025 年 8 月 9 日
    @honkew #2 投诉大领导啊,你搞不定的人,那必须得上级来治理啊,不然要领导干什么
    uuundefined
        128
    uuundefined  
       2025 年 8 月 9 日
    加锁一个自增的计数就是唯一值了。用毫秒适合并发低的场合,还搞 32 位那么长
    SwaggyMacro
        129
    SwaggyMacro  
       2025 年 8 月 9 日
    直接跟领导屌他,臭鲨臂
    esee
        130
    esee  
       2025 年 8 月 9 日
    前面加多一个短的随机字符串应该就没问题了
    skipwitit
        131
    skipwitit  
       2025 年 8 月 9 日 via iPhone
    你们能在一个地方相处 水平也高不到哪里去
    duan602728596
        132
    duan602728596  
       2025 年 8 月 9 日
    哎,我这还遇到明文密码直接从接口里返回来的呢
    soulflysimple123
        133
    soulflysimple123  
       2025 年 8 月 9 日
    id 不是用雪花算法吗,这都是很成熟的东西
    xxb
        134
    xxb  
       2025 年 8 月 10 日 via iPad
    包裹和同事都用 A 命名了,是不是应该使用 uuid 🐶
    unics
        135
    unics  
       2025 年 8 月 10 日
    如果你是乙方,这种事情就是家常便饭,甲方永远不会认为自己出错,总是让乙方修改来适配甲方的错误。
    mingtdlb
        136
    mingtdlb  
       2025 年 8 月 10 日
    你这种公司环境,一般混着就行,别想着做好,每次配合排查,证据拿出来,指出问题不在自己这

    当然如果你能力强,老板又是有魄力 大方的那种,愿意给你升值加薪,那你可以干他。很明显 你这个老板没魄力,把他干掉,没人顶他的位置。

    如果格格不入,那只能自己走,你很难推动解决的。
    mingtdlb
        137
    mingtdlb  
       2025 年 8 月 10 日
    讲好听点,是研发。难听点,一大帮人都是调参侠、调包仔,他为什么反驳,因为他在自卫啊,水平臭的不行,不自卫按你的方案,他实现不了不是完犊子了。
    realpg
        138
    realpg  
    PRO
       2025 年 8 月 10 日
    @honkew #2
    你就不会写一个完整的 外行都能看明白的问题分析报告给老板?
    就这个帖子里讲的这些要点 为什么出现这个问题
    为什么是同事的问题 为什么不应该用 hash 作为这个 比如 4 楼的答案 形成一个简洁 可找第三方验证的书面报告
    5 分钟都用不了 你老板也有能力找一个他认可的技术人员看这个报告说的对不对

    不要自己给自己做证据支撑
    spritecn
        139
    spritecn  
       2025 年 8 月 11 日
    华为 JDK 示例里很多全局变量 ,比如 callId,smsId,哈哈哈哈,抄了就踩坑
    DinnyXu
        140
    DinnyXu  
       2025 年 8 月 11 日
    @abolast 正常的,我之前就是遇到过这种人,而且还是我们小组 leader ,打脸次数多了虽然他脸皮够厚,但是他的口碑差了啊,等到裁员那天,他就是先走的那个,我小组 leader 上次裁员已经被裁了,咱干好自己的,这种鸟人远离就行
    1  2  
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3089 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 13:31 · PVG 21:31 · LAX 05:31 · JFK 08:31
    ♥ Do have faith in what you're doing.