Re: [請益] 如何有效率的看code ?
※ 引述《Blissey (蛋蛋)》之銘言:
: 轉職一年多
: 幾萬行龐大的code 實在不知道要怎麼看
: 導致工作進度落後 常delay 交不出來
: 每天工時12小時 假日有時還進公司自主加班
: 其實也不只是code 還有背景知識也不熟悉
: 像是錄影跟回放功能 這些以前學校都沒學過
: 太多不懂不知道從何問起 只能慢慢嘗試 非常無力
: 總不可能請同事從頭教我
: 有人也是進職場遇到自己從沒學過的東西嗎?
: 本來想找課本來看 但母校的課程網頁 好像也沒有教這一塊
: 就算假日沒進公司 心裡也沒辦法放鬆
: 都在焦慮周一進公司 要怎麼面對這些code....
: 抱歉 說了一大堆 總結問題
: 1.如何有效率地看龐大的code
: 2.不懂的背景知識,該如何有效率學習
: 先謝謝前輩了orz
: -----
其實你的問題很模糊
先了解 你老闆要你做什
如果是maintain 表示這code是ok的
頂多run run test bench 看看input output
如果是要你跟韌體搭配 去study register table就好
要配軟體 就study interface
真的是要debug 只能祝你好運
真的要看架構 不過大部分都是從註解看起
如果這家的code沒什註解 參數又是 abc那種
勸你離職
大概4這樣
--
註解沒更新也是很麻煩,其實最好的方法是要搭配issue tr
acker和code review tool
樓上有推薦好用的code review tool嗎
Bitbucket, fisheye
找來玩玩看好了 感謝
ctags 算嗎?
Ctag不算吧,那是跳轉定義
而且 code base 爛 沒照 design pattern 在寫的
怎樣都不會有效率的
我參數都用qq, pp 不然就是qqq
沒人用wechat?
看到abc就離職 笑了
韌體軟體差很多,軟體基本上ide都有好用的工具,韌體
不太清楚以前都用grep配ctag
我想到之前看個code有個變數叫GY,XD
變數名和註解真的重要,最怕遇到自認為天才然後都不寫註解的
最怕那種FWcode 變數寫的很籠統 註解=0 然後又夾雜程式
跟硬體操作在裡面的 你只能第一輪整理出程式邏輯 第二
輪依賴程式邏輯跟function去反推硬體行為 第三輪再來拼
湊出這function的目的是甚麼 尤其是當這種動作*數萬行
code 我只能說很恐怖太恐怖了 這輩子不想再做第二次...
我現在都很佩服當初自己是怎麼無差別硬輾過去的 @!#$!@
真的有公司的code參數或變數用abc的嗎...
FW很多人用abcxyz當變數啊
ijk還能理解,xyz只能追code了
還有O0o的..
我看過aaa, bbb, ccc...然後設定1111111111(對,整串1
)
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 之類的都沒學過要重學。36
首Po轉職一年多 幾萬行龐大的code 實在不知道要怎麼看 導致工作進度落後 常delay 交不出來 每天工時12小時 假日有時還進公司自主加班 其實也不只是code 還有背景知識也不熟悉
51
[心得] 好的註解是解釋為何需要這段 code轉自推特 Add comments about WHY code exists, not what it does. The code is right there, we know what it does. 註解應該用來解釋這段 code 的背景需求/含意,35
[討論] 重構跟kpi的考量假設以下情境 有個功能A、B都會用到相同邏輯,且有兩份重覆的code (沒有unit test保護,而且年久失修 要加入unit test會需要更多時程) 現在要加入C,也會用到相同邏輯 身為合格的工程師 應該會把ABC重覆的部份提取出來20
Re: [討論] 所謂的開發強者是怎麼樣子的?^^^^^^^^^^^^^^^^^^^^^^ : 管理 1000+ servers、每年幫公司節省一百萬美金(?) machine cost : 1. 硬實力上 : 他很擅長在不同專案、codebases 中穿梭,幾天就能看穿並理解背後的邏輯和設計脈絡 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^17
Re: [討論] 重構之前要寫測試 不然不要重構這就是TAD, 一般做法是假設以前人做的是對的 拿以前的output當測資 避免以後的output跟預期結果不同 技術面的錯誤→沒有防呆/沒有釋放資源/overflow/沒有check 這應該不在討論範圍內, 也有客觀標準 行為與邏輯的部分才是有爭議的, 要嘛根本沒規格只有口傳14
Re: [討論] 用AI寫code產生的疑問其實很多新技術在早期和成熟後相比你會感覺他的應用是完全顛覆最初想法的 例如 web 仔最熟稔的 web 好了,網路泡沫時代前大家對電子商務 的觀點是在網路上的一個廣告頁,每個網站就像一間街邊店一樣,透過網址 這串虛擬地址你可以造訪網路上的任何一間店,找到你要的資訊,更容易媒合實體交易 當時的 web 就是一本電話簿的概念10
Re: [新聞] 前Google主管:人類寫程式時代已經結束: 看AI能不能寫code 就下個 copilot 玩玩看就知道了 目前支援copilot的IDE(沒列全部) 1. visual studio 2022 2. visual stduio code2
Re: [心情] 工作的內容被放大檢視我怎麼覺得是在找麻煩, 不管是老鳥,還是主管,我就不相信有人可以 速度十分快又完全沒有任何bug,程式精簡到沒任何一絲一毫多餘的斷行 tab或空白或多 餘效率不好的code,或程式中有重覆使用的code(沒精簡包在fuction中) 沒任何bug代表寫完要不斷測試所有各種可能的case,這- 本魯大學森喇 遠距教學的時候,看到的視野大概像這樣八 然後上完課之後,要去處理公司的東西惹 大概就是跟同事聊聊天,study 一些新技術,然後寫寫很簡單的 code 八