作者MaxBiaggi (Targets for Life)
看板Soft_Job
标题Re: [请益] 如何快速的看懂程式码?
时间Fri Oct 24 18:41:35 2008
我记得老师有跟我们说一个软体
叫做 Crystal C Flow
就是会把程式码转成流程图,让你可看出这个程式码的流程
不过我还没用过,不晓得好不好用耶
给你参考看看
※ 引述《gogogogoooo (...)》之铭言:
: 目前刚进去工作
: 主管便把他们Team开发成品到现在的source code丢给我看
: 大概数十万行吧 里头的注解非常的少 可以说是没有
: 主管叫我自行trace code 看懂整个程式码在干麻
: 常常看到一大堆变数 却完全不晓得意义为何
: 也不知道干麽用 觉得非常的挫折
: 那种感觉就有点像是你写了一个算式
: 例如说 3*2=6 看得懂式子
: 可是我却不晓得他实际在干麻
: 或许他的意义可能是有3个人 每个人有2颗苹果 总共有6颗苹果
: 公司是写韧体的 算是网通厂 最近又丢了一份datasheet给我看
: 因为程式码里头有些是写入Register的 要看datasheet才知道在干麽
: 以前也从来没碰过硬体 看了spec也是一个头两个大
: 有时候问了主管一些问题 跟我说这看天份的...
: 不晓得版上的人 刚遇到一份几乎没注解的code的时候
: 是怎样才可以比较快速的去看懂整个程式码在干麽?
: 还是说我应该去加强什麽样的背景 多看那一方面的书
: ※ 编辑: gogogogoooo 来自: 218.165.117.225 (10/23 21:14)
: 推 chrisho:dump出记忆体内容,再慢慢把注解加上去.. 10/23 21:26
: → idleidle:看标题吧..先把每个标题凑成目录~ 10/23 21:49
: 推 guest0079:没注解是正常的 挫折是正常的 不要心急 看久了就是你的 10/23 21:51
: 推 huuu:这种控制硬体的程度最好一边玩一边改才容易理解 10/23 22:04
: → huuu:歹势, 是"程式"不是"程度" 10/23 22:04
: → huuu:不玩玩看比较难具体了解硬体的行为 10/23 22:05
: 推 minstrelsy:1. 弄清楚程式的功能与目的 10/23 22:40
: → minstrelsy:2. 以功能来区分出程式的区块 10/23 22:40
: → minstrelsy:3. 画出区块流程图 10/23 22:41
: → minstrelsy:4. 弄懂流程图的思考逻辑 10/23 22:41
: → minstrelsy:5. 一个个区块深入去研究 10/23 22:41
: → minstrelsy:6. 这种事是很讲天份的..你主管确实没说错 10/23 22:42
: 推 realmeat:知道目的跟流程结构後就比较知道要怎下手 10/23 22:51
: 推 Dungeon:跟懂不懂有关系而已,跟天分何干!:) 10/23 22:54
: 推 minstrelsy:只要花时间 有没有天份都能懂 但要快速懂 真的要天份 10/23 22:55
: 推 puzi:我看了好几天还不懂...强者我学者看十分钟就开始实作了= =" 10/23 22:57
: → puzi:强者我学长XDDD 10/23 22:58
: 推 haeiou:十分钟做的事 就是那看十分钟的事 看久了都嘛一样 10/23 23:42
: 推 Axcic:写程式不写注解的人很糟 10/23 23:47
: → meltice:注解一堆不见得会比较不糟 10/23 23:59
: 推 xjiang:写Design spec比较重要~ 10/24 00:09
: 推 anipeg:要先学会看spec, spec懂了大概程式就差不多懂了 10/24 00:29
: 推 richliu:用 source insign 会快一点追 source code. 10/24 00:34
: 推 typeotoco:trace 就是 trace... 10/24 02:01
: 推 opman:有些情况,程式码没注解,是,注解被拿掉了. 10/24 10:35
: → opman:源头,应该是买别人的. (或,之後再流传开的) 10/24 10:37
: → opman:因为程式码可能因人员流动,带来带去,或互相私下交流. 10/24 10:38
: 推 Adonisy:练快速速读... 10/24 12:57
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.63.103.113
1F:推 iincho:还不错, 碰到很乱的程式码的时候可以比较轻松点... 10/24 20:39
2F:推 meltice:大project里面常常makefile, source code, ... define 10/24 23:54
3F:→ meltice:一堆 #if #endif到处都事 这时候流程就很难trace 10/24 23:54
4F:→ meltice:有时#if跟#endif距离几千行都有可能 中间又包了好几层#if 10/24 23:55
5F:→ meltice:只看source根本不清楚流程往哪跑 makefile又看不懂... 10/25 00:01
6F:→ meltice:因为makefile一定也是又透过其他shell script去call的 10/25 00:01
7F:→ meltice:那些shell script又不知道透过哪些方式define一堆参数 10/25 00:02
8F:→ OnlyRD:TRACING不要用工具 用久会无能力 10/25 01:03
9F:推 iincho:不要用工具, 效率低到爆, 当然某些程式工具无能为力...XD 10/25 01:31