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

一般来说,开源代码的质量和水平是不是比公司内的商业代码要优雅?(大型项目)

  •  
  •   SGL · 48 天前 · 4196 次点击
    这是一个创建于 48 天前的主题,其中的信息可能已经有所发展或是发生改变。
    当然,这仅仅是我作为底层码农接触来看,目前还没有机会进入顶级公司看内部高级项目,无法对比。
    41 条回复    2025-08-04 14:22:12 +08:00
    mxT52CRuqR6o5
        1
    mxT52CRuqR6o5  
       48 天前
    都有好有坏的,没法给一个确定性的结论
    Gilfoyle26
        2
    Gilfoyle26  
       48 天前
    一般知名的开源项目的代码和规范是优于公司内部的代码的。
    liu731
        3
    liu731  
    PRO
       48 天前
    看过一位大拿写的商用 C/S ERP 代码,优雅的不行。但是换人后就断层了。我想开源项目作者掌控审批权的话会跟优雅一点~

    By the way: 能赚钱的代码就是好代码
    duanxianze
        4
    duanxianze  
       48 天前
    并不
    rensuperk
        5
    rensuperk  
       48 天前
    看人
    ooo4
        6
    ooo4  
       48 天前
    有些商业项目的业务逻辑和流程也是很复杂的,但他的代码确实不一定优雅
    bawanag
        7
    bawanag  
       48 天前
    基本上都会比公司内部的好很多,毕竟是脸面,大公司内部代码很多也是一团乱麻,也不是程序员太菜了主要是公司结构引起的,不出问题就不是问题
    maocat
        8
    maocat  
       48 天前   ❤️ 1
    之前捣鼓过 dify 源码,现在又在看 coze 的

    dify 给我感觉就是屎,解决问题的方式永远是在外边包一层,如果解决不了,就多包几层,比如工作流的运行,这玩意难调试(当然和 Python 也有关系),这个屎山现在堆了两年多,问题越来越难改,比如这个 https://github.com/langgenius/dify/issues/15012 关联了一大堆相关的问题,3 月发现的问题,摆烂到现在
    ljkgpxs
        9
    ljkgpxs  
       48 天前
    商业代码鱼龙混杂,不是所有的都优雅,特别大型项目,烂的程度没有下限,毕竟一个大项目可能会经历几十年 N 多人参与,有的代码看了想问候他祖宗
    woodfizky
        10
    woodfizky  
       48 天前
    你知道 redis 的某个版本的官方 Python SDK ,连接较旧版本的 redis 服务器,使用新版本才有的方法的时候,报的错是什么嘛?
    SyntaxError 。某次我就踩了这个坑,发布到生产,用某个 redis 方法报语法错误,想破头都想不明白为什么测试环境没这个问题,最后发现是服务器版本不一致。一般人看到语法报错谁能想到是服务器版本不一致呢?

    你说到底是这个开源的 Python SDK ,官方写的不好呢,还是说 redis server 写的不好呢?

    当然要比烂还有更烂的代码,开不开源并不能代表代码质量好不好。
    写的项目,有健壮性,容易维护,可读性好,性能好,稳定,那才是质量好。
    NessajCN
        11
    NessajCN  
       48 天前
    范围限定在同样级别的大项目的话
    确实如此
    毕竟一个要给人看另一个只有自己看
    个人猜测(但是基本可以肯定),Linux 源码要比 Windows 源码优雅很多倍
    kakki
        12
    kakki  
       48 天前
    知名项目可能性比较大,毕竟别人真能看得见源码.
    guanzhangzhang
        13
    guanzhangzhang  
       48 天前
    肯定会的,因为要写 readme ,doc ,Makefile ,还有各种场景的介绍。
    内部项目都是屎山,很多东西没有都要去递归问一堆人,而不能在项目代码仓库里找到
    gorvey
        14
    gorvey  
       48 天前
    开源项目,至少没有排期压力,屎山代码等外部因素影响
    比公司项目好那是应该的
    salmon5
        15
    salmon5  
       48 天前
    必须的,企业闭源项目,1 ,能用就行; 2 ,有情怀的程序员比例少的,很多也是完成需求,草草结束,代码烂不烂,谁在乎?也没人关心
    但是如果开源的话,代码质量太差,肯定没有脸面
    PiersSoCool
        16
    PiersSoCool  
       48 天前
    越好用越有价值的项目,屎山代码可能越多

    如果没啥人用或者没啥价值的,一般都比较优雅
    msg7086
        17
    msg7086  
       47 天前   ❤️ 1
    开源软件能入得了大众的眼睛的,早就已经被筛选过了。
    你只看到了最优秀的那 0.1%的开源项目,剩下还有 99.9%那质量可就难说了。
    totoro52
        18
    totoro52  
       47 天前   ❤️ 1
    我见过挺多烂代码的开源的,特别是阿里的...
    wnanbei
        19
    wnanbei  
       47 天前
    @woodfizky 你为啥理解不了?

    你链接了老版本 redis ,调用了新版本才有的命令。那对于接收到命令的老版本 redis 来说,你不就是用了一个错误的语法吗?
    Chuckle
        20
    Chuckle  
       47 天前
    开源项目要是也和公司商业项目一样,换人、换核心开放、人员流动大,那也一样 shi ,而且热门的开源项目,本身就是经过广大程序员层层筛选后的精华
    anUglyDog
        21
    anUglyDog  
       47 天前
    开源项目是技术主导的,且真的会由单一负责人进行认真 Code Review ,而公司的恰恰相反,非技术主导,非单一负责人,不认真。
    tianzi123
        22
    tianzi123  
       47 天前
    公司项目,一般刚开始都还可以,但接手的人多了就乱了,而且一般都是打补丁维护,导致越来越乱,毕竟不可能大规模改和重构,因为没人想背锅
    foolishcrab
        23
    foolishcrab  
       47 天前
    @maocat coze 的代码水平比 dify 起码高三个档次
    himself65
        24
    himself65  
       47 天前
    一般规律就是离钱越远的项目(无论开源)代码质量越高
    woodfizky
        25
    woodfizky  
       47 天前
    @wnanbei
    关键官方自己写的 SDK 完全可以在连接 redis 服务器之后获取 redis 服务器版本。
    如果尝试在旧服务器上执行新版本的方法,那完全可以在执行之前就抛出类似 NotImplementedError 或者 NotSupportedError 。
    连官方文档都能详细到某个方法甚至是某个方法的某个参数在哪个 redis 版本引入的,为什么官方 Python SDK 反而没有去做这个功能?
    moudy
        26
    moudy  
       47 天前
    码农高天不是做过两期开源代码公开点评,后面不敢做了,你猜为啥。
    ww2000e
        27
    ww2000e  
       47 天前
    可能同一个人白天在公司写的公司的,晚上回家写开源的。。
    man2vec
        28
    man2vec  
       47 天前
    @liu731 代码好不好跟赚不赚钱有啥关系?
    Dlad
        29
    Dlad  
       47 天前
    elastic search 代码优雅的了吗?
    (没看过源码,这么多年配置迁移熏陶,猜的)
    gaogaotiantian
        30
    gaogaotiantian  
       47 天前 via iPhone
    @moudy 所以是为啥?
    wnanbei
        31
    wnanbei  
       47 天前
    @woodfizky 为一个几乎不怎么出现的场景,且只是报错 err 人性化的问题,在所有命令每次执行前加一个判断?这就是你觉得的代码质量和水平吗?
    aeron
        32
    aeron  
       47 天前
    感觉大多数应该是的,就像自己在家一般都不太注重形象,出门总要多少注意点
    woodfizky
        33
    woodfizky  
       47 天前
    @wnanbei #31
    那换个思路,在异常捕获里再判断版本,如果发现是版本不对,不直接抛出 SyntaxError 也可以啊
    lthon
        34
    lthon  
       47 天前   ❤️ 1
    @moudy 别猜了,公布答案吧
    realpg
        35
    realpg  
    PRO
       46 天前
    不是自用的代码 涉及协作的代码

    除了 CPU/内存密集的模块, 核心要考虑性能, 以及核心算法类以外

    优雅不是加分项, 写的简洁明确 语法简单才是加分项
    DICK23
        36
    DICK23  
       46 天前
    看到前面好几个提到 dify 就知道它的含金量了。简直依托
    param
        37
    param  
       46 天前 via Android
    以我经验大概率是,我一直都有跟你一样的想法
    param
        38
    param  
       46 天前 via Android
    不对,你以开源/商业来区分并不准确,因为开源的也可以是商业代码。应该划分成社区驱动和商业驱动,社区驱动的项目代码往往都比商业驱动的代码质量好,不管开不开源都是。
    acerphoenix
        39
    acerphoenix  
       46 天前
    开源就是秀技的,公司代码是解决业务问题的,发展中不断迭代,人员更替快,可谓是屎山堆积。
    uxstone
        40
    uxstone  
       45 天前
    除了源码也要考虑周边的文档啊,商业代码有几个文档是写的好的?
    mqtdut1
        41
    mqtdut1  
       45 天前
    时间紧,任务重,人手又不够的情况下是不会考虑代码质量的,先解决问题,再重构(遥遥无期)。堆到最后就是一个类上万行代码,核心人员离职后整个项目就是个烫手山芋
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3160 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 11:12 · PVG 19:12 · LAX 04:12 · JFK 07:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.