日期:2014-05-20  浏览次数:21047 次

如何才能看懂别人写的代码
现在领导让我负责维护别人的代码,那人辞职了。我看了看他写的代码,太乱了,基本没什么注释,而且命名及其不规范。我问领导,有开发文档没有,领导说没有。除了这些代码其它什么都没有。我都晕死了,那代码是那人以前写的,现在程序出问题,要修改,我现在只能加断点一行一行的跟踪。这样太累了。我脑袋都快炸了,请问各位DX,大家平时都是怎么看别人代码的?有什么好的办法没有?谢谢。另外,我发现我在CSDN上看别人帖子里的代码,没有注释我也看不太懂,虽说每行里的方法和类都明白,但串到一起都糊涂了。请问,各位DX我这是什么问题?什么地方有欠缺?小弟跪拜Orz

------解决方案--------------------
1.先看设计模式方面的书,不看这个,的确很多人写的代码你不会明白是什么意思.因为抽象程度不一样.
2.如果对方是高手,那么看人工智能方面的书,不然很多代码也会看不明白,因为你不明白人家的解题思路.
3.不要追求细节,明白类\方法的大体意思就行了,因为人家的代码毕竟已经运行正常,如不需要修改,只需明白其功能则可,到修改时再具体研究.另外,最好附加功能模块,而不是直接修改人家的代码,除非你希望你离开以后还有人可以很方便的接手你的工作.
4.最后一招,就是多看代码,这是最有效的方法,代码读得越多,分析能力越强.


没有什么规则能代替人的智力,思考是解决问题的唯一方法.
------解决方案--------------------
谈谈我的经验..
OO方法写的代码要从接口,基类看起,最好反向出继承关系图
面向功能的比OO的好看点,不过要是一个思维方式不正常的人写的就更不好看..
在看功能的时候,要想想你要如何实现,然后在对比别人的代码,看看人家的代码比你写的好还是更垃圾...
^_^...多读代码...看别人的代码,也是程序员的能力..


------解决方案--------------------
读程序的能力要靠基本功和经验帮忙, 一般多写写代码就可以提高了. 按你的情况只能硬着头皮读了,开始可能很辛苦,后面应该会好一些.有几个小的窍门希望可以帮你:
1. 每个人都有自己的思维习惯,因此再乱的代码也有自己的风格. 比如命名, 比如UI的时候习惯先写Insert动作等等. 找到这些地方可以帮助阅读代码.
2. 一般情况都可以从界面录入着手读代码, 先搞清楚有那些输入, 做了什么, 有什么输出.之后在看代码的细节会比较容易.
3. 多多利用错误调试的技巧, 通过断点,日志可以帮助找到出问题所在的位置.
4. 如果一段代码很乱,又有问题,对逻辑有把握的话,最好重写. 浪费时间去读懂不如重新写一遍来的效率.
5. 基本功如果不扎实的话,建议一边补课一边读程序.

------解决方案--------------------
c#基础功要扎实.
能看懂一个大体流程脉落.
然后再细分
还有调试时的很多技巧也是基础与重中这重.
------解决方案--------------------

《代码阅读方法与实践》
http://product.dangdang.com/product.aspx?product_id=8802139
看看有没有帮助。
------解决方案--------------------
还有这个:

《修改代码的艺术》
http://product.dangdang.com/product.aspx?product_id=20042280
------解决方案--------------------
《修改代码的艺术》在CSDN读书频道的连载(部分):
http://book.csdn.net/bookfiles/506/
------解决方案--------------------
首先要清楚软件的功能细节,然后逐个功能的查看,至于每行代码,只有楼主自己看了,不清楚的可以再问,也可以到网上查。
------解决方案--------------------

http://product.dangdang.com/product.aspx?product_id=8878100

《程序设计实践》是一本不可多得的好书,我前几年买的,看了好几遍了,每看一遍都有收获。
现在还有双语版了:http://product.dangdang.com/product.aspx?product_id=9300075
------解决方案--------------------
《程序设计实践》中文版pdf文件.rar
------解决方案--------------------
首先一定要明确程序的功能是什么。
然后看你目前最急需要看的模块,其他的先不要管,这样把范围缩小。