程序员读别人的代码是一种什么样的心理体验?

  • 回答 (70)
  • 关注 (6)
  • 查看 (1274)

我们之所以认为旧代码一团糟,其实是由编程的一个基本定律决定的,那就是:写代码容易,读代码难。

  • 看别人的代码觉得好烂,好想改,是不是一种病?!
  • 宁可重写,也不愿意读别人代码?!
  • 代码有好有坏,让人头疼的居多?!

那么,当作为程序员的你,读别人的代码到底是怎样一种心理体验呢?快来分享你的心得吧!

内容要求

● 文字 50 字以上(需原创,禁止转载)

奖励

回答赞同数 TOP10 的用户将有机会获得精美定制小礼品一份

评选标准

  • 回答需符合活动中所提及的要求,符合社区规范
  • 请遵守社区规范,如有违规行为,一经发现即取消参与资格

评选结果 & 公示

云+社区小助手 8 月 13 日在获奖评论下通知答主,奖品将于30日内发放

云加社区云加社区

腾讯云 · 产品运营 (已认证)

提问于
回忆大大邀请了用户2600693来回答
shaun回答于
推荐

以下案例为反面教材,大家不要模仿∠( ᐛ 」∠)_

我接手了这个项目,发现整个系统对外交互的接口就这一个orderController(里面不止订单维度的接口。。。)

它果然幸不辱命2370行代码。(我看不下去了就新增了一个PartnerController,希望我走后controller这个文件夹里面能多一些成员。)

槽点太多,代码太深估计各位看着我debug截图也费头发,所以挑一个简单代码规范来说

测试通过就能上线,冲冲冲!
再插播一个吐槽重复代码太多,业务代码里面有这个,Utils里面也有这个,哎,我就不用,我就是玩,我就要自己重复造轮子
爷傲奈我何 ¯\_(ツ)_/¯

插播上面吐槽:重复代码太多,业务代码里面有这个,Utils里面也有这个,哎,我就不用,我就是玩,我就要自己造

无用代码做的非常好,懂得注释掉,不像有些地方没有用的代码还在那里放着,也不知道到底有,有没有用

