看板 Soft_Job作者 HZYSoft (PCMan)標題 Re: [請益] 如何沉住氣讀別人的 code時間 Fri Jan 12 22:44:29 2018
※ 引述《p52189 (鼠霸)》之銘言:
: 如題……原始碼不長
: 但撰碼習慣跟我完全不同
: 到現在我也還沒找到規則
: 以至於想改一小部分都因為不知道規則而必須幾乎全部爬一遍才改得動
: 每次讀都很難沉住氣一下就很煩躁不想做了
: 一直這樣很像也不是辦法
: 請問大家有什麼方法可以坐得住嗎= =
: 謝謝……
: -----
: Sent from JPTT on my HTC_M9u.
好久沒上 BBS,來分享一下一些看 code 心得
1. 不要排斥使用圖形界面 IDE:
雖然熟練操作各種 editor 一直打指令真的很帥,IDE 有些功能真的非常好用
在 function 名稱上點一下自動跳到 code, 變數名稱點一下可以跳到在哪 define
寫錯語法還會幫你劃線,點一下又可以跳回剛看一半的地方,看 code 會快滿多。
有些還可以幫你快速找出所有 Usage + 批次改名,效率很好。
2. 用 grep 找到進入點開始 trace,例如搜尋 web service 的 endpoint 名稱
找 UI 上有的字串,或是以設定值的名稱去找,看是哪段 code 讀那個設定
這可以幫助你快速找到相關 code 在哪些檔案。
3. Trace code 一邊看一邊作筆記
從進入的 function 開始,把整個 call stack 每一層筆記下來,包括檔名
和函數名稱,並且 summary 你初步了解裡面做了什麼。
這個非常有用,不然深入幾層之後,很快就迷路了
4. 邊讀邊補註解,順手 rename 一些取不好的變數名稱
每看懂幾行,就幫他補一些註解,幫助自己也幫助後人
5. 使用 static code analyze 的工具,找出沒在用的 code 和 file,
然後全部刪掉!!! 對一個陳年專案來說,你會很驚訝有多少是沒用的 code
6. 邊看邊 refactor,把太長的 function 拆小
假設不是 public method 還可以順便改名,讓他比較 readable
註: 如網友補充,在某些大公司,隨便 refactor 不相關的部份是被禁止的,
畢竟這樣會造成 QA 測試需要重做,code review 需要重做,也會影響合作
開發的隊友,實際工作上我自己帶的團隊,我也是不建議 team member 隨意
refactor 在開發計畫以外的部份。但有時候新創公司經歷了快速成長期,
你需要把一些 prototype 做成真正 production 品質的產品,那這樣就很合適。
7. 多參加 open source 專案,久了就會習慣看來自各國的各種 code
8. 多買一個螢幕,一邊開文件一邊開 code,看起來也會比較快
一些小心得分享,希望有幫助 :)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.24.49.213
※ 文章代碼(AID): #1QMCdGEI (Soft_Job)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1515768272.A.392.html
※ 同主題文章:
Re: [請益] 如何沉住氣讀別人的 code
01-12 22:44 HZYSoft
※ 編輯: HZYSoft (114.24.49.213), 01/12/2018 22:46:41
→ freeunixer: pcman 快 update 修好短網址功能好嗎?2F 01/12 23:05
推 drajan: 樓下酸中英夾雜7F 01/12 23:45
推 shaform: <(_ _)>!!20F 01/13 06:39
推 didila: 娘子快來,有神快拜24F 01/13 08:32
→ sanpf: 媽,我在這 (@o@)/25F 01/13 09:01
推 SuperCry: Mac上的雅虎鍵盤有人在維護嗎28F 01/13 09:17
推 sqr: 可以在這裡回報PCMAN使用上的問題嗎?32F 01/13 11:22
→ sqr: 剛換筆電Nitro5 發現九宮格的PgDn無法使用
Home End PgUp 皆正常 也確認該鍵在其他狀況下可正常操作34F 01/13 11:24
推 vn509942: 邊看code邊喝酒邊聽歌 不知不覺 又過一天36F 01/13 11:52
推 abc53: 推37F 01/13 11:55
→ descent: 我會把程式碼印出來在紙上慢慢看, 比較不會中斷記憶。40F 01/13 12:52
推 popcool: 大神有拜,bug 退散,已跪41F 01/13 13:11
→ MOONY135: 娘子 快來用PCMAN看PCMAN43F 01/13 13:24
推 yahooc: 這才是好習慣45F 01/13 14:14
推 XJY13: 有神快拜!!46F 01/13 14:39
推 RunRun5566: 還好現在有語法檢查器,可以幫忙檢查沒在使用的code48F 01/13 15:51
推 purplebfly: 能幫忙改個pcmanx的版本嗎?加個自動開圖,謝謝54F 01/13 18:18
※ 編輯: HZYSoft (61.216.8.103), 01/13/2018 22:10:20
推 es8603: 推 pcman耶!! 雖然我現在比較喜歡welly了XD66F 01/13 22:34
推 a8319: 正在用pcman68F 01/13 22:58
推 iitze: 推72F 01/14 09:10
推 y3k: PCMan只能推了75F 01/14 11:34
推 p52189: 竟然釣出神獸XDDDDDD 建議很實用,謝謝~79F 01/14 13:17
推 HMW: 朝聖推81F 01/14 16:01
推 EngRookie: 可以推薦IDE軟體嗎 我只會用source insight83F 01/14 16:34
推 Ronee: 推86F 01/14 20:07
推 sqr: PgDn問題解決了90F 01/15 03:45
推 jack58: sourceinsight就很夠了吧91F 01/15 10:17
→ leolarrel: 我都用cscope + ctags92F 01/15 10:56
推 aqua2: 推推97F 01/15 21:52
推 Luos: Atom 有沒有1的功能?102F 01/17 09:36
推 jing007: 我想請教筆記該如何做?是要寫註解,還是另外寫在紙上或文書軟體上,我實在不太會做筆記的方式說...105F 01/17 11:45
推 hao830103: 喔喔喔喔喔喔!!!!!!!!!!!111F 01/18 17:34
推 g12288: pcman必推116F 01/20 00:24
--