是不是国内公司内部项目的代码质量要普遍低于开源代码?

2014-03-24 15:26:57 +08:00
 shibo501c
- 入职半年的rookie,觉得有点失望,有时候看看开源的代码,觉得那才是工程师写的东西
- 维护以前高工的代码,发现因为经手的人太多,已经非常的混乱不堪,发现很多同事对代码的可读性,也不是很看重,有得甚至说我咬文嚼字。
- 自己觉得之所以变成这样,可能是经手的人太多,每个人都觉得加一点点代码,就能实现这个功能,而不愿去花更多的时间,去做一个更合理的重构,导致代码里到处是各种if else的判断和各种flag,而不去设计下数据结果的关系,所谓的技术债?
- 组长和经理看重功能,觉得人家几行就能实现功能,就是好,我说想重构,觉得成本高风险大
- 我应该自己花时间重构这些代码? 还是继续添加if else?
5252 次点击
所在节点    问与答
15 条回复
tan9le
2014-03-24 15:32:45 +08:00
反正放在我们公司,是没有这个时间,也没有这个成本去做重构的。
产品型的公司可能要好一些。
重构完了之后,大部分的测试工作都需要再来一次,就算时间允许,成本也不会允许吧。
alexrezit
2014-03-24 15:34:25 +08:00
你觉得只要是开源的代码质量就高? GitHub 上代码烂得像一坨屎还很多 stars 的 repo 有的是.
hoogle
2014-03-24 15:37:28 +08:00
考虑时间和成本 相对来说,开源项目没有deadline, 多半是开发者自己兴趣做的,自然至少得自己满意, 公司的,多半赶需求, 而且大多数公司也不会给你时间重构什么的吧 那些人多事少的大公司无视掉
acros
2014-03-24 15:41:22 +08:00
还有一个原因,有名开源代码常常是出自大牛的千锤百炼之手····
ayang23
2014-03-24 15:43:51 +08:00
大部分开源代码质量不如公司写的吧,你只是看到几个有名项目,除非是和外包公司比
shibo501c
2014-03-24 15:48:47 +08:00
@alexrezit 那倒是,我指的是有名的开源项目
soundbbg
2014-03-24 15:51:58 +08:00
要理解公司是需要产出的(而且这一点确实很正确),不是给你来写代码的。再说代码漂亮与否每个人都多多少少有些差异,没有纯的绝对漂亮的代码和设计。想想这一点,在工作中,能做的有:

1. 自己写漂亮。
2. 自己写的简单。(这个很难)
3. 推广出去让别人写漂亮。

推荐看这个 https://medium.com/p/db854689243 个人觉得是很赞的。
shibo501c
2014-03-24 15:55:00 +08:00
@tan9le @hoogle 看来是普遍现象,不过看很多招聘上都说希望面试者对代码有“洁癖”,如果改动能够在掌控的范围内,大家还是会看中代码质量的
cxe2v
2014-03-24 16:52:57 +08:00
我反正是尽量去贴合之前代码的风格
shibo501c
2014-03-24 17:25:31 +08:00
@cxe2v 恩,尽量还是保持原来的风格,但是有时候的问题就比风格严重了,比如一个构造函数,每次改的时候加一个变量,后来慢慢的就有十多个参数之类的,或者有时候应该用子类更好,但是为了简单,之前的人仅仅在一个类的几个主要方法里加了个if (flag),这种其实是最不好弄的
loryyang
2014-03-24 18:10:19 +08:00
个人感觉我们组的代码还是可以的,有单测,编码规范也还可以,但是说实话,可能是新项目,代码改多了就容易烂
vbs
2014-03-24 18:23:33 +08:00
重构的确成本大风险高,不到必须的情况下是不会改的
zhc
2014-03-24 18:48:20 +08:00
身边某些工作很多年的同事对面向对象都没有理解只是知道这个名词而已,代码写得非常复杂各种耦合各种束缚,改这样的代码就像吃屎一样痛苦,可是没办法,每个人对代码的要求和编码的理解都不一样.

程序员把代码结构写得尽量合理其实是为自己减少工作量,日后的维护修改会非常容易,但很大部分对这个没什么想法.

优秀的程序员看上去总是很轻松没什么事做,愚蠢的老板会认为这个人没干活,不如那些整天埋头不停创造垃圾代码拉屎给自己和别人吃的程序员卖力.但这就是现实.

所以有完美主义的程序员才是好程序员.
dragonszy
2014-03-24 19:21:07 +08:00
事实1:世界上的代码是改不完的
事实2:世界上总有垃圾代码不断产生
事实3:没有最好的代码,只有更好的代码
事实4:不完美才产生新的需求
事实5:每个行业其实都这样
ren2881971
2014-04-08 14:48:43 +08:00
老掉牙的项目
人员的经常流动
对系统或者业务的不熟悉
是主要原因。。

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

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

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

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

© 2021 V2EX