如何避免屎山代码,理论上可行的思路

2023-01-05 09:43:25 +08:00
 taogen

如何避免屎山代码

  1. 减少屎山代码产生的可能。实行单元测试和代码审查。但时间成本提高了。
  2. 减少产生屎山代码的人。多招高级工程师,不招初级工程师。但人力成本提高了。
9065 次点击
所在节点    程序员
87 条回复
Building
2023-01-05 15:25:29 +08:00
首先你要定义什么是屎山啊
有些人几个环境写下来代码可能连整齐都做不到,你一眼看过去代码就跟狗啃的一样,但是逻辑很顺很高级,跑起来啥问题没有,性能也快得很,算不算屎山?
有些人写的代码十分整齐,一眼看过去就赏心悦目的,注释说明比方法还长两倍,但是实际看下来你发现这逻辑那是一踏糊涂,算不算屎山?
whileFalse
2023-01-05 15:37:14 +08:00
@Building 这都只算是💩,💩⛰️是💩的交叠
txy3000
2023-01-05 15:59:15 +08:00
和代码和解,接受世界是墒增有那么难吗?
pkoukk
2023-01-05 16:05:07 +08:00
@Building 屎的 N 次方才是屎山,屎一样的架构设计,数据库结构,模块设计,外部依赖,最后才是代码逻辑。
如果前面的基础打的很好,代码写的烂只是在山里拉屎
zhanlanhuizhang
2023-01-05 16:08:02 +08:00
怎么说了。定期重构,是最好的办法。但一般的商业公司很难实现这个。
mrblacklu
2023-01-05 16:22:19 +08:00
很难,项目基本多人维护,维护人员写代码的行为不可控,除非每个人的编码素质都很高,都能写可维护性比较高的代码,而且在维护的过程中需要根据业务或者实际需求的需要进行一定的重构调整。
did
2023-01-05 17:59:57 +08:00
写代码五年了 还没见过哪个公司项目里没有屎山代码的
did
2023-01-05 18:03:00 +08:00
说都很好听 但资本一发话你没有选择 而且何苦呢 你加班把代码搞的再好看 公司会给你涨工资吗
zw1one
2023-01-05 18:12:05 +08:00
你要接受这个世界就是屎山构成的,不仅是代码。
zw1one
2023-01-05 18:15:57 +08:00
减少屎山的话,需要一个能平衡代码质量与业务需求的 leader ,也可以你自己成为他。
timethinker
2023-01-05 18:17:19 +08:00
只需要一个像 Linus Torvalds 这种强有力的领导者即可
miv
2023-01-05 19:49:46 +08:00
很多人都是说架构啊,设计呀,代码。其实一开始是需求,你理得不清楚,产品经理不行的话,那你很容易搞出浪代码。
pengtikui
2023-01-05 21:35:45 +08:00
持续 & 小规模的重构
YYYeung
2023-01-05 23:42:32 +08:00
不断重构
SteveZou
2023-01-05 23:49:29 +08:00
插个话:看这个帖子我才发现自己已经分不清有些回答是不是 chatgpt 了……
allgy
2023-01-06 09:18:43 +08:00
no code
summerLast
2023-01-06 09:23:57 +08:00
屎山代码 本身可以描述成代码的混乱程度即可以用代码的熵来形容,方法有两个 一个是尽量少的代码和单位代码质量比较高,工程上能做的就是如何从这两个方向下手,1 就是功能能否简单的设计 2 是提高代码质量,可以参考 Unix 哲学
summerLast
2023-01-06 09:27:47 +08:00
我们现在遇到的绝大部分问题前人都遇到过,去学习那些大牛如何做的在根据实际情况做出相对调整即可,没有完美的方法和全部适用的具体做法,没有银弹
skyqing
2023-01-06 09:28:34 +08:00
有的项目代码写的还可以,但是业务太繁琐了,要加各种判断各种兼容,导致代码可读变差
agagega
2023-01-06 10:27:53 +08:00
屎山这个词到底从哪来的?这个词翻译味特别重,并不太像原生中文词,但我搜了半天也没看到有英语世界的人用 shit mountain 形容代码

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

https://tanronggui.xyz/t/906667

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

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

© 2021 V2EX