Soft_Job 板


LINE

※ 引述《mickeyboy (mickey)》之銘言: : 爬了一下版規,如果有觸犯到,再刪文 謝謝 : 幫朋友代PO : 最近接手公司的新專案,結果發現該專案 : 幾乎完全沒註解,可能一個檔案裡面 : 註解不超過10個字,也沒手冊 : 雖然變數名稱那些都是用"有意義的英文"命名 : 大致上能猜得出"可能是跟什麼有關" : 例如薪資單可能是A檔案,但A檔案中又一堆function : 目前只能從MVC開始慢慢追,想請問版上的前輩們 : 如果遇到這種專案維護,有什麼技巧可以快速入手的 : 問公司的前輩,意思是摸索久了,自然就會記得了 : 感謝 「沒註解的專案該如何維護」 但其實如同推文中很多板友說的 沒註解不代表程式寫得不好 最高境界的 clean code 是無註解的 題外話:「好程式 -> 不寫註解」並不等價於「不寫註解 -> 好程式」 程式寫的爛還是乖乖寫註解比較實在...XD 我先假設你要問的其實是 「很難閱讀的專案該如何維護」 我建議的藥方是 Unit Test  ̄ ̄ ̄ ̄ ̄ 套上 Unit Test 有兩層意義: 1. 確認每個工作單元的行為是否和你猜想的相同 也可作為後續維護程式的「規格文件」 2. 作為重構的保護網,確認重構後行為沒有改變 實務上的步驟的大概是: 1. 建立可以方便撰寫、執行 Unit Test的環境 這得仰賴 IDE 是否有相關的框架、套件可以支援 例如 Visual Studio 內建的 MSTest 2. 小部份重構(還沒有加 Unit Test 保護,切勿大規模重構) 接下來或多或少會面臨 Unit Test 根本就包不上去的情況 因為程式撰寫時根本就沒有考慮過可測試性、耦合的程度太過嚴重 所以比須先使用一些技巧提高程式的可測性(例如依賴注入之類的) 3. 包上 Unit Test,確認工作單元的行為 4. 重構。讓程式碼更好閱讀、具有更高的可測性、可維護性 真的重構不出夠漂亮的程式碼,就乖乖加上註解吧~ Unit Test 是一門博大精深的學問 如何寫出好的test case、測試的工作單元該如何切割、各種情況如何驗證、...等 都是不小的學問,這邊我就不多作贅述了~ Google 「91 TDD」會有很多很棒的文章 :p 以上,獻醜了 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.169.90.185
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1500739518.A.27B.html
1F:→ james732: 話說有沒有專文是在討論嵌入式系統的unit test...Q_Q 07/23 00:31
2F:→ dnabossking: 案子都結束了,看TDD? 07/23 01:13
3F:推 dnabossking: 沒有分層,邏輯交錯,架構很亂,ㄧ個函數包ㄧ堆功能 07/23 01:16
4F:→ dnabossking: ,要怎麼unit test? 07/23 01:16
5F:→ dnabossking: 我是假設性的提問、請教,語氣上若不週全,還請見諒 07/23 01:17
6F:→ newversion: 有些專案談不上維謢,打掉重練還比較快~~~ 07/23 01:22
7F:→ vi000246: 像這種很亂的程式碼 只能砍掉重練吧 小部份重構有點難 07/23 01:24
8F:推 tvbic: 真的是講幹話 07/23 02:10
9F:推 JingX: 先把該函式慢慢拆解分層,拆到足以有明確的輸出輸入, 07/23 08:04
10F:→ JingX: 針對新拆出來建立的函式作Unit test 07/23 08:05
11F:推 wuliou: 重點是主管要承認做測試跟重構的價值 不然你一下就黑了 07/23 14:26
12F:推 evan176: 推 一堆人瘋狂加班就只是因為沒有正確的開發方式 07/23 19:48
13F:推 GameGyu: 不管是嵌入式系統或架構很亂,個人是建議去瞭解IC Design 07/23 20:54
14F:→ GameGyu: 中的design for test之類的方法... 07/23 20:54
15F:推 mickeyboy: 感謝建議,長知識了 07/23 21:00
16F:推 JingX: 老闆看到大家瘋狂加班反而會覺得很爽,耐操=有價值=賺到了 07/24 07:31







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燈, 水草

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

TOP