看着项目的代码,感觉要黄,准备跑路了

2020-07-07 12:11:42 +08:00
 george404

小弟在一个创业型小公司 10 个人搞 golang 项目。最近模块连调的时候发现一个 bug 追到另一个人写的代码里去了,直接崩溃了。

1.那个人一共撸 4 万行代码(包括注释换行),其中 3 万行在一个文件夹下,一个文件夹下直接 30 个.go 源文件。。。。没有任何逻辑和层次,甚至分类。

2.很多函数复制粘贴多次,后面修改代码,得跟着所有函数改一遍。

3.几乎没有封装,要用另外一个 package 的函数,直接大写,导成全局函数。

4.当看到 package 里一个 go 文件全局变量是这么定义的( types 为另外一个包)

var(
a=types.Function1
b=types.Function2
......
......
n=types.Functionn
)

一共定义了 100 多个全局变量。。。。。。

这个人自称 10 年开发经验,我怀疑他是故意这么写代码的。我当时就觉得项目上线 1 个星期内肯定黄,这种代码如何维护更新,我看我要准备跑路了。。。。。 当你想好好做事的时候,碰到这种货,,,哎。。。。。。。。重头再来了。

13550 次点击
所在节点    程序员
68 条回复
xjq
2020-07-07 20:00:50 +08:00
我之前做了个项目也是写的很烂了,感觉要黄,但是老大把坑填完了,只要有负责的有能力的人在,再坑也不至于黄
nasmatic
2020-07-07 20:15:44 +08:00
太年轻,有经验了你会在屎山上巧妙的避开然后再优雅的拉一坨屎上去
liangch
2020-07-07 20:37:01 +08:00
代码烂的多了去了。但好多应用还是跑得好好的。
想想为什么。
justin2018
2020-07-07 20:48:51 +08:00
sleep(100000) 大法好~
jin7
2020-07-08 06:50:31 +08:00
感觉没啥问题
george404
2020-07-08 07:13:49 +08:00
@roundgis 没上线,没有异常测试,不清楚,肯定后面维护只能他自己,一 B 糟
george404
2020-07-08 07:19:34 +08:00
@reus 官方 net 下面都是网络相关的,至少整个项目不止是 2 个 package,不会一个类似功能的函数 copy-past 吧?是,什么都可以重构,这么说,都不是问题了。
george404
2020-07-08 07:22:43 +08:00
@zhuangzhuang1988 不错!
LokiSharp
2020-07-08 07:46:15 +08:00
Golang 不就是这样写的么?
Narcissu5
2020-07-08 08:41:02 +08:00
@Jooooooooo
@awolfly9
表面看起来项目黄都不是因为技术,因为技术而黄掉的项目根本不会进入大众的视线(我知道的就很多很多
2379920898
2020-07-08 09:08:18 +08:00
小伙子太年轻了,这么多问题,明天你就要领盒饭了
zh5e
2020-07-08 09:32:01 +08:00
golang 这种包管理方式就是个坑,访问控制用大小写来区别也是个残废。golang 开发项目稳定性没啥问题,重构比脚本语言方便多了,基本满足需求
mimi888
2020-07-08 09:38:39 +08:00
4 万行 10 个人一周就能重构好
leapV3
2020-07-08 10:02:27 +08:00
上面就有些人不明白越分工越细,越被容易替代;和流水线工人有啥区别
Telegram
2020-07-08 10:29:46 +08:00
@liangch #41 用邓小平的一句话就是:黑猫白猫,抓到老鼠的就是好猫

你代码写的再烂,只要业务能正常跑起来就没问题。客户又不看你代码优不优美
exploreXin
2020-07-08 10:36:04 +08:00
技术层面确实让人大跌眼镜,但在资本市场的世界里面,这不算啥,什么设计什么整洁,都是次要的,在老板看来什么是好项目?能赚钱就是好项目。我还见过手动备份 sql 的,就是下班前手动用可视化工具把整个项目库数据导出来存到硬盘里带回家,第二天如果发现 bug 导致数据问题,再整个导进去慢慢恢复数据,我在任职第二年就离职了,但项目运营了五六年 。。。。。。
LennieChoi
2020-07-08 10:40:25 +08:00
你见过一个文件铺 2w+行代码的吗,js 就能做到,我特么刚来公司直接崩溃了,webstorm 打开文件超慢,打开 2w 行的那个文件时候,编辑器右边栏的 warning 提醒显示跟读进度条一样,从那时起 我被逼的入了 vscode 真香大法。代码毫无规范,毫无设计模式,简直代码怎么臭怎么写,刚进公司的时候我以为是先人留下的代码一顿吐槽,后来安了 vscode 的 gitlens 插件后 能看到每一行代码的提交作者,才发现原来是现员工写的,然后我就明白这公司的技术上限了
LennieChoi
2020-07-08 10:46:45 +08:00
@LennieChoi 有时候怀疑,写代码 10 多年了 还写这样的代码,是真的编程能力有问题 还是故意这么写确保自己在公司的地位不可替代性。但是入职这公司,接受这烂代码之后,悟到了没有什么是不能被替代的,这么写代码恶心自己,还恶心下一波人。靠写混淆烂代码确保不可替代性 有这想法的人,本身就是能力欠缺的表现,我们新生代 coder 不可追从
lewinlan
2020-07-08 12:57:12 +08:00
10 年经验算啥?我相信有不少 10 年经验的所谓大牛真的就是比初学者还菜。
话说回来,业务赚不赚钱跟技术好不好并没有必然关系……
Cookieeeeee
2020-07-08 17:09:33 +08:00
@nasmatic 好比喻

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

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

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

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

© 2021 V2EX