Re: [請益] 如何快速的看懂程式碼?

看板Soft_Job (軟體人)作者 (Targets for Life)時間17年前 (2008/10/24 18:41), 編輯推噓3(306)
留言9則, 3人參與, 最新討論串4/8 (看更多)
我記得老師有跟我們說一個軟體 叫做 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

10/24 20:39, , 1F
還不錯, 碰到很亂的程式碼的時候可以比較輕鬆點...
10/24 20:39, 1F

10/24 23:54, , 2F
大project裡面常常makefile, source code, ... define
10/24 23:54, 2F

10/24 23:54, , 3F
一堆 #if #endif到處都事 這時候流程就很難trace
10/24 23:54, 3F

10/24 23:55, , 4F
有時#if跟#endif距離幾千行都有可能 中間又包了好幾層#if
10/24 23:55, 4F

10/25 00:01, , 5F
只看source根本不清楚流程往哪跑 makefile又看不懂...
10/25 00:01, 5F

10/25 00:01, , 6F
因為makefile一定也是又透過其他shell script去call的
10/25 00:01, 6F

10/25 00:02, , 7F
那些shell script又不知道透過哪些方式define一堆參數
10/25 00:02, 7F

10/25 01:03, , 8F
TRACING不要用工具 用久會無能力
10/25 01:03, 8F

10/25 01:31, , 9F
不要用工具, 效率低到爆, 當然某些程式工具無能為力...XD
10/25 01:31, 9F
文章代碼(AID): #190QPWHd (Soft_Job)
文章代碼(AID): #190QPWHd (Soft_Job)