V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
coala
V2EX  ›  Java

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    管代码质量干嘛~~~

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    咱们经常提的 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
        93
    lonenol  
       82 天前   ❤️ 1
    与其说 Java 烂,不如说是业务系统代码烂。。
    每个业务系统都会有各种奇奇怪怪的业务需求,各种修修补补 ,各种 if else ,演进个半年一年的,啥语言写都是烂。。

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

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

    ---

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

    一个团队,一环差,环环差,木桶原理。
    1  2  
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   851 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 65ms · UTC 21:59 · PVG 05:59 · LAX 14:59 · JFK 17:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.