[請益] 如何有效率的看code ?
轉職一年多
幾萬行龐大的code 實在不知道要怎麼看
導致工作進度落後 常delay 交不出來
每天工時12小時 假日有時還進公司自主加班
其實也不只是code 還有背景知識也不熟悉
像是錄影跟回放功能 這些以前學校都沒學過
太多不懂不知道從何問起 只能慢慢嘗試 非常無力
總不可能請同事從頭教我
有人也是進職場遇到自己從沒學過的東西嗎?
本來想找課本來看 但母校的課程網頁 好像也沒有教這一塊
就算假日沒進公司 心裡也沒辦法放鬆
都在焦慮周一進公司 要怎麼面對這些code....
抱歉 說了一大堆 總結問題
1.如何有效率地看龐大的code
2.不懂的背景知識,該如何有效率學習
先謝謝前輩了orz
-----
Sent from JPTT on my Asus ASUS_Z012DA.
--
沒架構文件?
先問前輩程式架構,先了解架構後再看才有意義,不然程
式就一堆if else是有什麼難的?
老鳥:嘻嘻 我手把手教你你不就追上來了 何必呢
一般來講都應該要有架構文件啦 一般來講.....
如果你真的很衰 碰到沒有架構文件又不想丟辭呈的話
你先全部大略看過一遍 然後連連看 將主架構function找
出來 然後用pattern的概念一個一個慢慢推進去讀code
小弟曾經跟過大半個專案是用這種方式消化code的 覺得這
樣會比較有效率 供你參考
你就把讀code當成玩RPG裡在探索未知領域就好
VS code是你的好朋友,然後用雙螢幕勝過單螢幕
背景知識就沒救了...你去找找看有沒有相關的科普書籍
或是相關的行業內會議PPT 知道有哪些topic
然後接下來就是找keyword 啃spec
這沒有人帶的話 就是需要時間累積 自己慢慢找慢慢撞
就算你再天賦異稟也很難速成
Debug mode設斷點看call stack
還有 如果你是寫韌體的話 自己要有hal層的概念
register之類的東西就不要硬下去讀了 這種東西沒有hw出
完整spec 你認真在那邊看到死也沒用 不要寫code的人自
己沒有那個layer的意識亂寫 你還在那邊傻傻trace老半天
讀spec清楚protocol長怎樣就可以了
debug mode 催下去就是了,別傻傻 print
以人類的惡意去思考會輕鬆點。
重構 寫測試
沒文件就自己寫,我寫過UML其實不好寫
沒有程式註解可以看嗎? 那就是前人的問題了
先了解架構
背景知識超級重要,先找人問清楚,背景知識不懂,就無法理
解架構為什麼要這樣設計,程式自然看不懂
背景知識超級重要,如果不了背景知識,就不會了解架構為什
麼要這樣設計,程式自然看不懂
有些可能是workaround,註解也沒寫清楚只能問了,怕
常常打擾同事的話,就列下來看一個段落再一起問
有些code不是單純 if else 沒專業背景看不懂 邏輯看
的懂但是 code 看不懂要補專業知識
多請老鳥喝咖啡,去聊天順便聊code
我之前看前人的CODE居然幹了100多個if else..
幾萬行也在哀Zzz
Debugger + editor的跳轉定義功能
跑unit test看看回傳什麼
在公司待久一點慢慢看懂code下班假日都看就會懂
20幾年的碼農良心建議,換工作比較好
總有每週進度報告吧!聽聽同事報的內容聽久了就會有點想法
了。
另外總有code review吧!
我都付一點錢外包給朋友做 供你參考
我都用資料流去看
如何有效率的看code? 就是不要看不相干的地方
知道甚麼時候適可而止 並且把重點放在文件上
Debugger step run ?
台廠沒啥在寫文件的吧
真的沒架構文件隨便埋個bt都比較快
善用debugger/dump stack/log,有些是一堆multithread等來
等去,你天馬星空想像都不如加幾行log看他怎麼跑
然後code看久就會越來越快了,就跟看英文書一樣
韌體的code,才真正要你命,純軟就看你的工具如何有效的
使用,觀念很重要。
看那麼快幹嘛 給老人一點尊重
問人或看文件 不可能真的去看整個
code是已知錯在那行 才去看
如果架構文件有隨著 code 更新而更新那還好,有些人只會一
直改 code 不改文件,結果兩邊對不起來看了更慘...
不要寫架構文件,專心寫code 不要研究code,專心寫code
都做 一年多了才提背景知識不熟也怪怪的
如果是功能開發,簡單的錄影回放用 3rd party 2天內搞定
如果是 maintain&debug 就直接從公司既有的 API 下手
邊做邊整理, 註解, 模組化, 自然就上手 如果原本寫的很
爛可讀性低,就順手慢慢重構吧,這樣還比較輕鬆
看看臨兵桌上有甚麼不是程式語言的書, 借來看看
用source insight 一邊trace code 一邊補齊所缺的知識
問有沒有架構圖+找前輩帶你順一次架構
debug mode 下去吧,你光用看的,根本很難看的懂
跑起來debug mode開下去。先問主架構是哪條,跳過不重
要的扣。扣第一次不用每行看懂,領略function意思就好
。一邊trace一邊畫架構圖。
要看懂這篇推文從零開始,我下一本要看的書名
個人偏好IntelliJ > VScode
背景知識是像影片編碼解碼之類的嗎?如果不是那邊有bug或
是必須要自己農就不用急著看 慢慢補
先睡飽
推文 IDE 比 editor 是什麼概念
變性
這板真不乏死愛面子逞口快的台男XDDD
你應該先對程式有瞭解 還要去分析程式架構 不是一昧
的看所有的程式碼吧
ctrl+f google是你的左右手
沒架構只好自己畫圖拼出架構來
其中的讀取某個時間點的影像
嫩咖才用ide,高手都用vi
先推給別人,讓別人去釐清
5
拿出你的 powerpoint/word/visio 開始重建程式的架構跟流程圖, 加上自己的註解函式之間的關係搞清楚幾萬行根本沒什麼 最慢一週內就看完了 而且後面會越看越快10
就是不要看扣 有文件看文件,沒文件去問人 臉皮要厚,心要 code這種東西不是人看的,是機器看的 就算你是超級老手,直接去看幾萬行的扣也是浪費時間15
如果你沒寫錯的話 一年多看幾萬行code真的不多 我也是轉職仔,原本在ic house寫C做韌體,一個人負責一個.c/.h檔。一年才進三行code。 轉職後寫C++整個team大約十多人,負責的那一層有兩千萬行code。然後第一年就進快一萬行code。 我原本不會C++的,所以什麼framework,modern C++,design pattern,multithreaded 之類的都沒學過要重學。13
其實你的問題很模糊 先了解 你老闆要你做什 如果是maintain 表示這code是ok的 頂多run run test bench 看看input output 如果是要你跟韌體搭配 去study register table就好
54
[討論] 科技業就是無止盡地學習嗎?進入職場已5年 從硬轉軟2年 每天都還是覺得自己不夠好 常常卡code 主管要求的task也常常delay 做不出來 是我這個產業本來就這樣 還是我能力太差 一個模組做完 還得再去學完全沒碰過的模組42
[心得] 台灣人工智慧學校培訓心得因為公司突然對AI這領域濃厚的興趣,台中一期二期的學長姐都是有詢問過本人 意願後才被公司派往上課,到第三期已經變成指派的感覺,而完全沒有相關背景 的我也被老闆指派上課. 雖然要犧牲4個月禮拜六時間,但也有2個工作日是直接 到學校上課,想想公司也真的是重成本來培育所謂的AI人才! 技術領袖班課程十二週,專題實作四週,共 十六 週,每週上課三天09:30 ~ 18:0024
[請益] 看code的能力不夠,該如何增強?大家好,我是一個剛從傳產接案公司逃出來的網頁後端蔡b8。 當初在舊公司的時候由於一路從伺服器建置到專案規劃跟實作都做,再加上平時有在補一 些網頁前後端的知識,所以自我感覺良好,面試時也無所畏懼。 但上工一陣子後我發覺因為之前的工作經驗都是從0開始寫小專案交差,所以只要方向明 確,實作是沒問題的,這幾個禮拜已經實作了幾個小功能。24
Re: [討論] 怎麼克制不想教白目同事的衝動原PO還好 只要壓制住教他的衝動就好 有沒有遇過同事一開始很熱情的請教你一些基本到不行的問題 (ex static 是什麼 什麼時候用 泛型怎樣怎樣的 還說他很想進步,只是沒時間(讓人白眼的藉口18
Re: [討論] 用AI寫code產生的疑問這篇展示ChatGPT的威力與限制。 他問Bing如何raycast一個有displacement map的geometry. 原po問到最後,答案是不可能或給錯誤的程式。 下面有人回答他把原po的問提去問ChatGPT4,說得到很好的解決。11
[問卦] 清大電類畢業不會寫code我曾到ITRI參加產訓 碰到一個自稱清大電類的女生 不會寫code 分組專題製作 只會講幹話 「我不會耶 參考別人的就好啦」 「我知道怎麼做遊戲 我會改」14
[討論] OS的程式碼要怎麼trace比較有效率?大家好,小弟的工作跟 MCU 有關 近期工作剛 on board,導師要我先看一個資料夾內的 Code 裡面看起來像是一個 task 的 create、initilize 跟 API 以往經驗,我會先找一個程式的 main function 當入口,然後順著邏輯去看 code 但這套似乎沒辦法用在 Kernel 上,