Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

如何學好設計模式

1 766 vues

Publié le

近年來設計模式(Design Patterns)已經廣泛地應用在軟體開發的所有活動,從需求、分析、設計、實作、測試到流程,都有模式可遵循。

對許多開發人員而言,學習模式就好像背英文單字一樣,並不是一件輕鬆且容易駕馭的活動。

就算好不容易學會某些模式,也經常發生誤用模式或過度設計的問題。

本次敏捷小酒館將由泰迪軟體的Teddy Chen分享學習設計模式的經驗,介紹學習模式所需掌握的重點,讓你用全新的視野來檢視已知或未知的所有模式。

Publié dans : Logiciels

如何學好設計模式

  1. 1. Teddy Chen teddy@teddysoft.tw http://teddy-chen-tw.blogspot.com Jan. 12 2018 @ 台中【敏捷小酒館】
  2. 2. Copyright@2012-2018 Teddysoft
  3. 3. • 經常聽到設計模式,到底什麼是設計模式? 可以吃嗎? • 想學設計模式但不知如何下手 • 好像學會了設計模式但不知如何活用 • 套了設計模式被老闆、主管或同事痛罵 – 時程很敢趕系統先可以動就好,以後有時間再 慢慢重構 – 你程式改成這樣誰看得懂啊! Copyright@2012-2018 Teddysoft
  4. 4. Copyright@2012-2018 Teddysoft 我的程式碼 來源:https://goo.gl/izaH4A
  5. 5. Copyright@2012-2018 Teddysoft 來源:https://goo.gl/DawfCk
  6. 6. Copyright@2012-2018 Teddysoft
  7. 7. Copyright@2012-2018 Teddysoft
  8. 8. A pattern is a proven solution to a recurring problem in a specific context, and more. Copyright@2012-2018 Teddysoft Context Machine Problem force force force Resulting Context Solution force force force Time
  9. 9. Copyright@2012-2018 Teddysoft
  10. 10. Copyright@2012-2018 Teddysoft 來源:youtube
  11. 11. Copyright@2012-2018 Teddysoft 來源:youtube
  12. 12. 請問: – MackBook Air – MackBook Pro 15” – iMac Pro 哪一台比較好? Copyright@2012-2018 Teddysoft
  13. 13. 我的系統套了87個模式, 請問這是一個好設計嗎? Copyright@2012-2018 Teddysoft
  14. 14. 「只知解法不知問題」 是誰害的? Copyright@2012-2018 Teddysoft
  15. 15. GoF 害的XD Copyright@2012-2018 Teddysoft
  16. 16. Copyright@2012-2018 Teddysoft
  17. 17. Copyright@2012-2018 Teddysoft Problem
  18. 18. Copyright@2012-2018 Teddysoft
  19. 19. • Intent – Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it. Copyright@2012-2018 Teddysoft
  20. 20. Copyright@2012-2018 Teddysoft
  21. 21. 請看例子 Copyright@2012-2018 Teddysoft
  22. 22. • 在macOS上將硬碟格式化成: – NTFS – FAT – FAT32 Copyright@2012-2018 Teddysoft 程式要怎麼寫? DriveManager format(fileSystem)
  23. 23. 這個設計好不好?為什麼? Copyright@2012-2018 Teddysoft
  24. 24. • 你可以把所有的演算法全部寫進同一個物件,然 後用條件式判斷來選用所要執行的版本,但是: – 程式碼很容易變得過於複雜與肥大,不好理解與修改。 – 擴充新的演算法必須要修改既有的程式碼。 – 不容易分別開發、修改與測試每一個演算法。 – 物件占用過多的記憶體空間,因為可能不會使用到全 部的演算法。 • 你可以透過繼承,讓子類被重新定義自己的演算 法。但是這樣會產生許多類似的類別,但僅僅只 有行為上些微的差別。 Copyright@2012-2018 Teddysoft
  25. 25. Copyright@2012-2018 Teddysoft Before After
  26. 26. Source: https://goo.gl/RD2l2m Copyright@2012-2018 Teddysoft
  27. 27. Force告訴我們為什麼模式所要解決的 「問題」是一個真正的問題—為什麼這 個問題很難,為什麼需要一個聰明的, 甚至是違反直覺的解決方案。Force也 是了解為何會採用此種解決方案的關鍵。 Copyright@2012-2018 Teddysoft
  28. 28. Copyright@2012-2018 Teddysoft 請分析 Forces 來源:https://goo.gl/q4WdSL
  29. 29. Copyright@2012-2018 Teddysoft 來源: 電影達摩祖師傳
  30. 30. Copyright@2012-2018 Teddysoft
  31. 31. Copyright@2012-2018 Teddysoft
  32. 32. Copyright@2012-2018 Teddysoft Source: 電影《星際大戰第四集》
  33. 33. Copyright@2012-2018 Teddysoft
  34. 34. Copyright@2012-2018 Teddysoft
  35. 35. 你感冒了去看西醫,醫生開了 特效藥給你,保證三天內感冒 可以痊癒,但此特效藥有傷胃 的副作用。怎麼辦? Copyright@2012-2018 Teddysoft
  36. 36. Copyright@2012-2018 Teddysoft
  37. 37. • 經常聽到設計模式,什麼是設計模式,可 以吃嗎? • 想學設計模式但不知如何下手 • 好像學會了設計模式但不知如何活用 • 套了設計模式反倒被老闆、主管或同事罵 – 時程很敢趕系統先可以動就好,以後有時間再 慢慢重構 – 你程式改成這樣誰看得懂啊! Copyright@2012-2018 Teddysoft
  38. 38. 還是覺得太抽象怎麼辦? Copyright@2012-2018 Teddysoft
  39. 39. 歡迎報名參加: Design Patterns這樣學就會了:入門實作班 2018年3月3、4、10日(六、日、六) Design Patterns這樣學就會了:進階實作班 2018年5月4、5、6日(五、六、日) Copyright@2012-2018 Teddysoft
  40. 40. Copyright@2012-2018 Teddysoft
  41. 41. 敏捷小酒館

×