上回用 Java + IntelliJ 來重構一堆 if/else 的計算運費範例,請見:https://www.youtube.com/watch?v=zO-NnNC-xyg&ab_channel=JoeyChen
這次改用 C# + Rider 來重構一樣的例子,不過這次刻意改用 Func
兩種作法適用場景不同,東西夠小夠單純,想要少一點 class/interface 等 elements,可以先這樣做,到真的有需要時,反正對我來說,要從 Func
## Reference
1) Youtube 版影片:https://youtu.be/9rfVe6Uikt0
2) GitHub commit history: https://github.com/tdd-best/strategy-sample-CSharp/commits/refactoring
3) #TDD與持續重構 培訓參考:https://tdd.best/courses/tdd-continuous-refactoring-2021-05/
--
我知道一般人的 Rider 沒有那個「把三元判斷式 自動替換成 Math.Min()」的燈泡,這是我自己刻的。
有興趣嗎?一起來 #極速開發 玩耍吧:https://tdd.best/courses/extreme-developing-202104/
同時也有1部Youtube影片,追蹤數超過7萬的網紅在地上滾的工程師 Nic,也在其Youtube影片中提到,對於設計模式的學習有多方派系持不同意見,但仔細去思考,會發現設計模式的存在是避免自己發明愚蠢的設計在已經常出現的問題上,在日新月異的科技進步下,隨著商業邏輯更加複雜,軟體工程師所遭遇到的問題也一次比一次還難 Design Pattern 的存在是幫助思考,避免不必要的協作災難,只要能懂得這點並融會...
「strategy pattern java」的推薦目錄:
- 關於strategy pattern java 在 91 敏捷開發之路 Facebook 的最佳解答
- 關於strategy pattern java 在 91 敏捷開發之路 Facebook 的精選貼文
- 關於strategy pattern java 在 在地上滾的工程師 Nic Youtube 的最佳貼文
- 關於strategy pattern java 在 策略模式| Strategy Pattern | Ian Blog 的評價
- 關於strategy pattern java 在 The Strategy Pattern Explained and Implemented in Java 的評價
- 關於strategy pattern java 在 strategy-pattern · GitHub Topics 的評價
- 關於strategy pattern java 在 Is this a correct implementation of the strategy pattern ... 的評價
- 關於strategy pattern java 在 java - Modified Strategy Design Pattern 的評價
- 關於strategy pattern java 在 The Strategy Pattern - fjp.github.io 的評價
strategy pattern java 在 91 敏捷開發之路 Facebook 的精選貼文
【重構】使用 strategy pattern 來取代複雜的 switch cases 與 if/else statement
上回在客戶那邊跟著他們一起重構 legacy code 中一大陀的 if/else if 裡面複雜的邏輯。(不同層級、模組的 cache 中做不同的處理)
因為當時時間有限,大家技能水平普遍有點跟不上,所以雖然讓產品程式碼變得乾淨一點,但對學習重構來說,大家少的東西還是太多了。
因此答應了他們,會再弄個簡單一點的範例,包含重構的過程步驟,source code,以及重構的操作過程錄成影片,供他們台灣跟國外的 RD 可以學習跟練習。
--
這例子其實也是我幾年前 3 天 TDD 版本中,重構的 workshop 裡面擷取出來的一段核心,從 C# 換成了 Java,只是重構過程的行雲流水程度,已經今非昔比了。有興趣的朋友可以看一下,我是怎麼用 IDE 在重構的。
身為 JetBrains Taiwan 的 training partner,總是要有點功力才能撐得起這個資格啊。
--
※ 影片網址:https://www.youtube.com/watch?v=zO-NnNC-xyg&feature=youtu.be&ab_channel=JoeyChen
我不定時會錄一些技術相關的影片,有興趣就來按一下小鈴鐺訂閱吧。
※ GitHub commit history: https://github.com/tdd-best/strategy-sample/commits/video
※ 想要了解更完整的來龍去脈,想要讓自己能動手作到一樣的事,想要玩比這範例更進階、更實務的重構與 TDD,2021 年五月的梯次,只剩下 4 個名額啦:https://tdd.best/courses/tdd-continuous-refactoring-2021-05/
話說這個梯次我拍胸脯保證 100% 會額滿的,因為我正在翻譯相關的經典書,屆時會補上更多相關的內容。
#IntelliJ
#Refactoring
#StrategyPattern
strategy pattern java 在 在地上滾的工程師 Nic Youtube 的最佳貼文
對於設計模式的學習有多方派系持不同意見,但仔細去思考,會發現設計模式的存在是避免自己發明愚蠢的設計在已經常出現的問題上,在日新月異的科技進步下,隨著商業邏輯更加複雜,軟體工程師所遭遇到的問題也一次比一次還難
Design Pattern 的存在是幫助思考,避免不必要的協作災難,只要能懂得這點並融會貫通,職業生涯中有更多的時間去學習不同的思考方式、軟體架構以及團隊管理
成為真正的資深工程師道路上,Design Pattern 絕對是一門主修科目,你可以不完全使用,但卻不能不知道
以下是學習 Design Pattern 的推薦資源,其中包含筆記、書籍和程式碼範例
✅ 我的部落格筆記(Ruby) https://blog.niclin.tw/2018/11/18/%E7%89%A9%E4%BB%B6%E5%B0%8E%E5%90%91%E5%9F%BA%E6%9C%AC%E5%8E%9F%E5%89%87-solid-ruby-sample/
✅ 設計模式學習筆記 https://skyyen999.gitbooks.io/-study-design-pattern-in-java/content/
✅ 七天學會設計模式:設計模式也可以這樣學 https://www.books.com.tw/products/0010750585
✅ 大話設計模式 JAVA 版範例: https://github.com/skyyen999/bigTalkDesignPatternJava
章節:
00:00 算我拜託你了
01:00 什麼是 Design Pattern
02:25 學習 Design Pattern 的好處
04:43 實際應用與學習方式
07:34 導入工作
喜歡影片的話!可以幫忙點個喜歡以及分享、訂閱唷!😘
━━━━━━━━━━━━━━━━
⭐ 蝦皮賣場: https://shopee.tw/bboyceo
⭐ instagram (生活日常): https://www.instagram.com/niclin_tw/
⭐ Facebook (資訊分享): https://www.facebook.com/niclin.dev
⭐ Blog (技術筆記): https://blog.niclin.tw
⭐ Linkedin (個人履歷): https://www.linkedin.com/in/nic-lin
⭐ Github: https://github.com/niclin
⭐ Podcast: https://anchor.fm/niclin
━━━━━━━━━━━━━━━━
🌟 任何問題或合作邀約信箱: niclin0226@gmail.com
#designpattern #前端 #後端
strategy pattern java 在 The Strategy Pattern Explained and Implemented in Java 的推薦與評價
Today, we add another Behavioral design pattern to our Design Patterns in Java series: The Strategy Design Pattern. ... <看更多>
strategy pattern java 在 strategy-pattern · GitHub Topics 的推薦與評價
a useful framework for use strategy design pattern in spring easily ... Project of example of design patterns implement by Java. ... <看更多>
strategy pattern java 在 策略模式| Strategy Pattern | Ian Blog 的推薦與評價
定義一系列演算法,並將其封裝起來,使他們可以相互替換,演算法的變換不影響使用。 ... <看更多>