_(´ཀ`」 ∠)__

还有些麻烦的写不出来!

大家上次还嘲笑我芝麻糊+奶粉,我最近还要买六个核桃补补脑

孙叫兽我坚信技术改变世界回答于
推荐

1. 居然能TM这么写?

2. 居然能TM这么写!

相信好多程序员朋友们都会面临这样一个问题,那就是可能要阅读其他人的代码,好多人内心其实都是拒绝的,很少有人在阅读其他人代码时产生愉悦的感觉,大多数都是觉得痛苦,甚至边看边骂。

  • 我勒个去这个好牛逼怎么做到的?我研究一下。 (若干小时后) 应该大概是这样吧……
  • 这个根本不用这么麻烦嘛,看我怎么把它弄好。 (若干小时后) 难怪那时候要这样写……原来是这样…… (回滚到修改之前的状态)
  • 这个谁写的这么屎……让我看看…… git blame(发现是自己写的) 嗯这个还是能用的(严肃)。

接下来咱们就来主要分析一下心理体验。

首先写自己的代码时自己是一个创造者的角色,自己想要干什么是明确的,代码的设计是按照自己的习惯去设计的,实现过程都是按照自己的思维习惯去实现,完全随着自己的性子,自己的风格去走,因此写代码时会让人产生愉悦感,看到一行行的代码积累,并形成了自己的产品,并能运行看到想要的结果是十分有成就感的一件事情了,而读代码就不一样了,读代码时自己是一个挖掘者的角色,因为要看的代码是做什么的,想实现什么功能事先是不知道的,在未知事情之前人们都有一种紧张恐慌的心情,随着代码量的增加,这种紧张和恐慌就越强烈。这就是好多人读代码时觉得痛苦的原因。

每个人都有自己的思维习惯,在自己的思维习惯里取思考问题就是停留在自己的思维舒适区,是舒适的。如果用另外一种不属于自己的思维去思考问题,好多人都是难以做到。看别人的代码就是这样,好多人在看别人的代码时都是拿着自己的思维习惯去看别人的代码,如果这个人的思维习惯与你相似,那么你看他的代码还有可能相对轻松一点,如果他的思维习惯与你差异很大,那么你看他的代码一定是痛苦的,在看代码的过程就是两种思维方式的较量,两种思维方式在你的大脑里在斗争,思维方式差异越大,就斗争的越厉害,读代码者就表现的越痛苦。

总结,以一种平静的心态去读别人的代码,然后就是把自己从创造者角色给拉出来,做一个挖掘者,梳理者,以侦探的姿态去读别人的代码,再然后就是放空自己的固有思维去读别人的代码,坚持做到这几点去读别人的代码,长时间下来,你会发现,不但了解到更多人的思维方式,从中学习了一些优秀的思维方式,而且读别人的代码会变得愉悦起来,而不是痛苦的感觉。

阿策小和尚回答于

实事求是,读别人代码一般有两个极端:

一种是感觉写的非常糟糕,并不一定是逻辑不对,而是各种奇奇怪怪的换行空格,命名规范和一个长达200行代码的方法没有一句注释,甚至是一个判断里面有5~6个(++i),读着真的是非常不舒服啊,尤其是一大片的空白换行,真的是要逼死强迫症啊;

另一种是感觉写的非常好的,一般都是经过很长的技术沉淀的大佬,方法写的很简洁,逻辑也非常清楚,注释不一定要非常多,但关键点的一两行注释有一种顿悟的感觉,读这些代码真的如沐浴春风啊,和尚强烈建议读一些Google的源码,大部分写的都非常好;

不管是糟糕的代码还是优秀的代码,不出Bug的代码才是好代码,和尚陪大家一起学习,争取向好代码进步;

最后还是希望天下无Bug!!!

乱码三千把复杂的事情简单化~回答于

本人Android开发, 经手的项目不下十个, 碰到过问题很多的项目,比如逻辑代码太集中, 依赖混乱, 冗余代码占比70%等等

原因要么是之前同事技术太菜, 要么就是责任心不够

一般遇到这种情况 处理的方式完全取决于公司的态度(待遇), 如果时间足够 一般会选择重构, 方便后期维护

如果时间不允许, 只能在垃圾代码的基础上再加一些垃圾代码(摊手)

多年的经验告诉我, 不要轻易跳槽, 否则加速脱发

幻影龙王沉迷于在代码海洋里回答于

看前同事留下的代码头疼,这种感觉太正常了。

程序员最怕读别人的代码,比这个更可怕的是什么?

从别人那里接手一个老项目

前任程序员或者是编码能力不行,或者是跳槽之前故意摆烂……于是,一个隐藏着一堆烂摊子的项目,扔给了后来接手的人。

总结一句话难搞的总会留给你收着,为了生活干下去也是值得!

LittleU

南京尚哲智能科技 · unity开发工程师 (已认证)

一位脱离了高级趣味的人.回答于

不想读别人的代码,大概率是因为代码格式不规范,功能含糊不清.调用混乱等

你用过别人的框架吗?在别人的框架基础上改过功能吗?那个时候是不是总在心里默念:"大神啊大神,献上膝盖",跪着看完......

还有,读别人的代码就是把自己的思路拉到和他一个层次,如果你觉得他是个傻叉,那么说明你的思路比他清晰,考虑的比他全面,如果你觉得他的代码能让你膜拜,那么你在他眼里,你也是个傻子.

Wayit回答于

写得好的:nb!

写的乱的:。。。困了,先睡个觉吧

滚神大人回答于

What?

What??

What???

WTF?

WTF??

WTF???

老板,这个功能大概需要5天时间。

5天后,

$ git diff
diff --git
index 69fee01..fa4f394 100644
--- a/Program.cs
+++ b/Program.cs
@@ -28,6 +28,7 @@ namespace
        Console.WriteLine("Bye");
        
微醺回答于

看别人代码内心:这是哪个傻逼写的,卧槽!注释都没有!这tm写的跟屎一样!好吧,还是看吧!我去,真的看不下去,注释呢?哎,这写代码的时候为啥不写注释呢?真的想不明白,算了,不气,平复内心。

Python进阶者该社区将不定期分享各种技术干货、学习资料等。关注我们,您收获的不只是知识,还有经验与人脉!回答于

看到别人写的代码,如果不加说明,不加注释的话,真的特别想把那个写代码的人拉出去祭天!!!

程序猿Damon回答于
挖掘开源的价值挖掘开源的价值,公众号同名,欢迎关注!回答于
哒呵呵专注编码的程序猿回答于

1. 看到长得很漂亮代码,比如注释完善,通俗易懂:

谁写的啊,好好学习

2. 看到长得丑陋的代码,比如没有注释,命名看不懂,结构散乱

谁写的垃圾代码?居然不写注释,有没有点常识。

这里怎么能这么写,bullshit。

看起来顺眼多了。

用户3776361回答于
sofu456理科码农修改于

理想情况:看别人的代码才能提神自我,读好的代码可以学习别人的架构和写法,读差的代码也是一种锻炼(折磨),去糟粕留精华,不然全都注释了吧。|~..~|

现实情况:*工,怎么这么简单怎么还没写完,今天加班哈。我:fuck

悲伤汤圆猫回答于
西门呀在吹雪非典型性程序员回答于
用户4810428回答于
用户7341613回答于
我是楼上亲回答于
抬头向阳..00回答于
用户6656529回答于
用户3610078回答于

大多会觉得很烂

重构上有句话,说傻瓜都会写出机器理解的代码,只有让人理解才是个合格的程序员。看着各种源码的时候,深深感受到。

用户6029740回答于
用户8940624回答于

以下案例为反面教材,大家不要模仿∠( ᐛ 」∠)_

我接手了这个项目,发现整个系统对外交互的接口就这一个orderController(里面不止订单维度的接口。。。)

它果然幸不辱命2370行代码。(我看不下去了就新增了一个PartnerController,希望我走后controller这个文件夹里面能多一些成员。)

槽点太多,代码太深估计各位看着我debug截图也费头发,所以挑一个简单代码规范来说

测试通过就能上线,冲冲冲!

再插播一个吐槽重复代码太多,业务代码里面有这个,Utils里面也有这个,哎,我就不用,我就是玩,我就要自己重复造轮子

爷傲奈我何 ¯\_(ツ)_/¯

插播上面吐槽:重复代码太多,业务代码里面有这个,Utils里面也有这个,哎,我就不用,我就是玩,我就要自己造

无用代码做的非常好,懂得注释掉,不像有些地方没有用的代码还在那里放着,也不知道到底有,有没有用

_(´ཀ`」 ∠)__

