顯示廣告
隱藏 ✕
※ 本文為 dinos 轉寄自 ptt.cc 更新時間: 2018-01-26 21:30:16
看板 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
※ 編輯: HZYSoft (114.24.49.213), 01/12/2018 22:46:41
kyuudonut: \首推 Pcman/1F 01/12 23:03
freeunixer: pcman 快 update 修好短網址功能好嗎?2F 01/12 23:05
NCTUbigGG: 推起來!3F 01/12 23:05
lukelove: pcman ! pcman4F 01/12 23:06
w2sw2sw2s: 推!5F 01/12 23:18
vi000246: 有神快拜6F 01/12 23:37
drajan: 樓下酸中英夾雜7F 01/12 23:45
g5637128: 推8F 01/12 23:48
join183club: pcman大大,新酷音可以再持續update嗎?9F 01/13 00:59
TitanEric: 推10F 01/13 01:00
ericthree: 跪著推文11F 01/13 01:20
cool9203: 跪了,是pcman!!12F 01/13 01:27
summerleaves: 推PCMAN13F 01/13 01:27
obamina48: 推 PCMan !!!!!!14F 01/13 01:39
kai0975: 推推是你15F 01/13 02:20
pptsodog: 我跪了16F 01/13 02:56
TianBonBon: 只能推了17F 01/13 04:01
kakkokari: 有神已跪18F 01/13 04:19
happierway: 推!!!19F 01/13 05:21
shaform: <(_ _)>!!20F 01/13 06:39
shiauji: 他21F 01/13 08:19
shiauji: 推
pc031564: yo, PCMan23F 01/13 08:28
didila: 娘子快來,有神快拜24F 01/13 08:32
sanpf: 媽,我在這 (@o@)/25F 01/13 09:01
wilson85771: 朝聖推!!26F 01/13 09:06
za075056: 跪27F 01/13 09:17
SuperCry: Mac上的雅虎鍵盤有人在維護嗎28F 01/13 09:17
supertitler: 路過推29F 01/13 09:37
yupog2003: 推30F 01/13 09:46
alandidi: 推31F 01/13 10:56
sqr: 可以在這裡回報PCMAN使用上的問題嗎?32F 01/13 11:22
YungMH: 推33F 01/13 11:22
sqr: 剛換筆電Nitro5 發現九宮格的PgDn無法使用34F 01/13 11:24
sqr: Home End PgUp 皆正常 也確認該鍵在其他狀況下可正常操作
vn509942: 邊看code邊喝酒邊聽歌 不知不覺 又過一天36F 01/13 11:52
abc53: 推37F 01/13 11:55
v9290026: 有神快拜38F 01/13 12:32
rockneila: 推39F 01/13 12:43
descent: 我會把程式碼印出來在紙上慢慢看, 比較不會中斷記憶。40F 01/13 12:52
popcool: 大神有拜,bug 退散,已跪41F 01/13 13:11
noli523: 感謝,來朝聖42F 01/13 13:20
MOONY135: 娘子 快來用PCMAN看PCMAN43F 01/13 13:24
goldie: 推44F 01/13 14:12
yahooc: 這才是好習慣45F 01/13 14:14
XJY13: 有神快拜!!46F 01/13 14:39
coolcliff01: 先跪再說47F 01/13 14:57
RunRun5566: 還好現在有語法檢查器,可以幫忙檢查沒在使用的code48F 01/13 15:51
BellCranell: 跪拜 大神發錢49F 01/13 15:55
cscjp6: 跪著推50F 01/13 15:59
VisualStudio: 推51F 01/13 16:38
luli0034: 好 遵命52F 01/13 17:04
THEWORLDS:53F 01/13 17:18
purplebfly: 能幫忙改個pcmanx的版本嗎?加個自動開圖,謝謝54F 01/13 18:18
typepeter: 推55F 01/13 18:28
haydou: 朝聖56F 01/13 19:04
cooljason2: 推實用,善用工具57F 01/13 19:05
fatan19928: 推58F 01/13 19:47
abcdefgs0324: 推59F 01/13 20:15
starlion: 有神快拜60F 01/13 20:56
TAKADO: 推大神61F 01/13 21:08
hero0123: 推PCMAN~62F 01/13 21:18
YAYA6655: 神人快拜63F 01/13 21:47
madcloud: 快拜神人64F 01/13 21:56
※ 編輯: HZYSoft (61.216.8.103), 01/13/2018 22:10:20
y2468101216: 推65F 01/13 22:03
es8603: 推 pcman耶!! 雖然我現在比較喜歡welly了XD66F 01/13 22:34
sharku: 推67F 01/13 22:42
a8319: 正在用pcman68F 01/13 22:58
hellomotogg: 用PCMan推PCMan69F 01/14 03:58
starlit357: 朝聖推70F 01/14 08:05
akito117: 推71F 01/14 08:15
iitze: 推72F 01/14 09:10
okeoke: 推73F 01/14 10:12
walkman: push74F 01/14 10:24
y3k: PCMan只能推了75F 01/14 11:34
leafwind: 朝聖76F 01/14 12:35
pig0038: 神串留名77F 01/14 13:11
tonytonyjan: 雖然都是常識,但推細心整理78F 01/14 13:17
p52189: 竟然釣出神獸XDDDDDD 建議很實用,謝謝~79F 01/14 13:17
doraremon: ˋPCManˊˋPCManˊ80F 01/14 14:14
HMW: 朝聖推81F 01/14 16:01
hotahaha: 先朝聖82F 01/14 16:12
EngRookie: 可以推薦IDE軟體嗎 我只會用source insight83F 01/14 16:34
boy955403: 朝聖推!!84F 01/14 18:13
babypanda: 推推85F 01/14 19:24
Ronee: 推86F 01/14 20:07
andy88566y: <(_ _)>87F 01/14 22:18
Perservere77: 感謝分享88F 01/14 22:33
PUTOUCHANG: slickedit 還可以89F 01/14 23:29
sqr: PgDn問題解決了90F 01/15 03:45
jack58: sourceinsight就很夠了吧91F 01/15 10:17
leolarrel: 我都用cscope + ctags92F 01/15 10:56
nfsong: 朝聖93F 01/15 11:29
jet113102: 朝聖94F 01/15 11:57
ckm0089: 推!95F 01/15 15:49
myfirstjump: okay96F 01/15 20:52
aqua2: 推推97F 01/15 21:52
Vick753: 朝聖98F 01/16 09:46
DCTmaybe: 朝聖推99F 01/16 12:03
nonumber: 朝聖100F 01/17 01:10
single4565: 推101F 01/17 03:11
Luos: Atom 有沒有1的功能?102F 01/17 09:36
cakecjack01: 朝聖推103F 01/17 11:00
kihiko: 推104F 01/17 11:34
jing007: 我想請教筆記該如何做?是要寫註解,還是另外寫在紙上或105F 01/17 11:45
jing007: 文書軟體上,我實在不太會做筆記的方式說...
smileray: 推神獸XD107F 01/17 13:08
cacasumu: 朝聖~108F 01/17 14:26
renejanse: 推109F 01/17 22:10
TAMSHUI: 推!110F 01/18 02:26
hao830103: 喔喔喔喔喔喔!!!!!!!!!!!111F 01/18 17:34
BlazarArc: 朝聖112F 01/18 20:29
asdg62558: 推113F 01/19 14:02
ines1969: 新酷音好好用啊114F 01/19 19:28
HowLeeHi: pcman大神推!115F 01/19 20:34
g12288: pcman必推116F 01/20 00:24
CHOCOLATER00: 推pcman117F 01/21 00:42
cdanyu: 推118F 01/24 22:38

--
※ 看板: dinos 文章推薦值: 1 目前人氣: 0 累積人氣: 2736 
※ 本文也出現在看板: layzer terievv
分享網址: 複製 已複製
( ̄︶ ̄)b master0 說讚!
guest
x)推文 r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