Re: [請益] 如何沉住氣讀別人的 code

看板Soft_Job作者 (Spright)時間6年前 (2018/01/28 03:10), 編輯推噓27(29264)
留言95則, 33人參與, 6年前最新討論串6/7 (看更多)
※ 引述《Ommm5566 (56天團)》之銘言: : ※ 引述《p52189 (鼠霸)》之銘言: : : 如題……原始碼不長 : : 但撰碼習慣跟我完全不同 : : 到現在我也還沒找到規則 : : 以至於想改一小部分都因為不知道規則而必須幾乎全部爬一遍才改得動 : : 每次讀都很難沉住氣一下就很煩躁不想做了 : : 一直這樣很像也不是辦法 : : 請問大家有什麼方法可以坐得住嗎= = : : 謝謝…… : : ----- : : Sent from JPTT on my HTC_M9u. : 給原PO的答案就是 多看google fb ms 你就會覺得平常人寫code很平常 : code不好讀才是常態 就連google facebook microsoft高手也是雞雞歪歪阿 : 版本號沒遵守Semantic versioning 然後隨隨便便隨便都可以看到菱形繼承 : 建置系統像用擲硬幣決定 有相依性的library有的用cmake有的用automake : (我看過issue: "I just want to say FUCK! waste me lots of time" 6 days ago) : 心情好還用macro function遞迴宣告變數 IDE追不到這些變數 : 突然哪根筋不對就寫lex&yacc去parse自己規定的檔案格式 : 如果是多人貢獻一個專案 還可以看到各種風格混雜 : 1. macro派 : 絕對不會愧對GOOGLE名號的神macro function : 2. 新潮派: 絕對不會愧對GOOGLE名號各種最新最潮的C++11玩法 : 3. C style派 : 大量typedef struct / malloc和free 我以為我在看C語言 : 4. OO派 : 超愛New和Delete 但只限於這個.h/.cpp (其他.h/.cpp使用unique_ptr) : 5. 三位一體 : pointer/reference/ 純copy 在同一個function參數列共存 : 6. template派: 是一位很愛編譯時期決定的朋友呢 : 搞得看完整幾個相依的library我都學會所有c++ feature了 : 堂堂地表最強軟體公司也是不會統一的....... : 至於"coding sytle" 他們通常會用clang-format去整理 所以還算一致 程式碼風格在大型專案裡頭著實是一件很難搞的事情,在很難去分高下的前提下真的要討 論往往會變成宗教戰爭,參與開源專案這幾年看過不少年薪幾百萬台幣的工程師吵風格吵 得不可開交然後又不了了之。 回到主題。閱讀他人的程式碼是一件極度需要修養的工作,除了耐心以外,老實說我也不 確定到底有啥訣竅,不過我個人蠻喜歡一個小技巧,就是幫別人的程式碼寫註解。尤其當 此次的修改需要用到別人的程式碼而且又很難啃的時候,幫忙寫點註解除了確保自己真的 有看懂以外,也可以做功德的幫助下一個可憐的工程師。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.247.6.62 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1517080258.A.59C.html

01/28 03:45, 6年前 , 1F
除非很明顯在做啥 我們幾乎所有的 code都要註解
01/28 03:45, 1F

01/28 09:03, 6年前 , 2F
我遇到的快要被要求接近每一行都要
01/28 09:03, 2F

01/28 09:04, 6年前 , 3F
我剛加入時就是在幫別人寫註解 Q_Q
01/28 09:04, 3F

01/28 09:35, 6年前 , 4F
每一行都要註解也太攏長了,要不要看看寫法是否可以
01/28 09:35, 4F

01/28 09:35, 6年前 , 5F
調整?
01/28 09:35, 5F

01/28 09:53, 6年前 , 6F
每行都要感覺只會增加維護麻煩
01/28 09:53, 6F

01/28 10:09, 6年前 , 7F
註解寫太多只是突顯程式寫的很爛的問題
01/28 10:09, 7F

