写程序,到底把代码写复杂一点好,还是写简单一点好?

2022-10-24 12:43:10 +08:00
 tool2d
一个项目写久了,内部逻辑必然会变复杂。

而大部分码农最讨厌的一件事,就是继承别人的项目进行二次开发。

所以除非继承代码是非常简单的,否则宁可弃用,完全自己从头写。

有时候我在思考,太过复杂的项目,最后是不是没谁愿意接手维护啊?只要能正常运行,保证不挂就行了。
3803 次点击
所在节点    程序员
31 条回复
pein
2022-10-24 15:39:18 +08:00
从软件工程角度:隐藏复杂实现部分,运用设计模式,模块化解耦,逻辑清晰越容易看懂越好
从自身利益角度:能看懂的人越少越好,比如使用 C++模版再混合多种语言,增加不可替代性,否则随便招个新人就把你给优化了
zyxk
2022-10-24 23:20:32 +08:00
我总是想尽可能的简单, 总感觉 复杂一点, 程序就会运行很慢的感觉, 你们有这样吗?
jones2000
2022-10-25 01:34:17 +08:00
写程序是用来解决问题的, 就算代码再复杂,能解决问题, 给公司或客户带来高额的收益,基本这个团队里的人就很少流动,你想进去都难。
xqk111
2022-10-25 08:58:29 +08:00
代码越简单越好
zjj19950716
2022-10-25 10:04:03 +08:00
大道至简,no code no bug
wangtian2020
2022-10-25 11:19:36 +08:00
我前端能用 Array map filter 扩展运算符 可选链 一条龙一行解决的逻辑绝不拆开写
目标就是削减代码总行数,短小精悍绝不废话
能用箭头函数绝不多写一个“function”
llsquaer
2022-10-25 13:17:03 +08:00
写了一段时间的 python 发现项目写大了..能用函数解决的就用函数,别想当然的再去搞一个 class 类..麻烦
AnroZ
2022-10-25 13:29:48 +08:00
给公司写的代码是用来(自己或他人)维护的,写简单点为佳。这里说的简单指 code 写得要通俗易读,而非功能简单。可以为一些性能放弃复杂语义写法。
luvxy
2022-10-25 14:01:28 +08:00
写复杂点对自己好 写简单对别人好
shellus
2022-10-25 15:12:30 +08:00
其实楼主这是很多个问题

1:写程序,到底把代码写复杂一点好,还是写简单一点好?
答案是肯定和绝对的:简单好,类比其他东西你就会明白了,例如科学研究,例如写文章,都是在试图将复杂的和困难的东西简单化,找出其最短路径,那就是成功,例如老师将复杂的道理浅显的讲给学生听,那就是一个好老师,例如将一些玄学的,自古以来没人能解释的清楚的现象用实验的方式重现并归纳其原理,那就是一个好的科学家。同样的,如果你将一个复杂的系统,用浅显易懂的代码实现了,那么你也会是一个好的程序员。


2:一个项目写久了,内部逻辑必然会变复杂。
大多数情况是这样的,为什么会写久了?因为业务逻辑不断变化,增加。所以对应的代码越来越多。
当然也有例外情况,例如 windows 的扫雷游戏,因为它的业务逻辑不会变化,如果你一直写它的代码,那么就不是对代码做加法,而是优化,优化必然会让代码变得更加可读。

3:而大部分码农最讨厌的一件事,就是继承别人的项目进行二次开发。所以除非继承代码是非常简单的,否则宁可弃用,完全自己从头写。
通常情况下是这样的,因为我们都不是神仙,都要吃饭拉屎,我为了吃饭而在公司拉的屎山,现在要你来清理的话,没有人会高兴得起来。
但是换个角度来看,其实大多数人都喜欢继承别人的代码来进行开发,例如什么呢?例如各种编程语言,各种开发框架,继承他们的代码来进行开发,我们往往不知不觉,享受其中,确忽略了这本质上也是在基于他们的代码进行后续开发,为什么就没有感到不开心,反而非常乐意呢?如果想明白了这个问题,我想你的继任者也会很高兴接手你的代码。


4:有时候我在思考,太过复杂的项目,最后是不是没谁愿意接手维护啊?只要能正常运行,保证不挂就行了。
是的,没有人想铲翻屎山,除非你想沾一身屎。
除非你有非常棒的项目管理能力,一边完成新任务,一边规划吃力不讨好容易导致业务故障的优化,但是绝大多数情况,这么优秀的人才,一般不会去接手屎山项目。
大多数普通人,还是继续吃饭和拉屎,写新需求,拿工资,往摇摇欲坠的项目中添加更多难以维护的代码。


引用一段笑话:
"每一个程序员在他的职业生涯中某一天都会突然获得开示,这种开示在通常某一个夜晚悄然降临,有时是以图灵本人托梦的形式出现。这一开示的主要内容如下:程序员是真正理解思维和逻辑真谛的人。非程序员是被蒙蔽的无知者。每一个程序员对于世界上其他程序员有着不可推卸的责任。每一个程序员都必须尽力维护程序员这一高贵种族的延续,并保证世界的命运控制在程序员手中,既不被无知者淹没,也不被机器智能取代。完成这一使命的唯一方式,是保证稳定地出产低质量,难以理解,修改和维护的代码。每一个负责任的程序员,他每一年的产出,必须为另外三个程序员制造一年的就业机会。唯此,程序员一族可生生不息,整个 IT 行业欣欣向荣。图灵大神在冥冥中微笑,他的纸带机将嗒嗒作响,直至永恒。"
anonymous2351d00
2022-10-26 17:20:41 +08:00
简单的代码做复杂的事儿最好

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

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

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

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

© 2021 V2EX