作者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
推 iincho:還不錯, 碰到很亂的程式碼的時候可以比較輕鬆點... 10/24 20:39
推 meltice:大project裡面常常makefile, source code, ... define 10/24 23:54
→ meltice:一堆 #if #endif到處都事 這時候流程就很難trace 10/24 23:54
→ meltice:有時#if跟#endif距離幾千行都有可能 中間又包了好幾層#if 10/24 23:55
→ meltice:只看source根本不清楚流程往哪跑 makefile又看不懂... 10/25 00:01
→ meltice:因為makefile一定也是又透過其他shell script去call的 10/25 00:01
→ meltice:那些shell script又不知道透過哪些方式define一堆參數 10/25 00:02
→ OnlyRD:TRACING不要用工具 用久會無能力 10/25 01:03
推 iincho:不要用工具, 效率低到爆, 當然某些程式工具無能為力...XD 10/25 01:31