作者Blissey (蛋蛋)
看板Tech_Job
標題[請益] 如何有效率的看code ?
時間Sat Jul 11 17:46:23 2020
轉職一年多
幾萬行龐大的code 實在不知道要怎麼看
導致工作進度落後 常delay 交不出來
每天工時12小時 假日有時還進公司自主加班
其實也不只是code 還有背景知識也不熟悉
像是錄影跟回放功能 這些以前學校都沒學過
太多不懂不知道從何問起 只能慢慢嘗試 非常無力
總不可能請同事從頭教我
有人也是進職場遇到自己從沒學過的東西嗎?
本來想找課本來看 但母校的課程網頁 好像也沒有教這一塊
就算假日沒進公司 心裡也沒辦法放鬆
都在焦慮周一進公司 要怎麼面對這些code....
抱歉 說了一大堆 總結問題
1.如何有效率地看龐大的code
2.不懂的背景知識,該如何有效率學習
先謝謝前輩了orz
-----
Sent from JPTT on my Asus ASUS_Z012DA.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.50.147 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Tech_Job/M.1594460785.A.66D.html
→ sourbait: 沒架構文件? 07/11 17:49
推 benedict76: 先問前輩程式架構,先了解架構後再看才有意義,不然程 07/11 17:49
→ benedict76: 式就一堆if else是有什麼難的? 07/11 17:49
→ flysonics: 老鳥:嘻嘻 我手把手教你你不就追上來了 何必呢 07/11 17:50
→ flysonics: 一般來講都應該要有架構文件啦 一般來講..... 07/11 17:50
→ flysonics: 如果你真的很衰 碰到沒有架構文件又不想丟辭呈的話 07/11 17:51
→ flysonics: 你先全部大略看過一遍 然後連連看 將主架構function找 07/11 17:52
→ flysonics: 出來 然後用pattern的概念一個一個慢慢推進去讀code 07/11 17:52
→ flysonics: 小弟曾經跟過大半個專案是用這種方式消化code的 覺得這 07/11 17:53
→ flysonics: 樣會比較有效率 供你參考 07/11 17:53
→ flysonics: 你就把讀code當成玩RPG裡在探索未知領域就好 07/11 17:54
推 yamakazi: VS code是你的好朋友,然後用雙螢幕勝過單螢幕 07/11 17:54
→ flysonics: 背景知識就沒救了...你去找找看有沒有相關的科普書籍 07/11 17:58
→ flysonics: 或是相關的行業內會議PPT 知道有哪些topic 07/11 17:58
→ flysonics: 然後接下來就是找keyword 啃spec 07/11 17:59
→ flysonics: 這沒有人帶的話 就是需要時間累積 自己慢慢找慢慢撞 07/11 18:00
→ flysonics: 就算你再天賦異稟也很難速成 07/11 18:00
推 yamakazi: Debug mode設斷點看call stack 07/11 18:03
→ flysonics: 還有 如果你是寫韌體的話 自己要有hal層的概念 07/11 18:07
→ flysonics: register之類的東西就不要硬下去讀了 這種東西沒有hw出 07/11 18:08
→ flysonics: 完整spec 你認真在那邊看到死也沒用 不要寫code的人自 07/11 18:08
→ flysonics: 己沒有那個layer的意識亂寫 你還在那邊傻傻trace老半天 07/11 18:08
→ flysonics: 讀spec清楚protocol長怎樣就可以了 07/11 18:09
推 alihue: debug mode 催下去就是了,別傻傻 print 07/11 18:30
噓 bb0x0: 以人類的惡意去思考會輕鬆點。 07/11 18:31
推 lalalalaluk: 重構 寫測試 07/11 18:40
推 yamakazi: 沒文件就自己寫,我寫過UML其實不好寫 07/11 18:42
推 eyb602: 沒有程式註解可以看嗎? 那就是前人的問題了 07/11 18:44
推 KarlTowns: 先了解架構 07/11 18:46
推 trink: 背景知識超級重要,先找人問清楚,背景知識不懂,就無法理 07/11 19:12
→ trink: 解架構為什麼要這樣設計,程式自然看不懂 07/11 19:12
推 trink: 背景知識超級重要,如果不了背景知識,就不會了解架構為什 07/11 19:14
→ trink: 麼要這樣設計,程式自然看不懂 07/11 19:14
推 MaryWorkHard: 有些可能是workaround,註解也沒寫清楚只能問了,怕 07/11 19:48
→ MaryWorkHard: 常常打擾同事的話,就列下來看一個段落再一起問 07/11 19:48
推 littlethree: 有些code不是單純 if else 沒專業背景看不懂 邏輯看 07/11 20:05
→ littlethree: 的懂但是 code 看不懂要補專業知識 07/11 20:05
推 Smile365Day: 多請老鳥喝咖啡,去聊天順便聊code 07/11 20:12
→ Kayusumi: 我之前看前人的CODE居然幹了100多個if else.. 07/11 20:22
噓 xxtuoo: 幾萬行也在哀Zzz 07/11 20:30
推 Dracarys: Debugger + editor的跳轉定義功能 07/11 20:33
→ TS01923141: 跑unit test看看回傳什麼 07/11 20:41
→ sc1: 在公司待久一點慢慢看懂code下班假日都看就會懂 07/11 20:42
推 kenjigan: 20幾年的碼農良心建議,換工作比較好 07/11 20:58
推 mrsix: 總有每週進度報告吧!聽聽同事報的內容聽久了就會有點想法 07/11 21:01
→ mrsix: 了。 07/11 21:01
推 mrsix: 另外總有code review吧! 07/11 21:03
推 Tawara: 我都付一點錢外包給朋友做 供你參考 07/11 21:05
推 abc0922001: 我都用資料流去看 07/11 21:19
推 tttkkk: 如何有效率的看code? 就是不要看不相干的地方 07/11 21:26
→ tttkkk: 知道甚麼時候適可而止 並且把重點放在文件上 07/11 21:27
→ brightest: Debugger step run ? 07/11 21:28
→ brightest: 台廠沒啥在寫文件的吧 07/11 21:29
推 kentin: 真的沒架構文件隨便埋個bt都比較快 07/11 22:06
→ cphe: 善用debugger/dump stack/log,有些是一堆multithread等來 07/11 22:16
→ cphe: 等去,你天馬星空想像都不如加幾行log看他怎麼跑 07/11 22:16
→ cphe: 然後code看久就會越來越快了,就跟看英文書一樣 07/11 22:17
推 ho83leo: 韌體的code,才真正要你命,純軟就看你的工具如何有效的 07/11 23:02
→ ho83leo: 使用,觀念很重要。 07/11 23:02
推 clamperni: 看那麼快幹嘛 給老人一點尊重 07/11 23:09
推 lovebridget: 問人或看文件 不可能真的去看整個 07/11 23:11
→ lovebridget: code是已知錯在那行 才去看 07/11 23:12
→ GGing: 如果架構文件有隨著 code 更新而更新那還好,有些人只會一 07/11 23:19
→ GGing: 直改 code 不改文件,結果兩邊對不起來看了更慘... 07/11 23:19
→ labbat: 不要寫架構文件,專心寫code 不要研究code,專心寫code 07/11 23:30
推 wugesmin: 都做 一年多了才提背景知識不熟也怪怪的 07/11 23:51
→ wugesmin: 如果是功能開發,簡單的錄影回放用 3rd party 2天內搞定 07/11 23:53
推 wugesmin: 如果是 maintain&debug 就直接從公司既有的 API 下手 07/11 23:56
推 wugesmin: 邊做邊整理, 註解, 模組化, 自然就上手 如果原本寫的很 07/12 00:01
→ wugesmin: 爛可讀性低,就順手慢慢重構吧,這樣還比較輕鬆 07/12 00:02
推 m8403051: 看看臨兵桌上有甚麼不是程式語言的書, 借來看看 07/12 01:08
推 ColdLander: 用source insight 一邊trace code 一邊補齊所缺的知識 07/12 02:39
推 Litfal: 問有沒有架構圖+找前輩帶你順一次架構 07/12 03:08
推 mathrew: debug mode 下去吧,你光用看的,根本很難看的懂 07/12 07:32
推 overhead: 跑起來debug mode開下去。先問主架構是哪條,跳過不重 07/12 07:59
→ overhead: 要的扣。扣第一次不用每行看懂,領略function意思就好 07/12 07:59
→ overhead: 。一邊trace一邊畫架構圖。 07/12 07:59
→ markkao456: 要看懂這篇推文從零開始,我下一本要看的書名 07/12 10:11
推 tnfshjcc: 個人偏好IntelliJ > VScode 07/12 10:57
推 theurgy: 背景知識是像影片編碼解碼之類的嗎?如果不是那邊有bug或 07/12 11:37
→ theurgy: 是必須要自己農就不用急著看 慢慢補 07/12 11:37
推 Shepherd1987: 先睡飽 07/12 12:12
噓 a5180352: 推文 IDE 比 editor 是什麼概念 07/12 12:46
推 MonkeyCL: 變性 07/12 12:51
→ ptlove1222: 這板真不乏死愛面子逞口快的台男XDDD 07/12 13:35
→ gilingking: 你應該先對程式有瞭解 還要去分析程式架構 不是一昧 07/12 16:24
→ gilingking: 的看所有的程式碼吧 07/12 16:24
→ sc1: ctrl+f google是你的左右手 07/12 19:52
推 rock2345: 沒架構只好自己畫圖拼出架構來 07/12 23:47
推 kingofsdtw: 其中的讀取某個時間點的影像 07/13 01:31
→ kingofsdtw: 嫩咖才用ide,高手都用vi 07/13 01:32
推 ch30529: 先推給別人,讓別人去釐清 07/15 02:08