01/28 10:16, 6年前 , 8F
光寫不寫註解就吵成一片了. 還談甚麼風格.
01/28 10:16, 8F

01/28 10:16, 6年前 , 9F
---- 以下 tab/space大戰 開始 ----
01/28 10:16, 9F

01/28 10:47, 6年前 , 10F
想加註解還會收到指示說不可以寫註解....
01/28 10:47, 10F

01/28 10:58, 6年前 , 11F
乾脆用中文命名變數好了 能少寫很多註解
01/28 10:58, 11F

01/28 11:14, 6年前 , 12F
我也當初這樣反映過 不過要照什麼convention...
01/28 11:14, 12F

01/28 11:17, 6年前 , 13F
也是只有那種很明顯的code才不用寫
01/28 11:17, 13F

01/28 11:26, 6年前 , 14F
讀人家代碼需要什麼休養? 就能力不夠讀的很痛苦而已
01/28 11:26, 14F

01/28 11:26, 6年前 , 15F
代碼到底有多難讀,就跟文章一樣你是語言不熟嗎?
01/28 11:26, 15F

01/28 11:26, 6年前 , 16F
不要自己爛就覺得讀的痛苦很正常好嗎
01/28 11:26, 16F

01/28 11:27, 6年前 , 17F
看一下架構就知道他等級到哪了,根本沒難度好嗎
01/28 11:27, 17F

01/28 11:28, 6年前 , 18F
不會寫的也不可能分層到哪裡去也不太需要切到幾次class
01/28 11:28, 18F

01/28 11:28, 6年前 , 19F
可悲
01/28 11:28, 19F

01/28 11:32, 6年前 , 20F
一個func有3~4頁常都是if包if包好幾層 這種讀的很痛苦
01/28 11:32, 20F

01/28 11:53, 6年前 , 21F
T大可能沒看過爛code 去金融業晃一圈就知道了
01/28 11:53, 21F

01/28 11:56, 6年前 , 22F
某T幹嘛7pupu,又不是什麼狀況你都遇過,還是你寫的co
01/28 11:56, 22F

01/28 11:56, 6年前 , 23F
de,別人覺得難讀?
01/28 11:56, 23F

01/28 12:03, 6年前 , 24F
老子看別人code好多年,也幫別人改過 根本沒感覺
01/28 12:03, 24F

01/28 12:03, 6年前 , 25F
就讀起來很不方便而已 沒必要講的好像看別人CODE很生氣
01/28 12:03, 25F

01/28 12:03, 6年前 , 26F
代表自己很強,我最討厭這種裝b的
01/28 12:03, 26F

01/28 12:37, 6年前 , 27F
看得不爽罵兩句而已,這種東西讀不懂該檢討自己吧
01/28 12:37, 27F

01/28 12:55, 6年前 , 28F
T大是真的沒看過程式碼寫的很爛的,所謂很爛指的是該
01/28 12:55, 28F

01/28 12:56, 6年前 , 29F
縮排不縮;好幾層if;程式碼太多重覆;變數隨便亂取亂創
01/28 12:56, 29F

01/28 12:57, 6年前 , 30F
看不懂是真的,因為call來call去,自己也不知道call哪
01/28 12:57, 30F

01/28 12:58, 6年前 , 31F
高階語言需要註解都是本身寫太爛
01/28 12:58, 31F

01/28 13:45, 6年前 , 32F
推樓上
01/28 13:45, 32F

01/28 13:49, 6年前 , 33F
老子看別人code好多年 最討厭這種裝b的
01/28 13:49, 33F

01/28 13:57, 6年前 , 34F
// 這段不要看,有需求直接砍掉重寫
01/28 13:57, 34F

01/28 15:46, 6年前 , 35F
T大試著去讀看看泡泡code吧,看你要花多少時間
01/28 15:46, 35F

01/28 16:20, 6年前 , 36F
我看過用AJAX call來call去的 追得很不爽
01/28 16:20, 36F

01/28 18:19, 6年前 , 37F
泡泡code好懷念 IOCCC大賽
01/28 18:19, 37F

01/28 18:31, 6年前 , 38F
高階語言需要註解都不及格+1
01/28 18:31, 38F

01/28 19:41, 6年前 , 39F
你也知道立場不同差很多了,搞不好下一個看到你的code
01/28 19:41, 39F

01/28 19:42, 6年前 , 40F
又覺得這個人寫注解也寫的太囉嗦了,又上來PO文lol
01/28 19:42, 40F

01/28 19:43, 6年前 , 41F
我也很討厭那種整天嫌人寫code怎樣的,感覺很幼稚
01/28 19:43, 41F

01/28 20:24, 6年前 , 42F
每行都寫反而更難讀吧 一團亂
01/28 20:24, 42F

01/28 20:32, 6年前 , 43F
現在越來越強調Hierarchy的設計了 畢竟大團隊是小團隊
01/28 20:32, 43F

01/28 20:32, 6年前 , 44F
組成 拆成小團隊就還可以
01/28 20:32, 44F

01/28 20:32, 6年前 , 45F
最表面給user使用的API介面型狀和抽象層次要同一
01/28 20:32, 45F

01/28 20:33, 6年前 , 46F
註解也盡量詳盡 這個層級的註解相當於文件了
01/28 20:33, 46F

01/28 20:33, 6年前 , 47F
然後中間各個team自行決定coding style 註解適量
01/28 20:33, 47F

01/28 20:34, 6年前 , 48F
最下層每個人會有各自的習慣 這邊就仰賴寫程度和良心
01/28 20:34, 48F

01/28 20:34, 6年前 , 49F
不管甚麼時候遇到個人習慣都是無解阿XD
01/28 20:34, 49F

01/28 21:32, 6年前 , 50F
BTN1 BTN2 BTN3
01/28 21:32, 50F

01/28 22:08, 6年前 , 51F
別激動啊。讀code的耐心不一定是指對方code不好,很多
01/28 22:08, 51F

01/28 22:08, 6年前 , 52F
時候只是寫code的人的邏輯差異甚大而已,而這也是為啥
01/28 22:08, 52F

01/28 22:08, 6年前 , 53F
註解很重要。
01/28 22:08, 53F

01/28 22:13, 6年前 , 54F
能不用註解就讓團隊都看懂的程式碼很棒,但事實上專案
01/28 22:13, 54F

01/28 22:13, 6年前 , 55F
不大還可以達到,但當你專案長到幾百萬行的時候就有難
01/28 22:13, 55F

01/28 22:13, 6年前 , 56F
度了
01/28 22:13, 56F

01/28 22:48, 6年前 , 57F
樓上有邏輯漏洞. 一開始都不會認為最後會變成幾百萬行.
01/28 22:48, 57F

01/28 22:50, 6年前 , 58F
我也覺得每行都寫一團亂 但就如樓上幾樓所說的要看是
01/28 22:50, 58F

01/28 22:51, 6年前 , 59F
前還是後 有些API真的就是要求一行一行寫
01/28 22:51, 59F

01/28 22:51, 6年前 , 60F
好處就是後面的人可以跟上
01/28 22:51, 60F

01/28 22:52, 6年前 , 61F
不過最煩的還是不寫英文的...寫什麼法語之類的Q_Q
01/28 22:52, 61F

01/28 22:55, 6年前 , 62F
靠杯我看過寫日文的註解跟德文的XDD
01/28 22:55, 62F

01/28 22:56, 6年前 , 63F
變數名稱與其物理意義不相符也很囧
01/28 22:56, 63F

01/28 23:53, 6年前 , 64F
我現在遇到最困擾是magic number沒註解 只能乾瞪眼
01/28 23:53, 64F

01/29 00:15, 6年前 , 65F
縮排沒差吧 IDE FORMAT一秒
01/29 00:15, 65F

01/29 00:58, 6年前 , 66F
事實上就是沒有完美的 coding style 什麼高階語言不用
01/29 00:58, 66F