还有些麻烦的写不出来!

大家上次还嘲笑我芝麻糊+奶粉,我最近还要买六个核桃补补脑

修改于 25天前

14

13

5

孙叫兽我坚信技术改变世界推荐

1. 居然能TM这么写?

2. 居然能TM这么写!

相信好多程序员朋友们都会面临这样一个问题,那就是可能要阅读其他人的代码,好多人内心其实都是拒绝的,很少有人在阅读其他人代码时产生愉悦的感觉,大多数都是觉得痛苦,甚至边看边骂。

我勒个去这个好牛逼怎么做到的?我研究一下。

(若干小时后)

应该大概是这样吧……

这个根本不用这么麻烦嘛,看我怎么把它弄好。

(若干小时后)

难怪那时候要这样写……原来是这样……

(回滚到修改之前的状态)

这个谁写的这么屎……让我看看……

git blame(发现是自己写的)

嗯这个还是能用的(严肃)。

接下来咱们就来主要分析一下心理体验。

首先写自己的代码时自己是一个创造者的角色,自己想要干什么是明确的,代码的设计是按照自己的习惯去设计的,实现过程都是按照自己的思维习惯去实现,完全随着自己的性子,自己的风格去走,因此写代码时会让人产生愉悦感,看到一行行的代码积累,并形成了自己的产品,并能运行看到想要的结果是十分有成就感的一件事情了,而读代码就不一样了,读代码时自己是一个挖掘者的角色,因为要看的代码是做什么的,想实现什么功能事先是不知道的,在未知事情之前人们都有一种紧张恐慌的心情,随着代码量的增加,这种紧张和恐慌就越强烈。这就是好多人读代码时觉得痛苦的原因。

每个人都有自己的思维习惯,在自己的思维习惯里取思考问题就是停留在自己的思维舒适区,是舒适的。如果用另外一种不属于自己的思维去思考问题,好多人都是难以做到。看别人的代码就是这样,好多人在看别人的代码时都是拿着自己的思维习惯去看别人的代码,如果这个人的思维习惯与你相似,那么你看他的代码还有可能相对轻松一点,如果他的思维习惯与你差异很大,那么你看他的代码一定是痛苦的,在看代码的过程就是两种思维方式的较量,两种思维方式在你的大脑里在斗争,思维方式差异越大,就斗争的越厉害,读代码者就表现的越痛苦。

总结,以一种平静的心态去读别人的代码,然后就是把自己从创造者角色给拉出来,做一个挖掘者,梳理者,以侦探的姿态去读别人的代码,再然后就是放空自己的固有思维去读别人的代码,坚持做到这几点去读别人的代码,长时间下来,你会发现,不但了解到更多人的思维方式,从中学习了一些优秀的思维方式,而且读别人的代码会变得愉悦起来,而不是痛苦的感觉。

浩Coding与你分享小码农的成长之路!不定期分享前端、数据库、Java、Linux运维等知识。回答于

运气好是不错的,运气不好就是万年石山,我接过一个前端页面3000多行,全部功能都在一个页面,一个函数能调用七八个函数,最后精简到800多行,不敢再删了,怕跑不起来。。。

用户1636960回答于
用户8976379回答于
用户2592719回答于

强迫症看到不属于自己风格的代码真滴难受

用户1431154回答于

读自己之前写的代码都难受。

公司项目基本上是拿之前的项目来改,导致无用的代码越来越多,手上超过1w行的屎山类都有好几个了,有用的大概也就1000行左右把。。。

扫码关注云+社区

领取腾讯云代金券