感觉在中小公司,很难不写出屎山代码

2021-11-08 10:34:47 +08:00
 lagoon

第一个版本:

中小公司,一般第一个版本,都是赶工上架,以我的感受,基本都是没需求、没计划、没测试(测试没时间,只能随便试试)、领导马上就要,必须上线的状态。
导致第一个版本,无论如何都是屎山。很难不想着“赶紧先交差”。

后期迭代:

基础是屎山,屎山上加盖的建筑,很难不是屎山。

重构:

我的领悟是,小重构可以,绝对不要大重构。
除非领导要求,但领导能用就行,管 bug 、管功能、很少会管代码是不是屎山。

测试也是人,如果是新事物,比较容易认真测,如果是反复测试过的模块,很难用心测。码农也是人,新功能、新模块、思路清晰。大重构很容易大刀阔斧。

重构很容易重构出许多奇妙的、不易发觉的 bug 。写反而不会写出这样的 bug 。

如果是小重构,屎山代码,靠着小重构,根本无法应对下一波来屎(一年总是能遇到几次马上就要)

中小公司:

考虑到大家的水平比较高,我说的中小公司可能等于大家眼中的小公司。
目前呆过的互联网公司规模最大的 300+人,呆过的传统上市公司规模最大的 2000+人。

19652 次点击
所在节点    程序员
176 条回复
hjq632233317
2021-11-09 08:45:08 +08:00
事实是, 时间就是金钱 ,我的 baby , 怎么算不是屎山, 你认为干净整洁的代码就可以迎合新的需求了么 ,谁能在做的时候想到新的需求是什么样的, 并且为新的需求留出扩展空间
simo
2021-11-09 08:48:49 +08:00
正在经历自己堆屎山的过程,需求一天 8 改,一个月推翻重来一次,技术团队临时拼凑(大家没有上下级,都是民工身份),开始我还做些架构,定一些规范给大家推荐一下,但是,两个月以后,只能尽力保证自己的粑粑香一点。。。。
simo
2021-11-09 08:49:50 +08:00
怎么感觉跟楼主在一个团队呢
encro
2021-11-09 09:03:02 +08:00
代码也有两种:
1 ,有人用:BUG 很多,不断改,熵越来越大;
2 ,没人用:完美

技术往往就是将一小木船,改为战舰,然后改为潜艇,再改为飞机,最后改为战争堡垒(堡垒中间还得来个伊甸园)。

所以通常人越少,架构越好,因为没有人力可以浪费在无关精要的功能和需求上;人少的时候很多人都能独挡一面,知道一项东西的来龙去脉,做出合理的设计,人一多就没法设计了----大家都有自己的思想。

为了兼顾大家的思想,我们设计出框架,框架解决了大部分问题,这时候有部分同学理解不够,没有跟上来,

后来分布式来了,异步来了,我们需要采用分布式的和异步的框架,但是这时候大部分同学跟不上了。。。

当然,将一首航行中的战舰改为潜艇,不是每个程序员的能掌握的。
p1gd0g
2021-11-09 09:11:14 +08:00
那,代码重要还是赚钱重要嘛。
raptor
2021-11-09 09:18:00 +08:00
大公司也一样,只是更大的屎山而已。部分外企相对好一点。看看开源代码就知道了
Leee
2021-11-09 09:31:06 +08:00
哈哈哈这个帖子好搞笑🤣🤣🤣

@metrxqin
其实我觉得这个帖子的“屎山”可能跟 legacy code 是不一样的东西吧。。

然后我现在想把这个帖子告诉我的朋友但是都不知怎么翻译哈哈哈哈哈
lagoon
2021-11-09 09:33:45 +08:00
@metrxqin 觉得叫屎山,也很贴切。因为就是如此,令人生理性的不适。
对于领导来说,虽然是屎山,但也是一坨好屎。但对于要处理屎山的人来说,哪怕是自己拉的屎,但也会觉得:这 TM 就是一坨屎!
shawnsh
2021-11-09 09:43:22 +08:00
正常了,你没发现自己就时时刻刻在屎山生存?各种社会事务中的屎山多不?各种政策屎山?
alienjunx
2021-11-09 10:00:22 +08:00
在前期试错的情况下,还没找到嗨点呢,不赚钱就投入大量精力优化不值得。
nicholasxuu
2021-11-09 10:23:18 +08:00
这时候才能显现出高级码工的意义,经历的屎山多了,能提前 n 步知道哪些形状的可能会带来严重的后果。
nicholasxuu
2021-11-09 10:26:50 +08:00
之前工作过的公司,创始人一个周末 hack 出来的优秀功能,核心服务组 10 年后还有修它的任务,还都是严重级别的 bug 。
rm0gang0rf
2021-11-09 10:28:09 +08:00
知道为啥招新人吗?因为屎山需要新人来更新挖掘,因为新人更有动力挖屎
winterbells
2021-11-09 10:41:37 +08:00
@cubecube #13 说得对

在上家时候,弱智队友留一堆 bug 下班了。老板一看哟,能用了,真不错。什么? crash 了。发现我在就让我改,我 TM 自己正准备下班呢。最后糊弄一下能跑就行了
Vindroid
2021-11-09 10:41:43 +08:00
只要业务导向的后期肯定是屎山,架构得再好也跟不上各种奇思妙想的需求
mghio
2021-11-09 13:01:44 +08:00
推荐 [刘未鹏]( http://mindhacks.cn) 译的一本书《修改代码的艺术》
mghm
2021-11-09 13:26:05 +08:00
很久很久以前,有十几年了吧,我在一家公司做网站,我们的工作是做模板站的,一般一个员工一个月能出三五个模板站就不错了,必经还要跟客户进行沟通。我们团队就有一个同事一个月能做十几个,当然一个月工资收入也很高。在一次团建中,团队领导还表扬他,让我们跟他学习,提升效率。但是,我发现一个有趣的现象,每进来一个实习的员工基本上都是在处理他的屎,提成他拿走了,也得到领导了信任了。说白了,中层领导能看不到吗?但是,领导为什么对他做的事情置若罔闻,说白了还是利益。本质上,他和领导的利益是站在一起的。
rm0gang0rf
2021-11-09 13:29:26 +08:00
又看见了,想笑,大公司的屎山可能味道和成分比较多,有选择性
matrix67
2021-11-09 13:58:54 +08:00
质量差的代码就像肿瘤,外部边界清晰的模块,是良性肿瘤,可以随时切掉。
外部边界模糊的是恶性肿瘤,无药可救,只能尽量延长生命。

是这样, 所以一个不朽的架构在诞生之初就是伟大的, e.g. UNIX, PLAN9, 而现今码农写的业务可能都是朝生夕死, 连婴儿期都没过去业务就没了. Cloud NAIVE 仿佛就是个池塘, 专门孵化孑孓. 孑孓死了直接被系统降解回收, 孑孓变成了苍蝇, 也自然不在池子里再部署了.

我们 Cloud NAIVE 程序员别说领域驱动设计了, 连设计模式早都不用了. 面向啥切面搞, 微服务重写一遍都比想个设计模式快. FAAS 才是未来
lockelee
2021-11-09 15:06:45 +08:00
我们不生产屎山,我们选择屎上雕花

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

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

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

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

© 2021 V2EX