#感到窩心
今天在客戶這邊,看到工程師把之前上課的東西,應用在重構 legacy 產品的架構,發揮地淋漓盡致。
把原本散落在每個方法中一大堆無謂的判斷式(例如一堆 error code 的 mapping 判斷)、pre-condition (例如檢查資料的合法性、是否存在該筆資料)、log的紀錄、performance log 、共同的 exception handling 、cache 的存取、身分檢查,全都從原本又髒又肥的 function 內容中拆解出來。
程式碼複雜度指數下降、測試案例個數指數下降、相依物件個數大幅下降,讓設計恢復成原本「簡單」的模樣,關注點分離,實際的 class 都只處理 critical path, 其他的部分拆解出去,透過 DI, decorator, interceptor 來組合。
連我都沒想到他們可以靠自己拆得這麼乾淨、漂亮、簡單。
也難怪上次上完課之後,回公司推薦完又多了好幾位來報名下一梯次。
有興趣的朋友,下一梯次在九月:
https://dotblogs.com.tw/…/dependency-injection-and-aspect-o…
[註]目前此課程只支援 C#,原因是第二天講解到 AOP 的實作,會有一部分依賴於框架,而我對其他語言的框架還不夠熟悉,還不到可以收費培訓的強度,敬請見諒。
另外,這門課也是大幅度的以重構來進行設計的調整,也會寫到單元測試(使用mock framework),也會一併帶到相當多的 JetBrains 重構功能,例如 extract method, extract class, extract interface, move method, constructor generator, introduce field, inline field/variable/parameter/method 系列。
同時也有10000部Youtube影片,追蹤數超過2,910的網紅コバにゃんチャンネル,也在其Youtube影片中提到,...
c# class generator 在 91 敏捷開發之路 Facebook 的精選貼文
#programmer #productivity #visualStudio
http://www.quora.com/I-have-5-years-of-worki…/…/John-Buginas
Coding too slow?
什麼叫慢?完成程式的時間比較久叫慢?還是要連品質算進去才叫慢?
說真的,我個人的看法,拉遠完整來看才會準。也就是連品質跟整個產品生命週期都算進去,也就是包含可讀性、可維護性、效能安全、可擴充性/彈性/可測試性、測試程式、其他靜態程式碼分析指標。
但先決條件當然還是兩個:需求急迫性跟可讀性。
不過,以我自己的觀察,但就生產力來說,還是有太多太多developer有改善的空間。
既然要靠這吃飯,真的平時甚至隨時去學習、尋找任何可以改善生產力的技巧、工具是很重要的,哪怕只是一個動作快0.5秒,在職涯中你可以比別人省下多少時間,再去survey其他更快的技巧,最後就是其他人連你的車尾燈都看不到。
除了靠自己努力學習以外,pair programming 也是一個極好的學習機會。看其他人寫code的方式,有哪裡可以改善,就提醒他。有哪裡可以學習就發問。
我自己從開始寫測試程式時,給自己的目標就是:「我要寫測試程式+production code, 但我花的時間不可以比別人多。」
以這為目標來督促自己,效果十足。有看過我live coding的朋友應該也會挺有感的。
一旦掌握節奏,有時候手指頭會自然反應,動得比腦袋或嘴巴還快。
請善用IDE, shortcut, plugin, code snippets, project templates, code generator, 建立自己寫code的習慣,並且不斷優化它,挑戰自我其實也是建立成就感的來源!
以下是常見幾個我會提醒developer 的小事:
① 不要用眼睛找或在方案總管裡找檔案,用search的(in visual studio, ctrl+f, shift+ctrl+f, ctrl+,都是不同的搜尋)
② 圈選某個字不要傻傻地用滑鼠在那邊拉,如果要用滑鼠,請double click, 要用熱鍵請用shift+ctrl+左右方向鍵
③ 尋找實作內容請裝plugins 或直接用ctrl+k, ctrl+t用檢視呼叫階層找
④ 相關自動完成的功能是top-down設計的必備小技巧。怎麼自動產生class, interface, property, function, field, 到不同專案裡。ctrl+. 更是重要,要引用namespace, 要自動完成,不要再用滑鼠去找那個小箭頭,超級浪費時間。
還有很多很多類似的小技巧,要摸魚就要有能力做得比別人快!
我也還碰過有朋友自己不小心把ctrl+c的shortcut設成其他功能,自此以後他的複製都是用滑鼠右鍵選的...問他他只說他的visual studio ctrl+c壞了....
每個動作比別人快個0.5秒,你也可以是F1 賽車手