搜索
bottom↓
回复: 45

拿到别人写的源代码,怎么才能够快速理解?

[复制链接]

出0入0汤圆

发表于 2013-5-13 10:07:04 | 显示全部楼层 |阅读模式
      拿到一源代码,很长,分开很多个模块,怎样才能够快速理解各个模块的功能?看源代码有什么好的方法?请教各位!

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2013-5-13 10:14:46 | 显示全部楼层
这个没办法吧,看天赋。我就很不愿意看别人的代码。。。

出0入0汤圆

发表于 2013-5-13 10:33:52 | 显示全部楼层
这个问题问的好,估计大家都想知道答案
一般来讲,你的水平高于写代码的人,你很快就能看懂;你的水平低于写代码的人,不容易看懂。

出0入0汤圆

发表于 2013-5-13 10:45:24 | 显示全部楼层
RTFSC               

出0入0汤圆

发表于 2013-5-13 10:46:56 | 显示全部楼层
很多人推荐用source insight看看,,

出0入0汤圆

发表于 2013-5-13 10:47:56 | 显示全部楼层
SHIFT+DEL

出0入0汤圆

发表于 2013-5-13 11:38:42 | 显示全部楼层
当然还要看写代码的人的水平

出0入0汤圆

发表于 2013-5-13 11:39:51 | 显示全部楼层
编译,跑上几轮

出0入0汤圆

 楼主| 发表于 2013-5-13 11:43:05 | 显示全部楼层
cyr_hongfeng 发表于 2013-5-13 10:33
这个问题问的好,估计大家都想知道答案
一般来讲,你的水平高于写代码的人,你很快就能看懂;你的水平低于 ...

我属于第二种,就是需要在原有的程序上增减东西,需要理解原来的程序,程序是以前别人一直写下来的。

出0入0汤圆

发表于 2013-5-13 11:45:05 来自手机 | 显示全部楼层
按照流程图方式去看

出0入0汤圆

发表于 2013-5-13 11:48:32 | 显示全部楼层
panjun10 发表于 2013-5-13 11:39
编译,跑上几轮

这个应该是最快的了。
顺便改几个参数,看看结果有啥变化。

出0入4汤圆

发表于 2013-5-13 12:27:38 | 显示全部楼层
我就是从“看别人的代码”开始学C语言的,不懂的地方就去看“C基础教程之类”的书,这个过程是相当的晕,晕也不能放弃,晕过来(没说错,是晕过来)就好了。
我以前也没有什么基础,要说有就是在职校学过QBASIC

出0入0汤圆

发表于 2013-5-13 12:52:25 | 显示全部楼层
通读几遍,弄清楚大概,然后自己输一遍,就差不多了。

出0入0汤圆

发表于 2013-5-13 12:53:28 | 显示全部楼层
找一帮哥们,把那个源代码的作者绑架过来,用刀逼着他给你一句一句的讲。这样最快。

出0入0汤圆

 楼主| 发表于 2013-5-13 12:57:32 | 显示全部楼层
tiancaigao7 发表于 2013-5-13 12:53
找一帮哥们,把那个源代码的作者绑架过来,用刀逼着他给你一句一句的讲。这样最快。 ...

源代码作者就是我老大,不用绑

出130入129汤圆

发表于 2013-5-13 12:58:25 | 显示全部楼层
看别人的代码,有时候像看文言文,写得很美妙,但是自己理解起来很困难,毕竟不是自己的思路。

出0入0汤圆

发表于 2013-5-13 13:08:38 | 显示全部楼层
有流程图、程序做了注释的,还好办

出0入0汤圆

发表于 2013-5-13 13:12:17 来自手机 | 显示全部楼层
请他吃饭,色诱他,让他讲给你。

出0入0汤圆

发表于 2013-5-13 13:35:13 | 显示全部楼层
取决于写代码人的水平………………

stm32的demo,光看注释基本都够了

出0入0汤圆

发表于 2013-5-13 13:47:03 | 显示全部楼层
现在的科技,有编译器,还可以仿真,很幸福了。没编译器那年代,人家玩的可是机器码。

出0入0汤圆

发表于 2013-5-13 14:05:57 | 显示全部楼层
RTFSC      

出0入0汤圆

发表于 2013-5-13 15:15:40 | 显示全部楼层
如果作者是高手 这要看作者想不想叫你看懂 ,很容易的
如果作者是新手 那要看些时间了

出0入0汤圆

发表于 2013-5-13 15:15:48 | 显示全部楼层
反复读几次,反正我就是这样过来的,很多代码没注释,那真是痛苦,不过为了饭碗,还是硬着头皮反复读

出0入0汤圆

发表于 2013-5-13 15:23:05 | 显示全部楼层
cyr_hongfeng 发表于 2013-5-13 10:33
这个问题问的好,估计大家都想知道答案
一般来讲,你的水平高于写代码的人,你很快就能看懂;你的水平低于 ...

貌似不一定吧,如果那个写代码的喜欢用全局变量,a1,a2,a3,....   x1,x2,x3....呢!

出0入0汤圆

发表于 2013-5-13 15:36:13 | 显示全部楼层
能仿真就仿真
不能仿真只能用SOURCE INSIGHT来看了

出0入0汤圆

发表于 2013-5-13 16:18:43 | 显示全部楼层
看写代码技术的人了啊,有些人写的他自己都过段时间都看不懂了,更别说我们了,

出0入0汤圆

