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

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

  •  
  •   SGL · 2 天前 · 3195 次点击
    当然,这仅仅是我作为底层码农接触来看,目前还没有机会进入顶级公司看内部高级项目,无法对比。
    39 条回复    2025-08-03 17:58:10 +08:00
    mxT52CRuqR6o5
        1
    mxT52CRuqR6o5  
       2 天前
    都有好有坏的,没法给一个确定性的结论
    Gilfoyle26
        2
    Gilfoyle26  
       2 天前
    一般知名的开源项目的代码和规范是优于公司内部的代码的。
    liu731
        3
    liu731  
       2 天前
    看过一位大拿写的商用 C/S ERP 代码,优雅的不行。但是换人后就断层了。我想开源项目作者掌控审批权的话会跟优雅一点~

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

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

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

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

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

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

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

    优雅不是加分项, 写的简洁明确 语法简单才是加分项
    DICK23
        36
    DICK23  
       1 天前
    看到前面好几个提到 dify 就知道它的含金量了。简直依托
    param
        37
    param  
       1 天前 via Android
    以我经验大概率是,我一直都有跟你一样的想法
    param
        38
    param  
       1 天前 via Android
    不对,你以开源/商业来区分并不准确,因为开源的也可以是商业代码。应该划分成社区驱动和商业驱动,社区驱动的项目代码往往都比商业驱动的代码质量好,不管开不开源都是。
    acerphoenix
        39
    acerphoenix  
       9 小时 4 分钟前
    开源就是秀技的,公司代码是解决业务问题的,发展中不断迭代,人员更替快,可谓是屎山堆积。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   923 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 19:02 · PVG 03:02 · LAX 12:02 · JFK 15:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.