Re: [請益] 強者不需要註解

看板Soft_Job作者 (ggg)時間7年前 (2016/07/21 22:03), 編輯推噓-5(277)
留言16則, 5人參與, 最新討論串2/2 (看更多)
: ※ [本文轉錄自 Tech_Job 看板 #1NZjKqjl ] : : 作者: randomly (倫敦鐵橋垮下來) 看板: Tech_Job : 標題: [請益] 強者不需要註解 : 時間: Wed Jul 20 09:34:41 2016 : : 大家早, : 我轉發了各位在上篇討論的結果給我剛退伍的同學, : 小弟先代他謝謝各位的回覆, : 但是... : : 這件事情居然有後續,我也先建議他趕快開履歷重找工作了 : 他手上那份source code其實 : 「完全沒有註解」 : 而且聽說也是架構不明,各種奇怪的coding方式跟變數命名 : 還有很多跟實際功能搭不上的function名稱 : : 奇怪的coding舉例: : int functionX(int data, int Size, int Length) : { : ... : functionY(data,Length,Size) : : } : : int functionY(int data, int Size, int Length) : { : .... : } : : 我光看這段就覺得無言了 : code真的很亂的感覺 : : 他說他有問主管為什麼code沒註解也沒有文件 : 主管說:「強者不需要註解」 : : -- : → kenjy: 還看過 fun_x(a,b,c) { ...; fun_x(a,b,c); ...;} 07/20 22:12 : 推 jasonwu23: 我猜functionY裡是要 { ...; return functionX(...);} 07/20 22:32 : → jasonwu23: 也許是額外的需求, 但改動量太低, 這樣改最快. 07/20 22:33 : → jasonwu23: 像是Windows API 中一大堆 CreateXYZ, CreateXYZ 這樣? 07/20 22:34 : → jasonwu23: 最難的是讀懂,接著幹.次一級是整段打掉重寫,Debug到順. 07/20 22:36 : → jasonwu23: 再差一級是看不懂,亂罵一通,推給別人,別人還是得接著幹 07/20 22:37 : 推 jasonwu23: 一直都會有人拿一份舊code給我, 叫我加個什麼功能. 07/20 22:51 : → jasonwu23: 沒有一個是好讀懂的,能不做嗎?先build通再想辦法debug 07/20 22:52 : → jasonwu23: 看懂原作者的想法,再加新的需求上去不影響原來功能. 07/20 22:52 : → jasonwu23: 大家不都是這樣的嗎.看不滿意順手幫你經過的地方加註解 07/20 22:53 : → jasonwu23: 不就好了嗎, 這樣以後的人至少經過這邊就看的懂了. 07/20 22:54 : → Vitaceae: 然後勞心勞力幫人擦屁股還沒有績效 07/20 23:08 : 推 jasonwu23: 當然會有,你功力進步,同事也看在眼裡,別只是想著功利 07/20 23:22 ===================================================================== 這裡有一位有經驗的高手 jasonwu23, 說出了程式被維護成這樣子的原因. 沒有有意義命名的變數名稱, 沒有註解說明, 程式還是能被看得懂, 甚至修改 到加入額外的功能. 這在早期(大約就是30年前)的台灣就是這樣的環境. 把程 式的機器碼透過反組譯幾乎就是這樣子, 反組譯若不再經過人工判讀compiler 的轉譯規則是不會自動產生 symbolic function module 的. 原代post 舉的例 就是 functionX 有段幾乎同樣帶入相同參數名稱, 但很類似 結果名稱的 functionY. 是否像 jasonwu23 大大的說明, 需要再貼完整的 functionY. 假設 funtionX 是處理 data 獲得結果帶回去的主要模組, 再假設在某些情況下 這模組是正確的(譬如英文字串), 現在資料使用的狀況變了(譬如要對中文字串 也能有類似處理), 必須做功能擴充. 負責更新維護的就只要把新功能(如中文) 加進負責處理的這塊模組就好. 所以, 只要找到該功能的 functionX, 再針對需 要變更處理的對象(如中文)補進處理方式的 functionY 就好. 但帶進來的參數是 一樣的, 最後的結果再經 functionX 名稱帶回結果. 我猜 這是 jasonwu23 大大想表達的 維持原功能又只做到擴充新功能的 最簡潔 辦法. 只要找到那個關鍵的模組, 以類似原來的方法把新功能以不動舊模組的方案補進 去, 即使在萬行程式碼的千軍萬馬中, 如入無敵的直取敵軍將帥首級. 舉例未必正確, 有請 jasonwu23 大大補充. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.43.239.55 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1469109838.A.70F.html

07/21 23:04, , 1F
ㄏㄏㄏ 上一篇還有人說負能量在ptt上 不知道誰才是
07/21 23:04, 1F

07/21 23:05, , 2F
這個版也不過如此 都是廢物 還有廢物幫護航
07/21 23:05, 2F

07/21 23:15, , 3F
明天如果有空再幫你推到x1 不用謝
07/21 23:15, 3F

07/22 01:23, , 4F
這樣做要小心,時間久了+協作,專案架構會很亂
07/22 01:23, 4F

07/22 01:25, , 5F
比較好的作法還是從design上下手。
07/22 01:25, 5F

07/22 02:05, , 6F
你活在30年前的環境,難怪現在在說山頂洞人的語言
07/22 02:05, 6F

07/22 02:06, , 7F
現在專案的複雜度多高,不然哪會有這麼多開發設計方法論
07/22 02:06, 7F

07/22 02:07, , 8F
2016年了,都在推devOps了,誰跟你直取醬菜首級啊,噗ㄘ
07/22 02:07, 8F

07/22 06:36, , 9F
有人問我為什麼要花時間在不喜歡的文章上
07/22 06:36, 9F

07/22 07:09, , 10F
純粹是佛心 才不會有人看不懂以為是自己的問題
07/22 07:09, 10F

07/22 10:12, , 11F
這算是歷史共業吧,從摸索到進階,到設計模式,都是
07/22 10:12, 11F

07/22 10:12, , 12F
進步,修改歷史共業說真的,這是好方法,但是延續開
07/22 10:12, 12F

07/22 10:12, , 13F
發就需要去思考後續提供的維護性。
07/22 10:12, 13F

07/22 10:21, , 14F
這種文章不用花心力回 就是一個技術落後被踢走的老人
07/22 10:21, 14F

07/22 14:14, , 15F
幫補血
07/22 14:14, 15F

07/26 23:50, , 16F
07/26 23:50, 16F
文章代碼(AID): #1NaDPESF (Soft_Job)
文章代碼(AID): #1NaDPESF (Soft_Job)