发表于 2013-5-13 16:27:06 | 显示全部楼层
把他催眠后就可以一五一十的说出来了。http://v.ifeng.com/vblog/dv/201305/3903a3b5-92c3-4239-b5a6-55a08266d103.shtml

出0入84汤圆

发表于 2013-5-13 16:27:45 | 显示全部楼层
让写代码的给你讲解

出0入0汤圆

发表于 2013-5-13 17:08:39 | 显示全部楼层
没有注释和功能说明可读性会大大降低。

出20入22汤圆

发表于 2013-5-13 17:41:24 | 显示全部楼层
coleyao 发表于 2013-5-13 15:23
貌似不一定吧,如果那个写代码的喜欢用全局变量,a1,a2,a3,....   x1,x2,x3....呢! ...

只能当火星文看了

出0入0汤圆

发表于 2013-5-13 18:01:59 | 显示全部楼层
1、别人的程序能不能看懂,在于写程序和读程序的人的水平;不过我始终认为,最关键还是写程序的人的水平;当然,如果高手故意让别人看不懂又另当别论;
2、为了程序让别人看懂,并不是注释越多越好;换句话说,我更加认为注释越少越好;但关键是,你的程序根本不需要写注释,这关乎你程序本身的架构,函数和变量的命名等等;
3、如果好的程序,实在看不懂,那就是看程序的人的水平问题了;你总不能期望你读小学的侄女能看懂这些程序。

出0入0汤圆

发表于 2013-5-13 18:41:24 | 显示全部楼层
请他喝顿酒。让他给讲讲。

出0入0汤圆

发表于 2013-5-13 19:56:20 | 显示全部楼层
贴到坛子上,谁闲得蛋疼给注释一下

出0入0汤圆

发表于 2013-5-13 19:59:45 | 显示全部楼层
mugeyouyang 发表于 2013-5-13 12:57
源代码作者就是我老大,不用绑

嘿嘿,绑着他你当老大。

出0入0汤圆

发表于 2013-5-13 20:05:44 | 显示全部楼层
zhiwei 发表于 2013-5-13 10:14
这个没办法吧,看天赋。我就很不愿意看别人的代码。。。

和我一样
初学时是看过书上的源代码
也认真仔细的分析过
。。。。。。
现在最怕看别人写的代码了
也不给别人写代码

出50入255汤圆

发表于 2013-5-13 20:23:22 | 显示全部楼层
这个是我给我们公司开发人员介绍的方法:
软件开发/维护基本规则说明
软件开发过程中,或者对之前的软件进行维护升级或增加功能的时候,我们如何尽快对之前的系统有个大致的了解,或者如何更快更好的完成开发维护工作?下面将我想到的方法大致描述如下:
1,本身软件的功能是什么?通过之前的开发人员讲解,看说明书,实际操作等方式尽快了解。
2,对main或者系统主流程先做个大致了解
3,对将要增加/维护的功能所涉及到的函数、硬件、外围有个了解。
4,对所涉及到的函数的使用,各个参数的输入值,输入范围等等熟悉。这些函数之前一定是在其他地方被调用过的,那么可以了解到他被调用的情况。
5,如果涉及到硬件方面,尽量仔细了解所操作的单片机,外围器件的功能,特点。
6,对将要增加维护的功能的流程清晰,画出流程图或操作步骤。
7,写出将要维护的功能的测试方法(测试用例)。

出0入0汤圆

发表于 2013-5-13 20:32:59 | 显示全部楼层
从main开始看枝节,再细化

出0入0汤圆

发表于 2013-5-13 20:41:09 | 显示全部楼层
tiancaigao7 发表于 2013-5-13 12:53
找一帮哥们,把那个源代码的作者绑架过来,用刀逼着他给你一句一句的讲。这样最快。 ...

+1   

出0入0汤圆

发表于 2013-5-13 21:12:42 | 显示全部楼层
熬着看。。

出0入0汤圆

发表于 2013-5-13 21:35:05 | 显示全部楼层
看代码,强烈推荐用source insight
如果碰上没注释,命名结构又稀烂的,而且还特别长的代码,就准备死脑细胞吧。。

出0入0汤圆

发表于 2013-5-14 11:11:37 | 显示全部楼层
不要说看别人的……就是自己写的,如果没有详细的注释,3个月以后自己再看都费点劲吧?

出0入0汤圆

发表于 2013-5-14 11:20:53 | 显示全部楼层
我觉得是写代码的人的水平问题,要是本来就写得乱七八糟的,怎么看的懂。

出0入0汤圆

 楼主| 发表于 2013-5-14 12:50:24 | 显示全部楼层
xy-mcu 发表于 2013-5-13 20:23
这个是我给我们公司开发人员介绍的方法:
软件开发/维护基本规则说明
软件开发过程中,或者对之前的软件进 ...

终于来了个认真的了,谢谢。。。

出0入18汤圆

发表于 2013-5-14 16:44:48 | 显示全部楼层
没有流程图 看着的真心蛋疼  正在看别人遗留的430程序的飘过  以前没玩过  新公司第二天 正在蛋疼中

出0入18汤圆

发表于 2013-5-14 16:45:38 | 显示全部楼层
还都是什么count,count1.。。。。 flag,flag1....之类的变量。。。

出0入0汤圆

发表于 2013-5-14 17:30:46 | 显示全部楼层
我也经历过这个痛苦的过程
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 18:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表