程序员
Python
编程
Java
X 是种怎样的体验

看自己几年前写的代码是怎样的一种感受?

在Quora上看到类似的问题,故想在知乎上了解一下大家是怎么看待过去自己写的代码,有什么经验和教训和新手分享一下。 现在的你如果能穿越到过去,你会对几…
关注者
1,269
被浏览
164,735

234 个回答

为了回答这个问题,我特地掏出了我的移动硬盘,里面存放了我珍藏多年的种子(误

一眼就看到了USACO和URAL目录,应该有不少陈旧的代码。

2007年,嗯,高一高二时刷的USACO,让我们来看看写的都是些啥。

让我挑一个字节数大点的文件打开来瞅瞅……


这一坨函数,看来我在当年已经灵活掌握了函数式编程(误

等等…… 这TM是什么


我在怀疑当时我是不是写了另一份代码来生成这个代码……WTF

换个目录,不然要掉粉了,吓得我赶紧点开刷ZOJ的代码库。


虽然这个裸的BFS框架伴随了我很久,但为什么不把里面的方向以向量形式保存到数组里啊!!!这后面长得我都截不下图了……

好了,赶紧让我上大学吧/(ㄒoㄒ)/

这是某一场校内现场赛的代码,冥冥之中我感觉这之中应该隐藏了什么计算几何的大智慧,有两行逼格满满的 for 循环,但我已经看不懂我写的是什么了。

但是,为什么那个 swap 和 next 两个教派的会在一起?!看来当时的我已经人格分裂了。

这波应该要涨粉!因为我看懂了这好像是我已经无法手敲的后缀数组,感觉当年的自己好厉害。

然后发现这TM好像是套了模板出的题。

你看我这么水也能在亚洲赛拿牌…… 你们不参加竞赛是不是感觉自己大学被狗吃了。

然后就毕业开始搬砖了,还是做的蛋疼的嵌入式开发。


这段代码应该至今还在全国各地的海格客车上跑着,是负责把车身CAN信号解析出结果显示到仪表上。当时技术老大说我底子还不错,让我去写底层的这一个个DLL插件,但其实也没啥大难度,整天做位运算操作感觉把自己写吐了不说,还经常要出差去海格工厂的测试客车上调试,40度的天呐!!

然后就跳槽去了互联网公司,当时那感觉就是另一个全新的世界。

因为之前竞赛经历,新公司老大让我跟着他搞算法模块,然而这一堆什么广告ctr预估根本不懂,硬着头皮看完了相关论文和老大些的代码,强行开车上路。


这时候的代码风格,基本跟现在接近了,无非就是后来加入了不少C++11特性。

比如之前造的轮子,自己动手丰衣足食:


最后的感受就是,这辈子都要走在通往精通C++的道路上了。

突然发现签名自动变Python话题下的了,Python代码没啥好贴的,因为近两三年才开始码的代码,看不大出有啥变化……


谢谢观赏 ~

编辑于 2016-03-23 16:43

我在很早起就形成了稳定的风格和路数,到现在没怎么变,所以看老代码和新代码差不多。甚至早期会更多地用语言技巧,现在写的更朴实。

一次开会的时候,在阿凡达的渲染器PantaRay里看到了一段代码,越看越熟悉,这特么不是我N年前写给Halo的吗。

后来搞清楚了授权链,发现确实是我的。怪不得看阿凡达的时候发现连artifact都那么熟悉。

编辑于 2016-02-04 06:51

谢邀。

初中时的代码:变量名都是一个字符的。空格是 QBasic 自动排版加上的,我才不加呢。

高中时的代码:变量名开始完整了,但空格是什么?

本科及以后的代码:运算符周围开始有空格了,会用空行来分段了。

感慨:屏幕分辨率越来越高了,存储设备越来越不值钱了。

发布于 2019-09-09 05:09

曾经翻个好久没改动的代码库。

这哪个傻冒写的?blame一下,发现是自己。

唔。。。仔细看看还是不错的嘛,排版稍微有点乱,if...else...有点多,有几个条件其实可以合并一下,逻辑简单多了,但是好歹这代码中规中矩啊,没什么错漏。

再一回想,当时挂了权限检验的hook,有个同事没有这个库权限,又懒得走申请流程,借我的账号提交的。。。

尼玛这垃圾代码完全不能忍,一行注释也没有,这里这个解id的功能公共包util里有可以直接调用,强调n次了还是要自己写,还有这里。。。写的什么玩意。。。

发布于 2016-02-03 15:07

写了这么多年Pascal不会指针的我是怎么靠着开大数组当内存池用活下来的

为什么begin缩进end不缩进而且还是两个空格

没有string没有vector的代码看不懂 出边强行开300的数组觉得够用了糊过去了

发布于 2016-03-20 21:08

12 年:

14 年:

现在:

我觉得再过两年我的缩进就只有一个空格了。。。

发布于 2016-03-21 14:48

读以前的代码或文章,会两极分化。

  • 佩服自己。我现在未必可以写出来,或者已经没有那个耐心去写了。
  • 还真傻啊,这是我写的吗?

自己写的东西不要扔,回头看会很有价值。我现在就很可惜找不回读书时的作文本和试卷。

编辑于 2016-02-06 23:33

虽然下面这个『速算24点』的小伎俩没什么难度,做的也不好。

但是不犯错就得不到锻炼的机会为什么一定要否定过去呢?

如果回到十年前,我仍然会告诉当时的我,『加油,年轻人,相信自己』。

编辑于 2016-03-20 22:34

以前我能hardcode汇编……

现在只能先编译完copy&paste改改了……

记忆力下降得厉害>< 该吃药了

-看到了老年痴呆的未来-

编辑于 2016-03-27 12:32

这谁写的?代码好整齐,注释好齐全。

还能这么用?哇塞好酷炫

这实现好偏们,但是好简洁啊。

扩展起来棒棒哒

这个api我没见过欸,用这个省好多事

注释的作者竟然是我!老夫不信。

卧槽,首次提交也是我

发布于 2016-02-14 12:52

我每一秒都认为上一秒的自己是个傻逼,你居然问我几年前的代码?

发布于 2016-02-27 00:17

窝巢,这烂代码居然稳定运行了这么多年

窝巢,原来这里有个BUG,可是竟然没触发过

窝巢,这里明明可以一行代码搞定的,竟然用了三行

窝巢,竟然没写注释,真为现在维护我代码的人感到悲哀

窝巢,手写红黑树也只有刚毕业的孩子能干得出来了

窝巢,原来C语言解析一个配置都这么麻烦,我用Python后都不知道怎么写C了

窝巢,当时我这么努力,老板为什么看不到

窝巢,看这头文件注释,原来都过去了这么多年了

窝巢,当年我写这个代码的时候的女朋友不知道现在怎么样了 /(ㄒoㄒ)/~~

发布于 2016-02-04 14:47

来个反方观点

我的反应是:

我擦。。。没想到当年我钻研rpc这么深哪?那时候就会设计模式了?小子可以啊(´・ω・`)

怀念几年前,呆在北京,为hessian写的一个增强特性的那个春节

编辑于 2016-02-04 13:38

平均两年换一个工作语言,6年前是Tcl/tk,4年前是c#,2年前是c++,现在是ocaml + c++ 。。

不对,6年前还写了些C++的,一去看。。。

这是C++吗?这分明就是C+类+ASM啊,自带库除了string一个都没用,全部自己造轮子。。。

现在写c++已经完全fp流了

编辑于 2016-08-02 23:47

咦?这段代码是不是有问题?

诶?跑起来居然成功了?

咋回事?

(看代码看代码...)

啊!原来是这样!!

我真是太牛了!!!

居然能想到这么写!!!

我要爱上我自己了!!!!!

PS:之前写的代码都是很认真的,而且一些特殊需求可能那时候会想很久,然后用一些小办法把问题解决了。下次看代码就觉得我当时好牛啊,居然可以这么做!现在不行了,要干的活多了就不会好好想细节... →_→

发布于 2016-02-04 11:51