01/29 00:58, 6年前 , 67F
註解在大一點的codebase 是不大可能的人人都覺得自己寫
01/29 00:58, 67F

01/29 00:58, 6年前 , 68F
得最漂亮
01/29 00:58, 68F

01/29 02:15, 6年前 , 69F
NDark大說到重點了,一開始沒把專案當成大型專案來管理
01/29 02:15, 69F

01/29 02:15, 6年前 , 70F
,等到有一天發現已經變成怪物就來不及了,只能付出更多
01/29 02:15, 70F

01/29 02:15, 6年前 , 71F
時間來補救。
01/29 02:15, 71F

01/29 10:14, 6年前 , 72F
我主管都只想解決眼前問題 沒想到日後維護
01/29 10:14, 72F

01/29 10:15, 6年前 , 73F
製造出來的技術債只好後人來還了
01/29 10:15, 73F

01/29 11:21, 6年前 , 74F
對於註解的想法,我的觀念是站在clean code這邊,也就是
01/29 11:21, 74F

01/29 11:22, 6年前 , 75F
非必要不寫註解
01/29 11:22, 75F

01/29 16:49, 6年前 , 76F
沒看過用註解寫日記的吼。 看得我都要哭了
01/29 16:49, 76F

01/29 18:46, 6年前 , 77F
哈哈哈非必要不寫 所以你的命名都很完美?
01/29 18:46, 77F

01/29 18:47, 6年前 , 78F
語意真的都清楚可以讓後人看懂?
01/29 18:47, 78F

01/29 22:49, 6年前 , 79F
我是廢材程式員啦 一般我都會開fold和調顏色來決定
01/29 22:49, 79F

01/29 22:50, 6年前 , 80F
要不要看註釋 @_@~
01/29 22:50, 80F

01/29 22:51, 6年前 , 81F
一開始我也不太習慣一堆註釋XD 後來才發現真有人需要
01/29 22:51, 81F

01/29 23:56, 6年前 , 82F
常常實作還會有一些假設 複雜度也未知 沒寫注釋就是要
01/29 23:56, 82F

01/29 23:56, 6年前 , 83F
讀內容摟
01/29 23:56, 83F

01/30 09:16, 6年前 , 84F
我是看過很多人只會逼別人寫註解,然後自己死不肯寫註解
01/30 09:16, 84F

01/30 09:18, 6年前 , 85F
說自己寫的code好所以不寫,然後又愛批評別人的註解
01/30 09:18, 85F

01/30 09:33, 6年前 , 86F
Sidney0503你在悲憤啥?看清楚我表達的是非必要不寫,不
01/30 09:33, 86F

01/30 09:33, 6年前 , 87F
是絕對不寫,你覺得取名技巧不好人家看不懂,不就是你說
01/30 09:33, 87F

01/30 09:34, 6年前 , 88F
我說的"必要的時候"嗎?
01/30 09:34, 88F

01/31 01:06, 6年前 , 89F
我都是func名稱無法表達意思 想一陣 真不得已才上註解補充
01/31 01:06, 89F

01/31 01:06, 6年前 , 90F
所以對那種胡亂取名 寫一大堆註解的人超不爽想罵幹 代表根
01/31 01:06, 90F

01/31 01:06, 6年前 , 91F
本就沒把其他合作開發的工程師放在眼裡嘛
01/31 01:06, 91F

01/31 01:08, 6年前 , 92F
clean code也說過了 註解一堆根本不可能期待會被下一個改的
01/31 01:08, 92F

01/31 01:08, 6年前 , 93F
人持續更新維護 有一個人漏 下次看到註解與程式本身不一致
01/31 01:08, 93F

01/31 01:08, 6年前 , 94F
就會陷入混亂
01/31 01:08, 94F

01/31 10:24, 6年前 , 95F
同意樓上,年久失修的註解常常扮演誤導後人的角色
01/31 10:24, 95F
文章代碼(AID): #1QRCx2MS (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1QRCx2MS (Soft_Job)