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

2022-07-14 10:09:09 +08:00
 coala

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

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

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

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

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

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

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

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

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

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

10969 次点击
所在节点    Java
103 条回复
wtsamuel
2022-07-14 12:17:41 +08:00
有没有可能烂代码才是常态
整洁的代码是多次删除重构后的产物
muchenlou
2022-07-14 12:24:00 +08:00
我是工作不是生活,如果编码是我的生活,我会很乐意让它优雅,别的不说,你让我对接的产品给我多点时间吧。我能写的好一些的。
yuruizhe
2022-07-14 12:31:56 +08:00
@ericmzhu 格式化插件走起
yuruizhe
2022-07-14 12:32:19 +08:00
@lujiaosama 打不过就加入
RedBeanIce
2022-07-14 12:42:26 +08:00
代码质量问题最终都是人和时间的问题
micean
2022-07-14 12:42:36 +08:00
“代码质量不好怪公司不给时间”和“中国游戏、电影太差怪监管部门”一个道理。
自身水平不足而已
datiewang
2022-07-14 12:58:10 +08:00
@micean #26
影响因素从来都不止一个而已,公司不给时间和从业人员水平参差不齐有什么冲突吗?
qdxb
2022-07-14 13:13:33 +08:00
记得以前 V2 有个帖子,大概内容是楼主一直很关心项目代码质量,文档也维护的很勤快,后来跳槽走了。然后听说老单位人事向领导邀功,说请了个实习生,工资比原来员工低很多,来了就能直接上手维护老项目了,把楼主气的半死。
aguesuka
2022-07-14 13:17:14 +08:00
@qdxb 如果这样被气, 智能说楼主的心胸太狭隘了
dzdh
2022-07-14 13:18:40 +08:00
代码质量和语言无关
aguesuka
2022-07-14 13:19:58 +08:00
直接原因是 Java 程序员普遍菜; 根本原因是因为市场太温柔, 养活了一堆制造屎山的公司.
charlie21
2022-07-14 13:25:38 +08:00
如果不是我遇到过 短时间+高架构质量的项目,我就信你了。说到底还是人行不行,若人不行则啥都不行
ericmzhu
2022-07-14 13:49:14 +08:00
@yuruizhe 主要是个态度问题,有了保持自己的代码整洁的习惯,才会找格式化插件提升效率。
ziwen1943
2022-07-14 14:12:06 +08:00
代码质量和风格和个人的习惯能力是正相关的,如果是从零开始维护一个项目,我见到过有同事,一局游戏的时间写好一份高质量的扫描器,剩下时间我们边聊边写文档的。但是如果是已经堆出来的服务,我们一直的思路是模块化和重构。实际情况公司不会给那么长时间让你优化以前的代码,要么依赖,加入他们,要么走开,重新开始。
pengtdyd
2022-07-14 14:34:27 +08:00
还好我是写 rust 的,写的不对编译都过不了
dayeye2006199
2022-07-14 14:37:26 +08:00
其实有些时候需要关注的是“方差”,而不是“均值”。

质量不错有时候讲的是均值过得去,方差很小
均值过得去,方差很大,有时候看着也很难受
falsemask
2022-07-14 14:43:50 +08:00
产品不懂技术,需要逻辑计算的状态字段作为查询条件,无法在 SQL 直接分页。需求经常改,A 类型数据可以执行某种操作,执行完成更新原数据状态,几天后又加需求 B 类型数据也可以执行某种操作,但是执行完不需要更新原数据状态,代码就得加特判。这是我最近遇到的,还有很多类似情况。
loolac
2022-07-14 14:50:08 +08:00
其实跟统筹有关,看设计时如何分类代码功能;一般情况是分类过的看着比较整齐,没划分的无论标识符命名还是代码逻辑都是垃圾堆。
NoKey
2022-07-14 14:54:42 +08:00
规范门禁加代码 review ,能把乱的层次限定在一个范围内
soupu626
2022-07-14 15:42:55 +08:00
我司某人,代码风格极其风骚,大量使用函数式编程,但是 JAVA 的函数式懂得都懂,结果就是看他的模块内部实现是一堆 Function<>、Consumer<>、Supplier<>,然后对外接口相对还比较易用,看的出来代码质量很高,但是这个模块估计只有他能维护的动。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/866060

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX