Re: [請益] 如何沉住氣讀別人的 code
※ 引述《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
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1515768272.A.392.html
※ 編輯: HZYSoft (114.24.49.213), 01/12/2018 22:46:41
推
01/12 23:03,
6年前
, 1F
01/12 23:03, 1F
→
01/12 23:05,
6年前
, 2F
01/12 23:05, 2F
推
01/12 23:05,
6年前
, 3F
01/12 23:05, 3F
→
01/12 23:06,
6年前
, 4F
01/12 23:06, 4F
推
01/12 23:18,
6年前
, 5F
01/12 23:18, 5F
推
01/12 23:37,
6年前
, 6F
01/12 23:37, 6F
推
01/12 23:45,
6年前
, 7F
01/12 23:45, 7F
推
01/12 23:48,
6年前
, 8F
01/12 23:48, 8F
推
01/13 00:59,
6年前
, 9F
01/13 00:59, 9F
推
01/13 01:00,
6年前
, 10F
01/13 01:00, 10F
推
01/13 01:20,
6年前
, 11F
01/13 01:20, 11F
推
01/13 01:27,
6年前
, 12F
01/13 01:27, 12F
推
01/13 01:27,
6年前
, 13F
01/13 01:27, 13F
推
01/13 01:39,
6年前
, 14F
01/13 01:39, 14F
推
01/13 02:20,
6年前
, 15F
01/13 02:20, 15F
推
01/13 02:56,
6年前
, 16F
01/13 02:56, 16F
推
01/13 04:01,
6年前
, 17F
01/13 04:01, 17F
推
01/13 04:19,
6年前
, 18F
01/13 04:19, 18F
推
01/13 05:21,
6年前
, 19F
01/13 05:21, 19F
推
01/13 06:39,
6年前
, 20F
01/13 06:39, 20F
推
01/13 08:19,
6年前
, 21F
01/13 08:19, 21F
→
01/13 08:19,
6年前
, 22F
01/13 08:19, 22F
推
01/13 08:28,
6年前
, 23F
01/13 08:28, 23F
推
01/13 08:32,
6年前
, 24F
01/13 08:32, 24F
→
01/13 09:01,
6年前
, 25F
01/13 09:01, 25F
推
01/13 09:06,
6年前
, 26F
01/13 09:06, 26F
推
01/13 09:17,
6年前
, 27F
01/13 09:17, 27F
推
01/13 09:17,
6年前
, 28F
01/13 09:17, 28F
推
01/13 09:37,
6年前
, 29F
01/13 09:37, 29F
推
01/13 09:46,
6年前
, 30F
01/13 09:46, 30F
推
01/13 10:56,
6年前
, 31F
01/13 10:56, 31F
推
01/13 11:22,
6年前
, 32F
01/13 11:22, 32F
推
01/13 11:22,
6年前
, 33F
01/13 11:22, 33F
→
01/13 11:24,
6年前
, 34F
01/13 11:24, 34F
→
01/13 11:25,
6年前
, 35F
01/13 11:25, 35F
推
01/13 11:52,
6年前
, 36F
01/13 11:52, 36F
推
01/13 11:55,
6年前
, 37F
01/13 11:55, 37F
推
01/13 12:32,
6年前
, 38F
01/13 12:32, 38F
推
01/13 12:43,
6年前
, 39F
01/13 12:43, 39F
還有 43 則推文
還有 1 段內文
推
01/14 16:34,
6年前
, 83F
01/14 16:34, 83F
推
01/14 18:13,
6年前
, 84F
01/14 18:13, 84F
推
01/14 19:24,
6年前
, 85F
01/14 19:24, 85F
推
01/14 20:07,
6年前
, 86F
01/14 20:07, 86F
推
01/14 22:18,
6年前
, 87F
01/14 22:18, 87F
推
01/14 22:33,
6年前
, 88F
01/14 22:33, 88F
→
01/14 23:29,
6年前
, 89F
01/14 23:29, 89F
推
01/15 03:45,
6年前
, 90F
01/15 03:45, 90F
推
01/15 10:17,
6年前
, 91F
01/15 10:17, 91F
→
01/15 10:56,
6年前
, 92F
01/15 10:56, 92F
推
01/15 11:29,
6年前
, 93F
01/15 11:29, 93F
推
01/15 11:57,
6年前
, 94F
01/15 11:57, 94F
推
01/15 15:49,
6年前
, 95F
01/15 15:49, 95F
推
01/15 20:52,
6年前
, 96F
01/15 20:52, 96F
推
01/15 21:52,
6年前
, 97F
01/15 21:52, 97F
推
01/16 09:46,
6年前
, 98F
01/16 09:46, 98F
推
01/16 12:03,
6年前
, 99F
01/16 12:03, 99F
推
01/17 01:10,
6年前
, 100F
01/17 01:10, 100F
推
01/17 03:11,
6年前
, 101F
01/17 03:11, 101F
推
01/17 09:36,
6年前
, 102F
01/17 09:36, 102F
推
01/17 11:00,
6年前
, 103F
01/17 11:00, 103F
推
01/17 11:34,
6年前
, 104F
01/17 11:34, 104F
推
01/17 11:45,
6年前
, 105F
01/17 11:45, 105F
→
01/17 11:45,
6年前
, 106F
01/17 11:45, 106F
推
01/17 13:08,
6年前
, 107F
01/17 13:08, 107F
推
01/17 14:26,
6年前
, 108F
01/17 14:26, 108F
推
01/17 22:10,
6年前
, 109F
01/17 22:10, 109F
推
01/18 02:26,
6年前
, 110F
01/18 02:26, 110F
推
01/18 17:34,
6年前
, 111F
01/18 17:34, 111F
推
01/18 20:29,
6年前
, 112F
01/18 20:29, 112F
推
01/19 14:02,
6年前
, 113F
01/19 14:02, 113F
推
01/19 19:28,
6年前
, 114F
01/19 19:28, 114F
推
01/19 20:34,
6年前
, 115F
01/19 20:34, 115F
推
01/20 00:24,
6年前
, 116F
01/20 00:24, 116F
推
01/21 00:42,
6年前
, 117F
01/21 00:42, 117F
推
01/24 22:38,
6年前
, 118F
01/24 22:38, 118F
推
01/27 09:22,
6年前
, 119F
01/27 09:22, 119F
推
01/29 14:21,
6年前
, 120F
01/29 14:21, 120F
推
01/29 23:51,
6年前
, 121F
01/29 23:51, 121F
推
09/27 21:36,
5年前
, 122F
09/27 21:36, 122F
討論串 (同標題文章)