coala
V2EX  ›  Java

[ Java ] 代码质量糟糕, 是常态吗?

  •  1
     
  •   coala ·
    qq418745 · Jul 14, 2022 · 14696 views
    This topic created in 1573 days ago, the information mentioned may be changed or developed.

    这几年写东西基本都是一个人... 普遍小公司

    回想起来自己第一年写的也挺烂的。

    后面参考比较多的是几个 Java 开源的项目(电商项目,博客系统这种), 好了很多。

    我觉得差不多的水平就是遵循类似阿里巴巴 Java 规范这种, 不能大片重复 Copy 代码, 合适的面向对象, 结构清晰。

    到目前为止接触过 4 家公司的代码, 遇到的情况:

    A 司: 代码风骚 是个高手, 不守规矩, 但是质量不能算差。

    B 司: 政企项目 有代码审计, 看上去稍微好点, 但是还是大片 Copy 这种大量偷懒行为。

    C 司: 外包写的项目, 惨不忍睹, 一个类 7000 行, 一个 Js 文件几千行, 授权和角色管理稀烂

    D 司: 整体写的比较随意, 但好歹没大片 Copy, 勉强能接受, 授权和角色管理稀烂。

    代码质量能比上个 XX 系统的开源项目的公司有多少呢...

    107 replies  •  2024-07-05 14:33:00 +08:00
    1  2  
    ❮ ❯
    litguy
    litguy
    Jul 14, 2022❤️6
    1
    还是我们这些 C/C++ 写底层的靠谱,质量不行马上给你脸色,尤其内核模块,直接挂系统
    felixcode
    felixcode
    PRO
    Jul 14, 2022 via Android
    2
    你是看到代码表面乱,不懂底层。
    狗头:)
    dwlovelife
    dwlovelife
    Jul 14, 2022❤️26
    3
    没有 review ,没有 git 工作流插件管控,没有规范管控,再牛逼的公司都不行,一个团队,每个人的代码水平层次不齐,经验也不一样,有多少人把工作当成热爱,有精力和能力写开源的最起码能证明水平尚可,热爱 coding ,去公司上班感觉不太一样,产品催促,巴不得三天活一天干完。所以代码质量糟糕是根本问题是一个公司技术职责管理问题,做业务的很少有人在乎,只要不要太离谱能跑就行,能马上上线就行,所以你想团队里每个人都能写出好代码就几乎不可能,因为一开始的目的就是为了做功能,快速产出,而好代码是要反复打磨,精心设计的,是要花时间的,这跟大部分公司主流业务都违背。
    potatowish
    potatowish
    Jul 14, 2022 via iPhone❤️1
    4
    代码质量和写代码的人技术水平、编码习惯、工时有直接关系,语言本身也是一道门槛,上手入门的难度越高,门槛就越高,写出烂代码的可能性就越低,起到了一个过滤的作用。
    nothingistrue
    nothingistrue
    Jul 14, 2022❤️3
    5
    跟 Java 无关,国内是常态。这跟办事风格有关,国内压根就不留代码质量改善的时间。代码质量别说提高了,就是维持,也很占开发成本,并且这占得还是团队成本而不是个人成本(意味着 10 个人中即使 9 个人愿意加班维持代码质量,只要有 1 个人不原因那整体质量就没法维持)。

    就拿阿里巴巴规范来说,看着很规范是吧,但你要么 007 要么写出来看着遵守规范实际上质量糟糕的代码(并且还得 996 )。可以比较以下阿里巴巴 Java 规范跟 google java 规范,你会看到在规范之外的不同办事风格。
    nothingistrue
    nothingistrue
    Jul 14, 2022
    6
    开发成本上举一些简单的例子,结对编程或者代码评审,全覆盖单元测试,这些随便上一个就得让开发时间翻倍。而国内盛行的是只看你有没有在规定的时间内完成可运行程序。
    coala
    coala
    OP
    Jul 14, 2022
    7
    @nothingistrue 想起我也写过一个烂项目, 当时 1 个月时间, 真的太着急了, 还承诺做完了就可以撇清关系... 维护与我无关, 后 15 天就直接放飞自我了, 只想快点结束这种日子... 后来让又让我维护 .. 改的时候好痛苦
    chendy
    chendy
    Jul 14, 2022❤️2
    8
    常态,想把质量拉满成本太高了,请不起那么多高手,花不起那么长时间,外加各种历史遗留问题
    至于说国内质量不行的,接触过一些国外大软件厂的代码,一样稀烂
    coala
    coala
    OP
    Jul 14, 2022
    9
    @potatowish 这是骗我去改行做 C/C++ 狗头:)
    zxxufo008
    zxxufo008
    Jul 14, 2022
    10
    写代码和写文章一样,闭门造车不会有进步的
    Oktfolio
    Oktfolio
    Jul 14, 2022
    11
    昨天我代码写得直接发脾气,百万行的代码,只有 100 多个 toString ,其中至少有 90% 是我写的,你说代码质量怎么样。
    fengpan567
    fengpan567
    Jul 14, 2022
    12
    建议参考不可能三角
    IvanLi127
    IvanLi127
    Jul 14, 2022
    13
    只能说语言能筛选一波人。。。
    Reminders
    Reminders
    Jul 14, 2022
    14
    刚入职新公司,代码也是稀烂,字段名、属性名,表名,都是拼音首字母,完全不知道啥意思,大段的 copy paste , 都想跑路了。
    BanGanExpert
    BanGanExpert
    Jul 14, 2022
    15
    @codingbody 这种过分了,当然你可以看看有没有其它项目,万一也有好点的呀,都这样就提桶跑路了呗
    siweipancc
    siweipancc
    Jul 14, 2022 via iPhone
    16
    上一个组,功能少有时间单测,一年线上 bug 低于 3 个。
    现在这个,线上 bug 都 200 多了,问就是工期紧没时间
    op351
    op351
    Jul 14, 2022
    17
    有多少钱干多少事
    外包稀烂归稀烂 起码能跑得通
    再说了 外包实际到码代码的人手上的钱少得可怜 中高层把钱全吃光了
    lujiaosama
    lujiaosama
    Jul 14, 2022❤️1
    18
    烂代码就是克苏鲁屎山, 除了难以维护, 还对人有腐化作用. 一开始兢兢业业, 后面一起加入放飞自我...
    ericmzhu
    ericmzhu
    Jul 14, 2022
    19
    很多就像小学生写字一样,连基本的空格分隔,对齐都做不到。别谈什么代码质量了。
    yaphets666
    yaphets666
    Jul 14, 2022❤️1
    20
    代码稀烂不一定是代码的问题,需求奇怪,没设计好,时间紧,不稀烂能咋办?
    wtsamuel
    wtsamuel
    Jul 14, 2022
    21
    有没有可能烂代码才是常态
    整洁的代码是多次删除重构后的产物
    muchenlou
    muchenlou
    Jul 14, 2022 via iPhone❤️1
    22
    我是工作不是生活,如果编码是我的生活,我会很乐意让它优雅,别的不说,你让我对接的产品给我多点时间吧。我能写的好一些的。
    yuruizhe
    yuruizhe
    Jul 14, 2022
    23
    @ericmzhu 格式化插件走起
    yuruizhe
    yuruizhe
    Jul 14, 2022
    24
    @lujiaosama 打不过就加入
    RedBeanIce
    RedBeanIce
    Jul 14, 2022 via iPhone
    25
    代码质量问题最终都是人和时间的问题
    micean
    micean
    Jul 14, 2022
    26
    “代码质量不好怪公司不给时间”和“中国游戏、电影太差怪监管部门”一个道理。
    自身水平不足而已
    datiewang
    datiewang
    Jul 14, 2022
    27
    @micean #26
    影响因素从来都不止一个而已,公司不给时间和从业人员水平参差不齐有什么冲突吗?
    qdxb
    qdxb
    Jul 14, 2022❤️15
    28
    记得以前 V2 有个帖子,大概内容是楼主一直很关心项目代码质量,文档也维护的很勤快,后来跳槽走了。然后听说老单位人事向领导邀功,说请了个实习生,工资比原来员工低很多,来了就能直接上手维护老项目了,把楼主气的半死。
    aguesuka
    aguesuka
    Jul 14, 2022
    29
    @qdxb 如果这样被气, 智能说楼主的心胸太狭隘了
    dzdh
    dzdh
    Jul 14, 2022
    30
    代码质量和语言无关
    aguesuka
    aguesuka
    Jul 14, 2022
    31
    直接原因是 Java 程序员普遍菜; 根本原因是因为市场太温柔, 养活了一堆制造屎山的公司.
    charlie21
    charlie21
    Jul 14, 2022
    32
    如果不是我遇到过 短时间+高架构质量的项目,我就信你了。说到底还是人行不行,若人不行则啥都不行
    ericmzhu
    ericmzhu
    Jul 14, 2022
    33
    @yuruizhe 主要是个态度问题,有了保持自己的代码整洁的习惯,才会找格式化插件提升效率。
    ziwen1943
    ziwen1943
    Jul 14, 2022
    34
    代码质量和风格和个人的习惯能力是正相关的,如果是从零开始维护一个项目,我见到过有同事,一局游戏的时间写好一份高质量的扫描器,剩下时间我们边聊边写文档的。但是如果是已经堆出来的服务,我们一直的思路是模块化和重构。实际情况公司不会给那么长时间让你优化以前的代码,要么依赖,加入他们,要么走开,重新开始。
    pengtdyd
    pengtdyd
    Jul 14, 2022❤️1
    35
    还好我是写 rust 的,写的不对编译都过不了
    dayeye2006199
    dayeye2006199
    Jul 14, 2022
    36
    其实有些时候需要关注的是“方差”,而不是“均值”。

    质量不错有时候讲的是均值过得去,方差很小
    均值过得去,方差很大,有时候看着也很难受
    falsemask
    falsemask
    Jul 14, 2022
    37
    产品不懂技术,需要逻辑计算的状态字段作为查询条件,无法在 SQL 直接分页。需求经常改,A 类型数据可以执行某种操作,执行完成更新原数据状态,几天后又加需求 B 类型数据也可以执行某种操作,但是执行完不需要更新原数据状态,代码就得加特判。这是我最近遇到的,还有很多类似情况。
    loolac
    loolac
    Jul 14, 2022
    38
    其实跟统筹有关,看设计时如何分类代码功能;一般情况是分类过的看着比较整齐,没划分的无论标识符命名还是代码逻辑都是垃圾堆。
    NoKey
    NoKey
    Jul 14, 2022
    39
    规范门禁加代码 review ,能把乱的层次限定在一个范围内
    soupu626
    soupu626
    Jul 14, 2022❤️2
    40
    我司某人,代码风格极其风骚,大量使用函数式编程,但是 JAVA 的函数式懂得都懂,结果就是看他的模块内部实现是一堆 Function<>、Consumer<>、Supplier<>,然后对外接口相对还比较易用,看的出来代码质量很高,但是这个模块估计只有他能维护的动。。。
    cxilife
    cxilife
    Jul 14, 2022
    41
    感觉可以类比房地产的房子建筑质量
    hailiang88
    hailiang88
    Jul 14, 2022
    42
    提倡用英文命名而被喷拽英语的路过。
    人家统一拼音首字母
    更搞笑的是有些小伙伴有地方口音
    没注释完全读不懂
    66beta
    66beta
    Jul 14, 2022
    43
    屎山代码带来了无数的收益;
    优雅的代码陪项目胎死腹中。
    yulon
    yulon
    Jul 14, 2022
    44
    @litguy 前几天接手一个 C++ 项目,一看就是 Javaer 写的,大大小小的都是类,然后一堆 new 在乱飞,把我恶心坏了,修 bug 修到手麻😂
    coala
    coala
    OP
    Jul 14, 2022
    45
    @66beta 我还没经历过整体胎死腹中的项目, 最多新做的功能没人用

    付出了那么多时间, 全都没用上, 想想就是件非常难过的事
    Jekins
    Jekins
    Jul 14, 2022
    46
    那么有优雅代码的开源的项目学习一下吗?
    Qlccks2
    Qlccks2
    Jul 14, 2022
    47
    和语言没关系,只是 JAVA 应用广泛。大环境下其他语言也一样。
    xingyuc
    xingyuc
    Jul 14, 2022
    48
    工期紧任务重,换谁谁这样
    potatowish
    potatowish
    Jul 14, 2022 via iPhone
    49
    @soupu626 这个一点问题都没有,你要是写过公共模块就知道了
    456789
    456789
    Jul 14, 2022
    50
    我的公司就是 shi 山,拉屎的人整个换了一批
    coala
    coala
    OP
    Jul 14, 2022❤️1
    51
    @Jekins 谈不上优雅, 就是学习, 写好代码而已。
    // halo 博客的源码
    https://github.com/halo-dev/halo

    // 这个也是很多人知道的微服务 Demo 吧. 文档很全
    https://github.com/macrozheng/mall-swarm

    // pig
    https://www.yuque.com/pig4cloud/pig/gg3ndm
    Jekins
    Jekins
    Jul 14, 2022
    52
    @coala 感谢分享~
    DefoliationM
    DefoliationM
    Jul 14, 2022 via Android
    53
    放弃吧,代码写的再好看,早晚也会有人把你写的代码改成屎山,公司不管真的一点用都没有。
    自己的开源项目可以好好弄,其他真的没办法。
    justin2018
    justin2018
    Jul 14, 2022
    54
    项目能跑 上线 ok

    管代码质量干嘛~~~

    能不加班 做完都不错了~~~
    justin2018
    justin2018
    Jul 14, 2022
    55
    @soupu626 不可被替代编程 😁
    daimubai
    daimubai
    Jul 14, 2022
    56
    还是团队要有规范吧,没有规范的话即使每个人写的都“优雅”,放在一起还是很乱的。
    leeg810312
    leeg810312
    Jul 14, 2022 via Android
    57
    @nothingistrue 提高质量为什么 007 ,为什么不延长计划?
    akira
    akira
    Jul 14, 2022❤️1
    58
    活下来的人才有资格说质量
    kingjpa
    kingjpa
    Jul 14, 2022
    59
    写多了自然就烂了, 等你遇到下班 6 点加需求,第二天上线,
    有 2 个选择,要不立刻跑路 要不赶快敲码,
    假如有一个字段叫 税务登记证书号有效期,你是直接用拼音首字母还是先翻译呢? 你又如何保证翻译出来 其他同事可以看懂呢?难道你还要写文档不成?
    redford42
    redford42
    Jul 14, 2022
    60
    因为技术负债还没有开始发挥威力的时候可能公司已经倒闭了
    feather12315
    feather12315
    Jul 14, 2022 via Android
    61
    @litguy #1 也有大量 copy 的,循环嵌套循环,一个函数上百行
    qiaobeier
    qiaobeier
    Jul 14, 2022
    62
    没有死循环就算好代码
    msg7086
    msg7086
    Jul 15, 2022
    63
    @soupu626 还行吧,那些都是无效代码量,可以脑内屏蔽的。你都当成 var 就行了。
    就像没 lambda 的时候大段大段的匿名类,脑内转换成 lambda 就行了……
    只要接口清晰易用,测试覆盖好,我觉得问题不是很大。函数式又不是什么高深的科技。
    lanlanye
    lanlanye
    Jul 15, 2022
    64
    好奇有多烂,我感觉比起 Python 来说 Java 这种算“规范”的语言写出来的代码平均质量说不定还高点。
    当然,不是说语言不行,而是用的人不行,特别是 Python 火起来之后……
    RiceNoodle
    RiceNoodle
    Jul 15, 2022❤️1
    65
    我只有在目前的公司,才觉得代码质量做的不错。
    1. 强制要求 code review 获得 approval 后才能合并。
    2. 并且核心业务开发人员真的很用心也很严格的在做 review ,一个 PR 里面的 comment 没清理完坚决不 approval 的那种。

    以前的公司,代码质量的好坏,完全取决于历史和当前开发人员的水平,虽然有的质量还行,但是属于肉眼可见的在腐化,自己在其中,也没办法改变这种现状。
    所以或许确实有个不可能三角,高质量,短时间,人力投入适中,三者只能满足两个。
    TWorldIsNButThis
    TWorldIsNButThis
    Jul 15, 2022 via iPhone
    66
    @lanlanye 其实没多大关系
    这些所谓的规范顶多能达到 20 分即使做到了也离及格差很远
    良好的代码需要持续的人力投入
    ca1123
    ca1123
    Jul 15, 2022
    67
    感谢 java, 这样拼凑的东西也能用
    overthemoon
    overthemoon
    Jul 15, 2022
    68
    我上一家同事写的烂代码超级多,刚进去经常加班就是因为代码烂,还有 bug 。后面一有时间就重构同事代码,几乎把重要功能的代码全部重构了一遍,清清爽爽,效率又快,注释又多。 直到有一天改不动了,直接摆烂,直接在屎山堆里加代码
    ragnaroks
    ragnaroks
    Jul 15, 2022
    69
    java 没有代码质量和样式分析器,只能靠个人水平
    Daiwf
    Daiwf
    Jul 15, 2022
    70
    很多时候是没有办法,接手的就是屎山。重构没有动力。项目又急。然后就抱着又不是不能用的态度直接改改就上了
    fueen
    fueen
    Jul 15, 2022❤️1
    71
    v2 的奋斗逼还真是多啊
    moyuge
    moyuge
    Jul 15, 2022
    72
    这个话题可以匹配 国内任意语言
    hoopan
    hoopan
    Jul 15, 2022
    73
    代码好坏,大多数不是技术问题,而是管理问题。
    darknoll
    darknoll
    Jul 15, 2022 via Android
    74
    又不是不能用
    bthulu
    bthulu
    Jul 15, 2022
    75
    @soupu626 我也大量使用函数式编程, 我也能维护的动
    coala
    coala
    OP
    Jul 15, 2022
    76
    @lanlanye 和 Python 比起来的确会好.. 毕竟 Java"限制"多
    dqzcwxb
    dqzcwxb
    Jul 15, 2022❤️2
    77
    kemistep
    kemistep
    Jul 15, 2022
    78
    copy+c,copy+v.....copy,copy,copy ,程序和人,只要一个能跑就行;
    zhang77555
    zhang77555
    Jul 15, 2022
    79
    你得明白在这个烂代码到无法维护的程度之前公司可能都没了
    而如果你的公司熬过了烂代码时期,那大概率也有钱可以重做一套了
    说句实话,大多数情况下,代码写得漂不漂亮没有太大卵用,纯技术公司除外,纯技术公司能占多少呢
    featureoverload
    featureoverload
    Jul 15, 2022
    80
    这个话题下,很多人想的理由水平也可以反映自身代码水平。

    如果没有经历过好的代码质量的工作,那么建议找工作的时候多问一些问题,根据主管( CTO )回答就能推测代码质量了。
    如果准备不了合适的问题,自然就陷入死循环。
    lmmlwen
    lmmlwen
    Jul 15, 2022
    81
    是,尤其是快速迭代的
    featureoverload
    featureoverload
    Jul 15, 2022
    82
    @featureoverload

    从问题来说,代码质量糟糕在当下确实是常态。

    我上一家公司代码质量很高,入职新公司加入的项目代码质量差距明显。

    但是代码质量高的代价是,程序员周一提交一个 MR ,反复 code review 周五才有机会 Merge
    (很多时候会往复两周)

    当然,根据程序员自身水平,这个时间可长可短;通常在 三天到一周 左右。

    被 code review 过的程序员,提交的 code 在三天以下被 Merge 的,
    通常已经过了需要被频繁提 comment 的能力阶段了;
    这时候的 code review 的时间,通常不是花在代码质量上。
    alen0206
    alen0206
    Jul 15, 2022
    83
    继承的屎山不敢改。 。也没时间改。。
    mosfet
    mosfet
    Jul 15, 2022
    84
    我把一个 shi 山项目重构了,当时也是为了后续自己维护方便
    然后就 TM 的测出了两个逻辑 BUG ,就在那 BBBBBBBBB ,搞的我好像罪大恶极,没事找事
    这种事情之后我是不会再干了,无脑往上堆吧
    xz410236056
    xz410236056
    Jul 15, 2022
    85

    只要你跟着 java 更新,就不会屎
    soupu626
    soupu626
    Jul 15, 2022
    86
    @msg7086 对,他的代码质量是非常好的,我说的是可维护性以及新人上手成本的问题,我之前进去看过,可能调用层级比较深了,突然一个 ruleDealFunc.apply(param) 还要回去找这个 Function 哪传进来的,虽然逻辑上看的很顺,但是要修改,需要追实现细节的时候会比较痛苦

    @bthulu 自己写的当然能维护,但是整个工程不可能一直是一个人维护啊,总有要别人顶班的时候

    @potatowish 问题这是个业务模块啊,本质上也是个模版方法或者策略模式就能解决的问题

    @ragnaroks 可以在发布流水线上设卡点,静态扫描不过关不给发
    libook
    libook
    Jul 15, 2022❤️1
    87
    我实习的时候,负责开发智能电视平台上兼容多个品牌遥控器按键映射的组件,多个键值对应同一个功能的话,可以简单清晰地罗列 case ,然后下面统一操作再 break 。代码写完后交给一个人 review ,他说每个 case 必须有 break ,否则肯定无法编译通过,而且他 10 年工作过程中都是这么认为的……

    我比较认同的是,水平烂的人,用啥高大上语言写出来的代码都一样烂。

    我想,Java 技术栈在这个问题上比较显眼的原因可能有以下几点:
    1. Java 开发者实在太多了,Web 后端开发领域 Java 开发者数量很长时间都是第一,假设大多语言的水平分布都是差不多的,那么 Java 技术栈这种基数大的就比较吃亏,会让人产生经常遇见水平差的人的感觉。
    2. Java 生态非常成熟,在语言基础上建立了各种框架、体系、思想的高楼,表层都是非常抽象的东西,(在 SSH 框架的时代)导致学习周期较长,虽然门槛低,但若想达到对生产所使用的技术完全在掌握的程度,可能要比很多技术栈多花很多的时间。导致可能没有那么多精力关注其他事情。当然现在随着一些新的框架和思想的出现,这个问题可能会逐渐改善。
    3. 一门语言越灵活和抽象,开发门槛越低,但对开发者要求也就越高;写出能工作的代码很容易,写出来能工作的好代码很难,不如一些本身有很多限制和枷锁的语言。鱼与熊掌不可兼得。
    rb6221
    rb6221
    Jul 15, 2022
    88
    最大的原因还是因为 java 太流行了,写的人太多,每种语言中都有菜鸟,而 java 门槛低,所以菜鸟占比就相对多,再加上幸存者偏差,所以你对 java 的感觉不好。js 同理。
    比如(相对)小众的语言,go ,rust ,你是不是没有发现什么烂代码?实际上是因为,第一门槛高,第二用的人少,而其中菜鸟占比也少,大佬占比多,很多都是极客,所以你能看到的都是高质量代码。
    实际上关键还是在于人。
    XXWHCA
    XXWHCA
    Jul 15, 2022
    89
    和语言没关系,主要还是要看团队水平和有什么样的领导

    A 司应该是比较少的,说明团队整体水平很好,可能是领导不是做技术的
    B 司就不说了,懂得都懂,能干活的就那几个人,甚至是外包进来的
    C 司项目外包更简单了,能用就行,反正不管后期维护
    D 司研发团队应该是不多不少的那种情况,人力刚好满足现在的业务,但又什么都想尝试,可又没有足够的人力来支持

    没有代码审计的小团队国企政企应该比较多,研发就几个人也都是干活的,领导可能就不是做技术的,代码野蛮生长,也会出现大量代码的 copy
    bthulu
    bthulu
    Jul 15, 2022
    90
    @soupu626 现在还有不会函数式编程的 java 新人么? 是个培训班都教这个, 不会的只可能是放弃学习的老油条了吧
    xianyv
    xianyv
    Jul 15, 2022
    91
    我接手的一个项目更垃圾,接口返回信息直接 json.put("xx",111),然后连个注释都没有,全靠英文单词猜
    BrightLiao
    BrightLiao
    Jul 15, 2022❤️1
    92
    要说代码质量,首先要搞清楚什么样的代码是高质量的代码。

    咱们经常提的 SOLID 原则是衡量 OO 范式的代码质量的一种。

    不过 SOLID 的局限性比较大。Thoughtworks 最近在技术雷达上推荐 CUPID 是另一个可参考的好代码的特质组合。

    CUPID 是指:
    - C: Composable ,可组合的代码
    - U: Unix philosophy ,符合 Unix 哲学
    - P: Predictable ,可预测的
    - I: Idiomatic ,符合惯例的
    - D: Domain based ,基于领域的

    我前段时间结合 CUPID 原文及自己的理解,写了一篇文章分享,给大家参考下: https://brightliao.com/2022/05/24/5-properties-of-good-code-cupid/

    有了什么是高质量代码的基本理解,再去看代码质量好不好,我们会发现新大陆。
    lonenol
    lonenol
    Jul 15, 2022❤️1
    93
    与其说 Java 烂,不如说是业务系统代码烂。。
    每个业务系统都会有各种奇奇怪怪的业务需求,各种修修补补 ,各种 if else ,演进个半年一年的,啥语言写都是烂。。

    开源出来的东西最多能算业务系统第一个版本。。当然可以写的很漂亮。。你让把你们公司的特殊业务逻辑加里面再看看
    RainCats
    RainCats
    Jul 15, 2022
    94
    本来周三要上线的,结果都延期三次了,今天产品都还在提了一堆修改,你说呢,这跟语言有关系吗,跟个人能力有关系,但也跟团队有关系,重大关系,压根不给你足够的时间去回头梳理,我只能是一边做新需求一边看看哪些需要重构的顺手重构一下,再跟测试说一下
    urnoob
    urnoob
    Jul 15, 2022
    95
    我只说 java 的哈
    请面向金钱编程!
    只要满足客户需求,产生价值,所谓的代码质量,UT 覆盖率都是虚的,除了耗费你的时间别无用处。
    urnoob
    urnoob
    Jul 15, 2022❤️2
    96
    补充一点。以前讲瀑布,现在推敏捷,养活了多少人,以前说 TDD ,现在又推 DDD ,又浪费了多少码农时间。重构!千万别去碰!要么继续堆,要么新项目重开!切记!
    LeegoYih
    LeegoYih
    Jul 15, 2022
    97
    大部分公司都是业务第一、产品第二、技术第三。
    想赚钱就得快速迭代,持续交付,跟语言毛关系没有,用其他语言照样一堆屎山,甚至比 Java 更屎(尤其动态语言),屎到维护不了,有的内存泄漏满天飞,还有存在 this != null 这种逆天操作。
    11232as
    11232as
    Jul 15, 2022
    98
    业务本身就没逻辑可言,代码也就只能 if-else 。如果业务迭代得快的话,代码写出来的时候指不定就已经过时了。
    WOLFRAZOR
    WOLFRAZOR
    Jul 15, 2022
    99
    @litguy 哈哈,毕竟写底层可不是开玩笑的,一出问题肯定被骂死😂。
    @yulon 建议重构😂😂同样的时间,我宁愿重写也不愿接烂摊子😂

    A 这类比较少,说明团队整体水平很好,可能是领导不是做技术的。
    B 大概率是外包的,只能好一点的外包
    C 是质量更差的外包。
    D 是那种在夹缝中生存的团队,现有功能满足了,想加新的但人手不够。
    WispZhan
    WispZhan
    Jul 15, 2022
    100
    先不说代码质量,有几个正经写 Unit Test 的? 出来走一个让我看看
    理由无非是老三样: 没时间、能跑就行、质量高了工资高吗?

    ---

    都说项目质量差、加班加的多,我也没见几个人(还是有不少,起码认识不少有态度的),愿意倒推流程、质量、进度、需求的。

    一个团队,一环差,环环差,木桶原理。
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3017 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 173ms · UTC 05:01 · PVG 13:01 · LAX 21:01 · JFK 00:01
    ♥ Do have faith in what you're doing.