Soft_Job 板


LINE

想額外小小分享個人覺得重要的概念 『 假如寫了註解一定要維護 』 舉例 前幾年老闆委託寫尾牙發錢活動程式 中間改了幾次關於金錢的邏輯,特別獎金加碼,都沒有修改過註解 今年老闆又要舉辦一次尾牙抽獎,這次沒有加碼,另外把程式交給一個新進員工來修改。 ``` void Main(){ /* 邏輯: ..略 - 當年資超過一年,獎金+2000 ..略 */ newYearBonusService.SetBonus(emloyee) } class NewYearBonusService{ public void SetBonus(Employee emloyee){ ..略 if(GetJobTenure(emloyee)>=1) emloyee.Bonus += 8000; ..略 } } ``` 結果新人沒有去花時間去讀程式,直接相信你的註解,直接上線 抽獎當天才發現錢多給了6000,老闆大怒。 類似概念的例子在在現實偶而遇到,因為需求常變更,貪一時之便不去維護註解, 反而一開始就不要註解,把變數、方法命名取好,模組化做好,反而有更有幫助。 另外讀別人註解我個人的觀念(對版上很多前輩應該是基本概念): 『 註解只是補助,程式才是本體 註解會騙你,但程式碼不會騙你 』 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 43.229.116.218
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1545906896.A.B55.html
1F:推 Fkym08: 我會騙你嗎 我說到做到 12/27 18:49
2F:→ CaptainTeemo: 因為沒寫 unit test 呀 12/27 18:57
3F:→ testPtt: git就是用來抓戰犯的 12/27 19:09
4F:推 qwe85158: 記得哦 12/27 19:21
※ 編輯: shps951015 (43.229.116.218), 12/27/2018 19:33:04
5F:→ shps951015: 同意C大,有寫單元測試就是一種保障 12/27 19:34
6F:推 mozume: 我喜歡這句「註解會騙你,但程式碼不會騙你」 12/27 19:44
7F:→ mozume: 遇過的太多次註解跟code完全不合的,年代越久遠的越多 12/27 19:45
8F:→ MOONY135: 讓我們感謝那位工程師的犧牲奉獻 12/27 20:13
9F:→ robler: 註解很多時候是在補充說明 讓你可以不用把程式看完 12/27 21:00
10F:→ robler: 你要知道,很多程式光是看完,追蹤一次就要花一整天 12/27 21:01
11F:→ robler: 然後方法的名子又不能寫太長 註解就很有用了 12/27 21:01
12F:→ robler: 程式碼雖然不會騙你,但是要寫的讓別人看不懂卻很容易 12/27 21:02
13F:推 yyc1217: 倒是覺得把1和2000寫進註解 就是magic number的問題 12/27 21:03
14F:→ yyc1217: 這兩個應該是傳進去的參數才對 12/27 21:03
15F:→ yyc1217: 註解應該寫成「超過年限就給獎金」 12/27 21:06
16F:→ yyc1217: @param int 年限 / @param int 獎金 12/27 21:06
17F:推 s06yji3: 註解應該避免寫邏輯和magic number 12/27 21:08
18F:→ shps951015: 同意y大跟S大想法 12/27 21:19
19F:推 googoo1102: 應該有個calBonus帶入員工資料 然後回傳獎金 12/27 21:36
20F:推 googoo1102: 2000金額寫在db或是檔案裡 12/27 21:41
21F:推 Jichang: 這程式本身就寫的不好了 8000不會寫在哪裡 12/27 21:47
22F:→ lazarus1121: 大方向的註解還是必要的 不用那麼細 12/27 21:59
23F:→ shps951015: X大,是的正常不會這樣搞的,恩...我在想想舉例好了 12/27 21:59
24F:→ lazarus1121: 至少要讓人知道這段程式的主要目的是啥 12/27 22:00
25F:→ shps951015: 我想想有沒有簡單不複雜的例子,可以表達我想要的 12/27 22:01
26F:→ lazarus1121: 我看過map包map總共包了4層的程式 沒有註解 12/27 22:01
27F:→ lazarus1121: 我浪費半天時間讀他 最後直接打掉變MultiKeyMap 12/27 22:03
28F:→ shps951015: 之前寫Java有看過這樣的例子 但例子是LinkHashMap 12/27 22:08
29F:→ shps951015: 想到之前有看過在註解解釋HashMap原理的.... 12/27 22:10
30F:推 hellomotogg: 實作邏輯改了 method名稱沒改 被騙QQ 12/27 23:00
31F:→ xxtuoo: 類似的..老實寫註解跟屬名..後面人改code不改註解..更後面 12/27 23:38
32F:→ xxtuoo: 人怪我 註解亂寫誤導...以後一律只剩source..Zzz 12/27 23:38
33F:→ xxtuoo: 署名 12/27 23:39
34F:推 ppc: XDDDDDD 12/28 02:19
35F:→ ppc: 註解解釋HashMap原理也太逗 12/28 02:20
36F:→ rofellosx: 不用先測試嗎? 12/28 09:33
37F:推 DCTmaybe: 問一下:所以多發的獎金有拿到手嗎? 12/28 10:44
38F:→ shps951015: 大大,抱歉讓你誤會了,這只是舉例,實際沒有發生過的 12/28 11:30
39F:→ MOONY135: 應該是會給 不然太沒有面子 12/28 11:30
40F:→ b81314: 這當然是舉例拉- - 12/28 13:12
41F:推 DCTmaybe: 抱歉沒看到舉例XDD 12/28 13:23
42F:推 hankyan919: 這就是code review 的重要性 改功能reviewer也要看註 12/28 13:24
43F:→ hankyan919: 解 12/28 13:24
44F:推 skizard: 註解不需要寫到這麼細阿 讓人快速帶入邏輯就好 12/28 14:34
45F:→ Ekmund: 這case推到線上去問題不在註解吧 在驗證 12/28 14:50
46F:→ Ekmund: 真正傷害的是RD的時間成本 所以思考面向要變成 12/28 14:51
47F:→ Ekmund: 規範註解該寫些什麼 使用的地方和內容 12/28 14:51
48F:→ Ekmund: 比方說 只寫功能 不詳述規則 而是寫“根據年資發獎金” 12/28 14:52
49F:→ Ekmund: 但是把實際數據留在版編資訊 也好追查變化 12/28 14:53
50F:→ Ekmund: 或是交給外部輸入 讓老闆自己邊看邊調 12/28 14:55
51F:推 ggttoo: 推樓上的方法不錯 12/28 18:38
52F:→ descent: 有句話說, 註解和程式碼可能都是錯的 12/28 22:01
53F:噓 darkMood: 胡址,註解的功能不是其他方式可以取代,而這裡的問題 12/29 01:46
54F:→ darkMood: 是沒有做測試,這樣改程式本來就該處死,關註解屁事 12/29 01:46
55F:→ darkMood: 更別說註解又不是這樣亂寫一通就可以了,少污化名註解 12/29 01:46
56F:→ TAKADO: 這種註解還不如不寫,而且目的/邏輯應該寫在文件裡吧 12/29 17:19







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Tech_Job 或 站內搜尋

TOP