Upgrade to Pro — share decks privately, control downloads, hide ads and more …

重新想像:如何做技術選型決策 / Rethinking : Technical Decision

Yi-Feng Tzeng
September 28, 2022

重新想像:如何做技術選型決策 / Rethinking : Technical Decision

《技術管理者論壇:商業與技術的平衡》

【主題】重新想像:如何做技術選型決策

技術選型是個既『成熟』又『新鮮』的老話題。成熟的是網路充斥著各種資訊;新鮮的是技術每年推陳出新,總會帶來新變化。本場次會以全新有趣又直擊靈魂的問題引導方式,與大家一同深入技術選型的眾多領域。

這趟旅程未必有答案,畢竟複雜的問題沒有唯一解,但我提出的問題會嘗試讓你與自己對話,就請跟著我一起試著顛覆既有的認知,並重新回到更深處的思考本質。

議題包括但不限於,

➊ 只著眼於「技術」的技術選型,常以失敗告終,為何?

➋ 老技術不好嗎?新技術不行嗎?永遠會面對的兩難議題。

➌ Agile & DevOps 對技術選型與管理的影響,以及為何有些技術人討厭與排斥?

➍ 引入 Cache 不好嗎?套用 Microservices 不好嗎?轉為 Sharding 不好嗎?資料庫怎麼選?選型的本質探討。

➎ 技術人討厭 OKR?或許我們換個角度,不僅會樂於採用還可讓解決問題的實力大增。

Yi-Feng Tzeng

September 28, 2022
Tweet

More Decks by Yi-Feng Tzeng

Other Decks in Technology

Transcript

  1. 重新想像
    如何做技術選型決策
    [email protected] https://www.facebook.com/yftzeng.tw https://twitter.com/yftzeng
    Ant
    2021-07-17

    View Slide

  2. 2/195
    曾義峰 (aka Ant)

    TGO (Top Geeks' Organization) Networks
    創始委員及現任學習委員

    臺灣資安社群 CHROOT 成員

    曾任資安顧問及電子票證公司顧問

    前 LeadBest Consulting Group 首席執行顧問

    開源人年會 (COSCUP) 2009 / 2012 / 2020 講師

    臺灣駭客年會 (HITCON) 2008 及 2009 講師

    臺灣 Modern Web 2015 ~ 2020 講師

    View Slide

  3. 3/195
    從專業到商業

    View Slide

  4. 4/195
    Security
    (Hacker)
    Law
    (Intellectual Property)
    Technology
    (Software Dev.)
    著作權法
    商標權法
    專利權法
    自由開放源碼授權
    ...
    曾於英業達及廣達電腦等
    教授自由軟體授權相關課程
    CTO
    技術總監
    總工程師
    技術顧問
    CHROOT 成員
    台灣駭客年會兩屆講師

    View Slide

  5. 這趟旅程未必有答案,但會嘗試讓你與自己對話

    View Slide

  6. 重新
    想像

    View Slide

  7. 以下,都是我對自己提出的自省

    View Slide

  8. 8/195
    如何做技術選型決策
    技術管理 技術模式 技術工具
    人 事 物

    View Slide

  9. 9/195
    如何做技術選型決策
    技術管理 技術模式 技術工具
    人 事 物

    View Slide

  10. 10/195
    技術管理
    在決策中,人是最為關鍵的因素,但是人類往往最不瞭解的就是人類自己。
    《快思慢想》

    View Slide

  11. 11/195
    技術管理
    Management
    管理
    Leadership
    領導

    View Slide

  12. 12/195
    技術管理
    關於管理與領導,你們怎麼看?
    Q
    Management
    管理
    Leadership
    領導

    View Slide

  13. 13/195
    技術管理
    Credit: https://www.business2community.com/leadership/leadership-difference-boss-leader-01651799
    Credit: https://www.quora.com/What-are-the-differences-between-boss-and-leader
    1 2 3

    View Slide

  14. 14/195
    技術管理
    Credit: https://www.business2community.com/leadership/leadership-difference-boss-leader-01651799
    Credit: https://www.quora.com/What-are-the-differences-between-boss-and-leader
    1 2 3
    Boss vs. Leader
    Manager vs. Leader

    View Slide

  15. 15/195
    技術管理
    Credit: https://www.books.com.tw/products/0010819896
    Credit: https://www.books.com.tw/products/0010450965
    作者: 許士軍
    出版: 2019-03-01
    作者: Gary Dessler & Jean Phillips
    出版: 2009-07-01 ( 原 2008-08-03)

    View Slide

  16. 16/195
    技術管理
    Management
    管理
    Leadership
    領導
    是不是這樣比較合理呢?

    View Slide

  17. 17/195
    技術管理
    Management
    管理
    Leadership
    領導

    View Slide

  18. 敏捷

    View Slide

  19. 19/195
    技術管理
    Credit: https://craigsmith.id.au/2016/02/03/40-agile-methods-goes-open-source/
    Scrum
    Kanban
    XP
    TDD/BDD
    SAFe
    LeSS
    DevOps
    1
    2
    3
    4
    5
    6
    7

    View Slide

  20. 20/195
    Q
    技術管理
    是否為 ( 技術 ) 團隊導入敏捷?你是支持還是反對?
    心裡浮現很多故事,可能有好有壞

    View Slide

  21. 21/195
    技術管理
    朋友群中是否有支持派,以及反對派?
    Q
    回想一下朋友圈近年的分享內容

    View Slide

  22. 22/195
    技術管理
    有沒有觀察過,支持與反對敏捷的人,其職位或職業分布為何?
    老闆 / 主管 / PM / PO / 顧問 ( 管理 or 技術 ) / 基層 / 接案?
    Q

    View Slide

  23. 23/195
    技術管理
    有沒有觀察過,新版 Scrum Guides 2020 (11 月 ) 推出時,分享的人是哪些人?
    Q
    老闆 / 主管 / PM / PO / 顧問 ( 管理 or 技術 ) / 基層 / 接案?

    View Slide

  24. 如果與我們息息相關,為何我們表現的毫不在乎
    透明、開放、回顧、衝刺 ( 上下一心 )

    View Slide

  25. 25/195
    技術管理
    有沒有觀察過,大家所謂的敏捷是什麼?
    敏捷宣言有四點,但是否人人都不太一樣。就像在一個專案中,存在著各種不同的程式語言
    Q

    View Slide

  26. 26/195
    技術管理
    有沒有觀察過,決定的話語權通常落在誰身上?
    Stakeholder ? Product Owner ?
    Q

    View Slide

  27. 27/195
    技術管理
    有沒有觀察過,決定的話語權通常落在誰身上?
    Stakeholder ? Product Owner ?
    Q
    隕石開發法
    Credit: https://eiki.hatenablog.jp/entry/meteo_fall

    View Slide

  28. 28/195
    技術管理
    你認為,一個成功的 ( 敏捷 ) 公司,是誰為公司宣傳來得有力?
    高層?基層?
    Q

    View Slide

  29. 29/195
    技術管理
    宣傳 ( 敏捷 ) 成功的公司,他們說的是理論?還是證據?
    Q

    View Slide

  30. 30/195
    技術管理

    View Slide

  31. 31/195
    技術管理
    Credit: https://twitter.com/ronquartel/status/1112830272871923712

    View Slide

  32. 32/195
    技術管理
    Credit: https://www.amazon.com/Accelerate-Software-Performing-Technology-Organizations/dp/1942788339

    View Slide

  33. 33/195
    技術管理
    宣傳敏捷導入成功的公司,他們說的是理論?還是證據?
    營收成長?員工數成長?
    人均貢獻?離職流動率?
    Q
    多因素影響下的歸因?

    View Slide

  34. 34/195
    技術管理
    當敏捷追求 Customer Value ,大談 User Experience 時,你有什麼想法?或落差?
    Employee Happiness ?為顧客犧牲了員工?現實的落差?
    ( 軟體工程師 ) SSD + Screen + Flow > TDD > Value (?)
    Q

    View Slide

  35. 35/195
    技術管理
    大家怎麼分享大規模敏捷的實踐?你的想法是什麼?
    Q
    100 人? 200 人? 300 人?

    View Slide

  36. 36/195
    技術管理
    Credit: https://www.agilest.org/scaled-agile/scrum-of-scrums/
    Scrum of Scrum of Scrums

    View Slide

  37. 37/195
    技術管理
    SAFe
    Credit: https://www.scaledagileframework.com/

    View Slide

  38. 38/195
    技術管理
    Credit: https://www.agilest.org/scaled-agile/scrum-of-scrums/
    Credit: https://www.scaledagileframework.com/

    View Slide

  39. 39/195
    技術管理
    敏捷軟體開發宣言
    個人與互動 > 流程與工具
    可用的軟體 > 詳盡的文件
    客戶合作 > 合約協商
    回應變化 > 遵循計畫
    若我們回頭參照《敏捷軟體開發宣言》
    Credit: https://www.agilest.org/scaled-agile/scrum-of-scrums/
    Credit: https://www.scaledagileframework.com/

    View Slide

  40. 40/195
    技術管理
    敏捷軟體開發宣言
    個人與互動 > 流程與工具
    可用的軟體 > 詳盡的文件
    客戶合作 > 合約協商
    回應變化 > 遵循計畫
    Credit: https://www.agilest.org/scaled-agile/scrum-of-scrums/
    Credit: https://www.scaledagileframework.com/

    View Slide

  41. 41/195
    技術管理
    敏捷軟體開發宣言
    個人與互動 > 流程與工具
    可用的軟體 > 詳盡的文件
    客戶合作 > 合約協商
    回應變化 > 遵循計畫
    這種結構是組織成長不得不的結果?
    Credit: https://www.agilest.org/scaled-agile/scrum-of-scrums/
    Credit: https://www.scaledagileframework.com/

    View Slide

  42. 42/195
    技術管理
    自組織 阿米巴
    Credit: https://www.archimetric.com/%E4%BB%80%E9%BA%BC%E6%98%AFscrum%E7%9A%84%E8%87%AA%E7%B5%84%E7%B9%94%E5%9C%98%E9%9A%8A%EF%BC%9F/
    Credit: https://zh.codeprj.com/blog/bafe131.html

    View Slide

  43. 43/195
    技術管理
    自組織 阿米巴
    Credit: https://www.archimetric.com/%E4%BB%80%E9%BA%BC%E6%98%AFscrum%E7%9A%84%E8%87%AA%E7%B5%84%E7%B9%94%E5%9C%98%E9%9A%8A%EF%BC%9F/
    Credit: https://zh.codeprj.com/blog/bafe131.html
    扁平化 + ≧ 9 ± 2 !
    2020 Scrum Guide ?

    View Slide

  44. 44/195
    技術管理
    The Fifth Discipline / 第五項修練 (1990)
    Credit: https://www.amazon.com/Fifth-Discipline-Practice-Learning-Organization/dp/0385517254

    View Slide

  45. 45/195
    技術管理
    Credit: https://achardypm.medium.com/agile-team-organisation-squads-chapters-tribes-and-guilds-80932ace0fdc
    觀眾:你怎麼不提 Spotify ?

    View Slide

  46. 46/195
    技術管理
    Credit: https://achardypm.medium.com/agile-team-organisation-squads-chapters-tribes-and-guilds-80932ace0fdc

    View Slide

  47. 47/195
    技術管理
    Credit: https://achardypm.medium.com/agile-team-organisation-squads-chapters-tribes-and-guilds-80932ace0fdc
    現在還在談 Spotify 敏捷模式的趨勢? Spotify 模式是不是敏捷反模式?

    View Slide

  48. 48/195
    技術管理
    Pull Request 對 Agile / DevOps 是正模式還是反模式?
    Q

    View Slide

  49. 49/195
    技術管理
    Credit: https://railsware.com/blog/pull-request-review-from-a-railsware-engineers-perspective/

    View Slide

  50. 50/195
    技術管理
    Credit: https://wideinfo.org/welcoming-change-whilst-in-the-realm-of-agile-software-development/
    Credit: https://software.af.mil/training/devops/
    敏捷 & DevOps :快速交付價值,靈活嚮應變化

    View Slide

  51. 51/195
    技術管理
    Credit: https://twitter.com/d_stepanovic/status/1379451260638785536

    View Slide

  52. 52/195
    技術管理
    Pipeline ? Flow ? Continuous Integration ? Continuous Delivery ?
    Interrupt & Wait time
    Credit: https://twitter.com/d_stepanovic/status/1379451260638785536

    View Slide

  53. 53/195
    技術管理
    Pull Request 實際上很常被用於不信任的文化中?
    Pull Request 是否為 Continuous Integration 中引入了延遲?
    Credit: https://twitter.com/d_stepanovic/status/1379451260638785536

    View Slide

  54. 54/195
    技術管理
    有比較好的解決模式嗎?
    Credit: https://twitter.com/d_stepanovic/status/1379451260638785536

    View Slide

  55. 55/195
    技術管理
    從 Agile / DevOps 角度探討 QA / Testing 的角色?
    Q

    View Slide

  56. 56/195
    技術管理
    Credit: https://software.af.mil/training/devops/

    View Slide

  57. 57/195
    技術管理
    Credit: https://software.af.mil/training/devops/
    DevOps : Breaking Silos ( 打破壁壘 )

    View Slide

  58. 58/195
    技術管理
    Silos ( 壁壘 )
    Credit: https://www.slideshare.net/hironoriwashizaki/quality-assuranceagile-quality
    Credit: https://www.visual-paradigm.com/tw/guide/software-development-process/what-is-a-software-development-lifecycle/

    View Slide

  59. 59/195
    技術管理
    Silos ( 壁壘 )
    Credit: https://www.slideshare.net/hironoriwashizaki/quality-assuranceagile-quality
    Credit: https://www.visual-paradigm.com/tw/guide/software-development-process/what-is-a-software-development-lifecycle/
    組織壞味道一: Dev 覺得「測出錯誤」是 QA 的責任?

    View Slide

  60. 60/195
    技術管理
    Silos ( 壁壘 )
    Credit: https://www.slideshare.net/hironoriwashizaki/quality-assuranceagile-quality
    Credit: https://www.visual-paradigm.com/tw/guide/software-development-process/what-is-a-software-development-lifecycle/
    組織壞味道二: QA 覺得 Dev 老是產出有瑕疵的程式碼?

    View Slide

  61. 61/195
    技術管理
    Silos ( 壁壘 )
    Credit: https://www.slideshare.net/hironoriwashizaki/quality-assuranceagile-quality
    Credit: https://www.visual-paradigm.com/tw/guide/software-development-process/what-is-a-software-development-lifecycle/
    組織壞味道裡,你有聞到推責的氣味嗎?
    以個人的角度來論,每個人說的都是 They 的錯?每個人都在浪費生命?
    回到資深工程師的定義, Dev 該為產出高品質的程式碼負責,還是推責?

    View Slide

  62. 62/195
    技術管理
    Silos ( 壁壘 )
    Credit: https://www.slideshare.net/hironoriwashizaki/quality-assuranceagile-quality
    Credit: https://www.visual-paradigm.com/tw/guide/software-development-process/what-is-a-software-development-lifecycle/
    如果 Dev 不認真對待測試,組織就沒有重視質量的文化

    View Slide

  63. 63/195
    技術管理
    Silos ( 壁壘 )
    Credit: https://www.slideshare.net/hironoriwashizaki/quality-assuranceagile-quality
    Credit: https://www.visual-paradigm.com/tw/guide/software-development-process/what-is-a-software-development-lifecycle/
    所以 DevOps 著重在於 ... ?

    View Slide

  64. 64/195
    技術管理
    Credit: https://www.mabl.com/blog/shift-left-shift-right-shifting-and-why

    View Slide

  65. 65/195
    技術管理
    Automated testing & Continuous Testing
    Credit: https://www.mabl.com/blog/shift-left-shift-right-shifting-and-why

    View Slide

  66. 66/195
    技術管理
    Feature Flags 對 Agile / DevOps 是正模式還是反模式?
    Q

    View Slide

  67. 67/195
    技術管理
    Credit: https://www.slideshare.net/yftzeng/testing-in-production-deploy-on-fridays

    View Slide

  68. 68/195
    技術管理
    Credit: https://www.slideshare.net/yftzeng/testing-in-production-deploy-on-fridays
    敏捷 & DevOps :快速將價值交付到顧客手上?
    預設 Flag 開啟還是關閉,是否變得很重要?

    View Slide

  69. 69/195
    技術管理
    Credit: https://www.slideshare.net/yftzeng/testing-in-production-deploy-on-fridays
    如果預設開啟,那麼與沒有 Feature Flags 有什麼差別?
    還是有的,想一想

    View Slide

  70. 70/195
    技術管理
    作為經理或團隊負責人,確保在迭代開始時將所有任務分配給適當的個人。
    重要的是每個人都知道他們在迭代中負責什麼。
    Q
    你覺得呢?

    View Slide

  71. 71/195
    技術管理
    好 省
    夢點

    View Slide

  72. 72/195
    技術管理
    好 省
    夢點

    View Slide

  73. 73/195
    技術管理
    Quality Cost
    Trade-off
    Speed

    View Slide

  74. 74/195
    技術管理
    Quality Cost
    Trade-off
    Speed
    當產品 / 專案有問題時,通常我們的選擇有什麼?

    View Slide

  75. 75/195
    技術管理
    Quality Cost
    Trade-off
    Speed
    當產品 / 專案有問題時,通常我們的選擇有什麼?
    時程延長 調整範圍
    加班 加人
    1 2 3 4

    View Slide

  76. 76/195
    技術管理
    Quality Cost
    Trade-off
    Speed
    當產品 / 專案有問題時,通常我們的選擇有什麼?
    時程延長 調整範圍
    加班 加人
    1 2 3 4
    當產品 / 專案有問題時,通常只會有哪些選擇?

    View Slide

  77. 77/195
    技術管理
    Quality Cost
    Trade-off
    Speed
    當產品 / 專案有問題時,通常我們的選擇有什麼?
    時程延長 調整範圍
    加班 加人
    1 2 3 4
    當產品 / 專案有問題時,通常只會有哪些選擇?

    View Slide

  78. 78/195
    技術管理
    Quality Cost
    Trade-off
    Speed
    當產品 / 專案有問題時,通常我們的選擇有什麼?
    時程延長 調整範圍
    加班 加人
    1 2 3 4
    但通常工程師希望選擇的是?

    View Slide

  79. 79/195
    技術管理
    Quality Cost
    Trade-off
    Speed
    當產品 / 專案有問題時,通常我們的選擇有什麼?
    加班 加人
    1 2
    但通常工程師希望選擇的是?
    時程延長 調整範圍
    3 4

    View Slide

  80. 80/195
    技術管理
    Quality Cost
    Trade-off
    Speed
    當產品 / 專案有問題時,通常我們的選擇有什麼?
    時程延長 調整範圍
    加班 加人
    1 2 3 4
    一個成熟的敏捷組織或團隊,應該會選擇哪個?

    View Slide

  81. 81/195
    技術管理
    Quality Cost
    Trade-off
    Speed
    當產品 / 專案有問題時,通常我們的選擇有什麼?
    時程延長 減少浪費
    加班 加人
    1 2 3 5
    一個成熟的敏捷組織或團隊,應該會選擇哪個?
    Credit: http://lukeangel.co/project-management/whats-a-workback-schedule/attachment/waterfall-v-agile-iron-triangle-v03/
    Agile Lean
    調整範圍
    4

    View Slide

  82. 82/195
    技術管理
    Quality Cost
    Trade-off
    Speed
    當產品 / 專案有問題時,通常我們的選擇有什麼?
    時程延長 調整範圍 減少浪費
    加班 加人
    1 2 3 4 5
    其實,你還有第六個選擇!?
    Agile Lean

    View Slide

  83. 83/195
    技術管理
    Quality Cost
    Trade-off
    Speed
    當產品 / 專案有問題時,通常我們的選擇有什麼?
    時程延長 調整範圍 減少浪費
    加班 加人 離職
    1 2 3 4 5 6
    鄉民:塊陶啊 ~
    Agile Lean

    View Slide

  84. 俗語說:奧客是一時,豬同事是八小時

    View Slide

  85. 不要想著自己對公司有多重要,
    大多數人的一生中唯一遇到《要你別走》的就是體育老師 ( 給我跑起來 ~) ;
    會對著你唱《愛我別走》的是海雅谷慕 ( 張震嶽 ) 。
    但留下來試著解決也是種選擇 ( 認真 ~)

    View Slide

  86. 86/195
    如何做技術選型決策
    技術管理 技術模式
    人 事
    技術工具

    View Slide

  87. 87/195
    技術模式
    Credit: https://jaxenter.com/reactive-microservices-scala-akka-130360.html
    Credit: https://twitter.com/bibryam/status/1026465959417196544
    Credit: https://docs.microsoft.com/zh-tw/dotnet/architecture/cloud-native/service-mesh-communication-infrastructure
    Service Mesh

    View Slide

  88. 88/195
    技術模式

    View Slide

  89. 89/195
    技術模式
    充分理解商業的前提下,盡可能高效且低成本的解決商業問題,
    甚至預測商業可能的變化而提前進行技術決斷,擴展商業的邊界。
    你對系統的瞭解程度,決定了你如何架構這個系統

    View Slide

  90. 90/195
    技術模式
    ➊ 架構先決
    無視人員、流程只講技術,是耍自傲
    架構會影響公司文化、商業擴展;思維更要超越程式碼層次

    View Slide

  91. 91/195
    技術模式
    ➋ 沒有完美的架構,只有最適的架構
    無視場景只講架構,是耍自殘
    若無法舉出架構的缺陷,代表你還無法掌握
    盲目套用別人的架構,並不會讓你變得跟他一樣好

    View Slide

  92. 沒有大公司的命,卻得了大公司的病

    View Slide

  93. 93/195
    技術模式
    ➌ 架構是演進的,預想但不過早調優
    無視未來只求現有,是耍自閉
    兵馬未動,糧草先行,預想下一步,下下一步,甚至下下下一步 ...

    View Slide

  94. 94/195
    技術模式
    ➌ 架構是演進的,預想但不過早調優
    無視未來只求現有,是耍自閉
    兵馬未動,糧草先行,預想下一步,下下一步,甚至下下下一步 ...

    View Slide

  95. 95/195
    Premature optimization is the root of all evil
    Donald Knuth
    過早最佳化是萬惡的根源
    技術模式

    View Slide

  96. 96/195
    Premature optimization is the root of all evil
    Donald Knuth
    過早最佳化是萬惡的根源
    這句話加上前後文時,解讀會更完整
    技術模式

    View Slide

  97. 97/195
    We should forget about small efficiencies, say about 97% of the time;
    Premature optimization is the root of all evil.
    Yet we should not pass up our opportunities in that critical 3%
    Donald Knuth
    對於約佔 97% 的些微最佳化,我們應該忽略它們:過早最佳化是萬惡的根源。
    剩下關鍵的 3% ,我們則不能放棄最佳化的機會。
    技術模式

    View Slide

  98. 98/195
    未剖析找出問題,而在架構或程式展炫技,不僅效能提升有限,還引入更多 Bugs ?
    技術模式
    Trade-off ( 取捨 ) → Profiling ( 剖析 )
    Q

    View Slide

  99. 99/195
    技術模式
    某同事堅持最佳化某段函式,最後花了一個月的時間,而該函式最後確實提升了十倍效能。
    但事實是如此嗎?
    30ms 50ms 200ms 280ms
    30ms 5ms 200ms 235ms
    10x -16%


    View Slide

  100. 100/195
    技術模式
    你如何思考著擴展的一開始,就立足在良好的基礎上,而沒有過早最佳化?
    使之正確,使之清楚,使之簡潔,使之快速。承上順序。
    Q

    View Slide

  101. 禁止在麻瓜面前使用魔法
    而我們很有可能就是那個麻瓜,三個月後再讀自己的程式碼

    View Slide

  102. 102/195
    技術模式
    網頁軟體工程師遇到效能問題時,最常使用的手段?
    Q

    View Slide

  103. 103/195
    技術模式
    Database
    Database
    Applications
    Applications
    Web Server
    Web Server
    當網頁效能很差時,通常會 ... ?

    View Slide

  104. 104/195
    技術模式
    Database
    Database
    Applications
    Applications
    Web Server
    Web Server

    View Slide

  105. 105/195
    技術模式
    Database
    Database
    Applications
    Applications
    Web Server
    Web Server
    Applications
    Cache
    Applications
    Cache
    varnish
    redis

    View Slide

  106. 106/195
    技術模式
    Database
    Database
    Applications
    Applications
    Web Server
    Web Server
    Applications
    Cache
    Applications
    Cache
    varnish
    redis
    Monitoring
    HA
    ...
    Monitoring
    HA
    ...
    快取穿透 (Cache Penetration)
    快取雪崩 (Cache Avalanche)
    快取擊穿 (Hotspot Invalid)
    Cache hit ratio
    Total request rate
    Average object size
    LRU reference age
    SLO Metrics Side-effects
    快取穿透 (Cache Penetration)
    快取雪崩 (Cache Avalanche)
    快取擊穿 (Hotspot Invalid)
    Cache hit ratio
    Total request rate
    Average object size
    LRU reference age
    99%
    99%
    99%
    99%
    99%
    99%
    99%
    99%
    97%
    95%
    Infra
    SLO
    SLA


    View Slide

  107. 107/195
    技術模式
    網頁軟體工程師遇到效能問題時,第二 (!!) 常使用的手段?
    Q

    View Slide

  108. 108/195
    技術模式
    自從網路產業大談高流量高併發後, Concurrency 變成很多工程師追求的技術挑戰
    衍生問題多來自對 Concurrency 的一知半解,還有引發的副作用尚無準備好解決能力
    Concurrency 是一系列效能技術,專注於減少等待 (wait time)

    View Slide

  109. 如果對方案無法提供三個以上可能的問題,代表你還未準備好接受所引入的風險
    Ant

    View Slide

  110. 110/195
    在 Java 中, Concurrency 非常棘手困難,所以絕對不要使用它,除非你有一個重大效能問題。
    即使這樣,使用最簡單的方法產生你需要的效能,也會因為 Concurrency 很快變得無法管理。
    《 On Java 8 》 Bruce Eckel
    技術模式

    View Slide

  111. 111/195
    在 Java 中, Concurrency 非常棘手困難,所以絕對不要使用它,除非你有一個重大效能問題。
    即使這樣,使用最簡單的方法產生你需要的效能,也會因為 Concurrency 很快變得無法管理。
    《 On Java 8 》 Bruce Eckel
    技術模式
    只有 Java 這樣嗎?

    View Slide

  112. 112/195
    在 Java 中, Concurrency 非常棘手困難,所以絕對不要使用它,除非你有一個重大效能問題。
    即使這樣,使用最簡單的方法產生你需要的效能,也會因為 Concurrency 很快變得無法管理。
    《 On Java 8 》 Bruce Eckel
    技術模式
    除錯?剖析?追蹤?教育訓練成本?

    View Slide

  113. 俗話說:開發一時爽,除錯火葬場

    View Slide

  114. 114/195
    技術模式
    網頁軟體工程師遇到效能問題時,第三 (!!) 常使用的手段?
    Q

    View Slide

  115. 115/195
    技術模式
    Database
    Applications
    Web Server
    Applications

    View Slide

  116. 116/195
    技術模式
    Database
    Applications
    Web Server
    KeepAlive
    KeepAlive
    Connection Pool
    Applications

    View Slide

  117. 117/195
    技術模式
    Database
    Applications
    Web Server
    KeepAlive
    KeepAlive
    Connection Pool
    Max : 200
    Use : 100
    Applications
    Use : 100

    View Slide

  118. 118/195
    技術模式
    Database
    Applications
    Web Server
    KeepAlive
    KeepAlive
    Connection Pool
    Max : 200
    Use : 100
    Applications Applications
    Use : 100 Use : 100

    View Slide

  119. 119/195
    技術模式
    Database
    Applications
    Web Server
    KeepAlive
    KeepAlive
    Connection Pool
    Max : 200
    Use : 100
    Applications Applications
    Use : 100 Use : 100 Max : 300

    View Slide

  120. 120/195
    技術模式
    Database
    Applications
    Web Server
    KeepAlive
    KeepAlive
    Connection Pool
    Max : 200
    Use : 100
    Applications Applications
    Use : 100 Use : 100 Max : 300
    架構層級的共用變數

    View Slide

  121. 121/195
    技術模式
    Database
    Applications
    Web Server
    KeepAlive
    KeepAlive
    Connection Pool
    Max : 200
    Use : 100
    Applications Applications
    Use : 100 Use : 100 Max : 300
    替代方案?

    View Slide

  122. 122/195
    技術模式
    Database
    Applications
    Web Server
    KeepAlive
    KeepAlive
    Max : 300
    Applications Applications
    Middleware
    Connection Pool
    Max : 300

    View Slide

  123. 123/195
    技術模式
    Database
    Applications
    Web Server
    KeepAlive
    KeepAlive
    Max : 300
    Applications Applications
    Middleware
    Connection Pool
    Max : 300 Monitoring
    HA
    ...
    …..
    Metrics
    Infra Side-effects
    SLO
    99%
    99%
    99%
    99%
    99%
    99%
    99%
    SLO
    ?


    View Slide

  124. 124/195
    技術模式
    Latency Memory
    footprint
    Trade-off
    Throughput
    Performance 三板斧

    View Slide

  125. 125/195
    技術模式
    Credit: https://nl.pinterest.com/pin/315463148894955389/
    Latency Memory
    footprint
    Trade-off
    Throughput
    Throughput + Latency
    Throughput

    View Slide

  126. 126/195
    技術模式
    Credit: https://nl.pinterest.com/pin/315463148894955389/
    Latency Memory
    footprint
    Trade-off
    Throughput
    Throughput + Latency
    Throughput
    Scale Up vs. Scale Out 的迷思
    為何工程師覺得 Scale Out 比較高大上?

    View Slide

  127. 127/195
    技術模式
    Credit: https://nl.pinterest.com/pin/315463148894955389/
    Latency Memory
    footprint
    Trade-off
    Throughput
    Throughput + Latency
    Throughput
    「管理 10 台主機」 vs. 「管理 100 台主機」

    View Slide

  128. 128/195
    技術模式
    Credit: https://nl.pinterest.com/pin/315463148894955389/
    Latency Memory
    footprint
    Trade-off
    Throughput
    Throughput + Latency
    Throughput
    但沒說的是花了多少錢,反正錢不是出自自己口袋

    View Slide

  129. 129/195
    技術模式
    Credit: https://nl.pinterest.com/pin/315463148894955389/
    Latency Memory
    footprint
    Trade-off
    Throughput
    Throughput + Latency
    Throughput
    逆思考:「我從 100 台主機降為 10 台主機,但效能不變」
    營運成本↓維護成本↓部署成本↓技術實力↑
    Scale Out 比較難還是 Scale In 難?

    View Slide

  130. 130/195
    技術模式
    Credit: Systems Performance Enterprise and the Cloud

    View Slide

  131. 131/195
    技術模式
    Credit: Local-First Software You Own Your Data, in spite of the Cloud

    View Slide

  132. 132/195
    技術模式
    Credit: https://blog.amp.dev/2017/02/28/new-industry-benchmarks-for-mobile-page-speed/

    View Slide

  133. 133/195
    技術模式
    Microservices( 微服務 ) 適用場景?
    Latency
    Memory
    footprint
    Trade-off
    Throughput
    Q

    View Slide

  134. 134/195
    技術模式
    Credit: https://jaxenter.com/reactive-microservices-scala-akka-130360.html
    Latency
    Memory
    footprint
    Trade-off
    Throughput

    View Slide

  135. 135/195
    技術模式
    Credit: https://www.appcentrica.com/the-rise-of-microservices/
    Monitoring
    ...
    Metrics Side-effects
    Infra
    ... ...

    View Slide

  136. 136/195
    技術模式
    Microservices( 微服務 ) 在企業組織中的適用場景?
    Credit: https://www.strategyzer.com/blog/posts/2015/7/2/6-roles-position-your-company-for-future
    Q

    View Slide

  137. 137/195
    技術模式
    CTO :「我們應該拆解成 6 個 Microservices 。」
    我:『你有 6 個團隊,而且彼此討厭對方』
    CTO :「你怎麼知道?」
    Silos

    View Slide

  138. 138/195
    技術模式
    設計系統的架構受制於產生這些設計的組織的溝通結構
    康威定律

    View Slide

  139. 139/195
    技術模式
    設計系統的架構受制於產生這些設計的組織的溝通結構
    康威定律
    建議何時拆微服務?

    View Slide

  140. 140/195
    技術模式
    邊際交付成本 ≧ 整體維護成本
    何時拆微服務

    View Slide

  141. 141/195
    技術模式
    邊際交付成本 ≧ 整體維護成本
    何時拆微服務
    邊際交付成本
    整體維護成本

    View Slide

  142. 142/195
    技術模式
    Cloud Native( 雲原生 ) 適用場景?
    Latency
    Memory
    footprint
    Trade-off
    Throughput
    Q

    View Slide

  143. 143/195
    技術模式
    Credit: https://twitter.com/bibryam/status/1026465959417196544
    Latency
    Memory
    footprint
    Trade-off
    Throughput

    View Slide

  144. 144/195
    技術模式
    FaaS( 函式即服務 ) 適用場景?
    Latency
    Memory
    footprint
    Trade-off
    Throughput
    Q

    View Slide

  145. 145/195
    技術模式
    Serverless ≠ FaaS
    Serverless FaaS

    View Slide

  146. 146/195
    技術模式
    Credit: https://specify.io/concepts/serverless-baas-faas
    Latency
    Memory
    footprint
    Trade-off
    Throughput

    View Slide

  147. 147/195
    技術模式
    Availability Partition
    Tolerance
    Trade-off
    Consistency

    View Slide

  148. 148/195
    技術模式
    Availability Partition
    Tolerance
    Trade-off
    Consistency Enforced consistency
    HA consistency
    Eventual consistency
    PostgreSQL, MySQL, ... MongoDB, HBase, Redis, ...
    Dynamo, Cassandra, ...

    View Slide

  149. 149/195
    技術模式
    Credit: https://adtmag.com/articles/2016/08/16/nosql-toolbox.aspx

    View Slide

  150. 150/195
    技術模式
    Processing Intensive Capacity
    CPU intensive
    Memory intensive
    Storage/IO intensive
    Bandwidth intensive
    OLTP (Write)
    OLAP (Read)
    Data warehouse
    Throughput
    Latency
    Memory footprint
    Service-level agreement
    Bond
    Performance
    Quality
    Cost
    Credit: ModernWeb - Modern Web Architecture Design Journey ( https://s.itho.me/modernweb/2017/day2/201-K1-Ant.pdf )

    View Slide

  151. 151/195
    技術模式
    Processing Intensive Capacity
    CPU intensive
    Memory intensive
    Storage/IO intensive
    Bandwidth intensive
    OLTP (Write)
    OLAP (Read)
    Data warehouse
    Throughput
    Latency
    Memory footprint
    Service-level agreement
    Bond
    Performance
    Quality
    Cost
    Credit: ModernWeb - Modern Web Architecture Design Journey ( https://s.itho.me/modernweb/2017/day2/201-K1-Ant.pdf )

    View Slide

  152. 152/195
    技術模式
    Credit: https://thenewstack.io/selecting-the-right-database-for-your-microservices/

    View Slide

  153. 153/195
    技術模式
    Credit: https://thenewstack.io/selecting-the-right-database-for-your-microservices/
    Throughput 與 Latency 雙料的架構?

    View Slide

  154. 154/195
    技術模式
    Credit: https://www.researchgate.net/figure/The-Lambda-Architecture-Adapted-from-20_fig3_319458470
    Lambda architecture

    View Slide

  155. 155/195
    技術模式
    Credit: https://www.researchgate.net/figure/The-Lambda-Architecture-Adapted-from-20_fig3_319458470
    Lambda architecture
    Throughput
    Latency

    View Slide

  156. 156/195
    技術模式
    Processing Intensive Capacity
    CPU intensive
    Memory intensive
    Storage/IO intensive
    Bandwidth intensive
    OLTP (Write)
    OLAP (Read)
    Data warehouse
    Throughput
    Latency
    Memory footprint
    Service-level agreement
    Bond
    Performance
    Quality
    Cost
    Credit: ModernWeb - Modern Web Architecture Design Journey ( https://s.itho.me/modernweb/2017/day2/201-K1-Ant.pdf )
    你覺得何項資源最昂貴?

    View Slide

  157. 157/195
    技術模式
    Processing Intensive Capacity
    CPU intensive
    Memory intensive
    Storage/IO intensive
    Bandwidth intensive
    OLTP (Write)
    OLAP (Read)
    Data warehouse
    Throughput
    Latency
    Memory footprint
    Service-level agreement
    Bond
    Performance
    Quality
    Cost
    Credit: ModernWeb - Modern Web Architecture Design Journey ( https://s.itho.me/modernweb/2017/day2/201-K1-Ant.pdf )
    你覺得何項資源最昂貴?
    機房的頻寬有限且昂貴

    View Slide

  158. 158/195
    技術模式
    Processing Intensive Capacity
    CPU intensive
    Memory intensive
    Storage/IO intensive
    Bandwidth intensive
    OLTP (Write)
    OLAP (Read)
    Data warehouse
    Throughput
    Latency
    Memory footprint
    Service-level agreement
    Bond
    Performance
    Quality
    Cost
    Credit: ModernWeb - Modern Web Architecture Design Journey ( https://s.itho.me/modernweb/2017/day2/201-K1-Ant.pdf )
    你覺得何項資源最昂貴?
    以 CPU 為例
    雲服務的 Scale Up : CPU 1→2→8→32→...
    不夠還可以 Scale Out ,服務實例 1→2→3→4→...

    View Slide

  159. 159/195
    技術模式
    Processing Intensive Capacity
    CPU intensive
    Memory intensive
    Storage/IO intensive
    Bandwidth intensive
    OLTP (Write)
    OLAP (Read)
    Data warehouse
    Throughput
    Latency
    Memory footprint
    Service-level agreement
    Bond
    Performance
    Quality
    Cost
    Credit: ModernWeb - Modern Web Architecture Design Journey ( https://s.itho.me/modernweb/2017/day2/201-K1-Ant.pdf )
    你覺得何項資源最昂貴?
    雲服務的頻寬?

    View Slide

  160. 160/195
    技術模式
    Processing Intensive Capacity
    CPU intensive
    Memory intensive
    Storage/IO intensive
    Bandwidth intensive
    OLTP (Write)
    OLAP (Read)
    Data warehouse
    Throughput
    Latency
    Memory footprint
    Service-level agreement
    Bond
    Performance
    Quality
    Cost
    Credit: ModernWeb - Modern Web Architecture Design Journey ( https://s.itho.me/modernweb/2017/day2/201-K1-Ant.pdf )
    你覺得何項資源最昂貴?
    Gzip/Deflate & MessagePack & FlatBuffers & ProtoBuf & ...

    View Slide

  161. 161/195
    技術模式
    Processing Intensive Capacity
    CPU intensive
    Memory intensive
    Storage/IO intensive
    Bandwidth intensive
    OLTP (Write)
    OLAP (Read)
    Data warehouse
    Throughput
    Latency
    Memory footprint
    Service-level agreement
    Bond
    Performance
    Quality
    Cost
    Credit: ModernWeb - Modern Web Architecture Design Journey ( https://s.itho.me/modernweb/2017/day2/201-K1-Ant.pdf )
    你覺得何項資源最昂貴?
    利用 CPU 換 Bandwidth

    View Slide

  162. 162/195
    技術模式
    Processing Intensive Capacity
    CPU intensive
    Memory intensive
    Storage/IO intensive
    Bandwidth intensive
    OLTP (Write)
    OLAP (Read)
    Data warehouse
    Throughput
    Latency
    Memory footprint
    Service-level agreement
    Bond
    Performance
    Quality
    Cost
    Credit: ModernWeb - Modern Web Architecture Design Journey ( https://s.itho.me/modernweb/2017/day2/201-K1-Ant.pdf )
    你覺得何項資源最昂貴?
    情境:可是我效能測試時,不開壓縮時表現較好

    View Slide

  163. 163/195
    技術模式
    Processing Intensive Capacity
    CPU intensive
    Memory intensive
    Storage/IO intensive
    Bandwidth intensive
    OLTP (Write)
    OLAP (Read)
    Data warehouse
    Throughput
    Latency
    Memory footprint
    Service-level agreement
    Bond
    Performance
    Quality
    Cost
    Credit: ModernWeb - Modern Web Architecture Design Journey ( https://s.itho.me/modernweb/2017/day2/201-K1-Ant.pdf )
    你覺得何項資源最昂貴?
    回到資源約束, CPU 容易擴充,還是 Bandwidth 容易?

    View Slide

  164. 164/195
    技術模式
    Processing Intensive Capacity
    CPU intensive
    Memory intensive
    Storage/IO intensive
    Bandwidth intensive
    OLTP (Write)
    OLAP (Read)
    Data warehouse
    Throughput
    Latency
    Memory footprint
    Service-level agreement
    Bond
    Performance
    Quality
    Cost
    Credit: ModernWeb - Modern Web Architecture Design Journey ( https://s.itho.me/modernweb/2017/day2/201-K1-Ant.pdf )
    你覺得何項資源最昂貴?
    測試的量體?以及環境 (Local / Testing / Stage / Production) ?

    View Slide

  165. 165/195
    技術模式
    Processing Intensive Capacity
    CPU intensive
    Memory intensive
    Storage/IO intensive
    Bandwidth intensive
    OLTP (Write)
    OLAP (Read)
    Data warehouse
    Throughput
    Latency
    Memory footprint
    Service-level agreement
    Bond
    Performance
    Quality
    Cost
    Credit: ModernWeb - Modern Web Architecture Design Journey ( https://s.itho.me/modernweb/2017/day2/201-K1-Ant.pdf )
    你覺得何項資源最昂貴?
    Testing in Production ?
    程式碼層次的除錯或可在測試環境重現,但架構層次的 ...

    View Slide

  166. 166/195
    技術模式
    何時資料庫才應該考慮 Sharding ?
    Q

    View Slide

  167. 167/195
    技術模式
    何時該考慮 Sharding ?
    Credit: https://aws.amazon.com/tw/blogs/startups/distributed-data-stores-for-mere-mortals/

    View Slide

  168. 168/195
    技術模式
    是不是當資料庫資料不再適合存於記憶體中時,或者遇到 CPU Bound 時?
    Intensive
    CPU intensive
    Memory intensive
    Storage/IO intensive
    Bandwidth intensive
    Credit: https://aws.amazon.com/tw/blogs/startups/distributed-data-stores-for-mere-mortals/

    View Slide

  169. 169/195
    技術模式
    在複雜多變的趨勢前,仍有基本的參考原則
    Latency
    Memory
    footprint
    Trade-off
    Throughput
    Quality Cost
    Trade-off
    Speed
    Availability
    Partition
    Tolerance
    Trade-off
    Consistency

    View Slide

  170. 170/195
    如何做技術選型決策
    技術工具

    技術管理

    技術模式

    View Slide

  171. 171/195
    技術工具
    Credit: https://adtmag.com/articles/2016/08/16/nosql-toolbox.aspx
    Availability Partition
    Tolerance
    Trade-off
    Consistency

    View Slide

  172. 172/195
    技術工具
    Latency Memory
    footprint
    Trade-off
    Throughput
    程式語言的發展趨勢?

    View Slide

  173. 173/195
    技術工具
    Latency Memory
    footprint
    Trade-off
    Throughput
    程式語言的發展趨勢?
    以前常看到 C10K / C100K ?現在?
    系統同時承載 10K / 100K 的請求數量

    View Slide

  174. 174/195
    技術工具
    .Net 4.5 (2012-08), …
    Ruby 2.1 (2013-12), 2.2, …
    Java 8 (2014-03), 9, 10, 11, …
    Go 1.4 (2014-12), 1.5, 1.6, …
    Latency
    Memory
    footprint
    Trade-off
    Throughput
    ???
    2014-11

    View Slide

  175. 175/195
    技術工具
    Credit: https://trends.google.com.tw/trends/explore?date=all&q=IoT
    .Net 4.5 (2012-08), …
    Ruby 2.1 (2013-12), 2.2, …
    Java 8 (2014-03), 9, 10, 11, …
    Go 1.4 (2014-12), 1.5, 1.6, …
    Latency
    Memory
    footprint
    Trade-off
    Throughput
    2014-11

    View Slide

  176. 176/195
    技術工具
    Credit: https://trends.google.com.tw/trends/explore?date=all&q=IoT
    .Net 4.5 (2012-08), …
    Ruby 2.1 (2013-12), 2.2, …
    Java 8 (2014-03), 9, 10, 11, …
    Go 1.4 (2014-12), 1.5, 1.6, …
    Latency Memory
    footprint
    Trade-off
    Throughput
    2014-11

    View Slide

  177. 177/195
    技術工具
    Credit: https://trends.google.com.tw/trends/explore?date=all&q=IoT
    .Net 4.5 (2012-08), …
    Ruby 2.1 (2013-12), 2.2, …
    Java 8 (2014-03), 9, 10, 11, …
    Go 1.4 (2014-12), 1.5, 1.6, …
    Latency Memory
    footprint
    Trade-off
    Throughput
    IoT 的應用,不再強調同時承載量,而是回應速度
    2014-11

    View Slide

  178. 178/195
    技術工具
    Credit: https://trends.google.com.tw/trends/explore?date=all&q=IoT
    .Net 4.5 (2012-08), …
    Ruby 2.1 (2013-12), 2.2, …
    Java 8 (2014-03), 9, 10, 11, …
    Go 1.4 (2014-12), 1.5, 1.6, …
    Latency Memory
    footprint
    Trade-off
    Throughput
    雲時代, Scale Out 可以比較容易從 1→10→100→1,000,000
    但 Scale Up 有天花板 (CPU 1→10→100→1,000,000 ?)

    View Slide

  179. 179/195
    技術工具
    ???

    View Slide

  180. 180/195
    技術工具
    Credit: https://trends.google.com.tw/trends/explore?date=all&q=IoT
    Credit: https://trends.google.com.tw/trends/explore?date=all&q=Edge%20Computing

    View Slide

  181. 181/195
    技術工具
    Credit: https://trends.google.com.tw/trends/explore?date=all&q=High%20Throughput,Low%20Latency
    .Net 4.5 (2012-08), …
    Ruby 2.1 (2013-12), 2.2, …
    Java 8 (2014-03), 9, 10, 11, …
    Go 1.4 (2014-12), 1.5, 1.6, …
    Latency
    Memory
    footprint
    Trade-off
    Throughput
    2016-05

    View Slide

  182. 182/195
    Function Constraints
    Trade-off
    Form
    技術工具

    View Slide

  183. 183/195
    技術工具
    人力數量
    經驗與價格水平
    教育市場
    訓練成本
    特定領域
    成熟度
    第三方支持度
    法遵 / 合規
    ...
    ...
    ...
    選擇何程式語言?工具?

    View Slide

  184. 184/195
    技術工具
    Dev Ops
    Sec
    Dev Ops
    Reg
    Dev Ops
    Security Regulation (License / GDPR / ...)

    View Slide

  185. 185/195
    技術工具
    Credit: https://www.linkedin.com/pulse/agile-scrum-gdpr-ruud-van-driel-cissp/

    View Slide

  186. 186/195
    技術工具
    Credit: https://owasp.org/www-project-appsec-pipeline/#tab=Pipeline_Design_Patterns

    View Slide

  187. 187/195
    Elasticsearch / Kibana 的軟體授權為何?是否符點貴公司商業利益?
    技術工具
    Q

    View Slide

  188. 188/195
    Elastic 7.11 版本之後, Elasticsearch 與 Kibana 的自由開放源碼授權,
    將從 Apache 2.0 變為 SSPL (Server Side Public License) 與 Elastic License 雙重授權模式。
    技術工具
    Credit: https://blog.gcos.me/post/2021-02-06_opensource-is-business-model-or-not/

    View Slide

  189. 189/195
    MongoDB 的軟體授權為何?是否符點貴公司商業利益?
    技術工具
    Q

    View Slide

  190. 190/195
    MongoDB 從 2018-2019 年時,將資料庫產品的授權從 AGPL 3.0 轉變為 SSPL
    技術工具
    Credit: https://blog.gcos.me/post/2021-02-06_opensource-is-business-model-or-not/

    View Slide

  191. 191/195
    技術工具
    Credit: https://trends.google.com.tw/trends/explore?date=all&q=3D%20Printing

    View Slide

  192. 192/195
    技術工具
    Credit: https://trends.google.com.tw/trends/explore?date=all&q=3D%20Printing
    起步到白熱化
    ???

    View Slide

  193. 193/195
    技術工具
    Current Assignment Data Unavailable, 5,569,349 (2013-10-29 到期 )
    Assigned to Stratasys, 5,587,913 (2013-12-14 到期 )
    Assigned to DTM Corporation, 5,597,589 (2014-01-28 到期 )
    Current Assignment Data Unavailable, 5,609,812 (2014-03-11 到期 )
    Current Assignment Data Unavailable, 5,609,813 (2014-03-11 到期 )
    Assigned to 3D Systems, 5,610,824 (2014-03-11 到期 )
    Assigned to Stratasys, 5,503,785 (2014-06-02 到期 )
    Current Assignment Data Unavailable, 5,637,169 (2014-06-10 到期 )
    Assigned to DTM Corporation, 5,639,070 (2014-06-17 到期 )
    Assigned to 3D Systems, 5,494,618 (2014-06-27 到期 )
    Current Assignment Data Unavailable, 5,651,934 (2014-07-29 到期 )
    Assigned to Jerry Zucker, 5,555,176 (2014-10-19 到期 )
    Assigned to Jerry Zucker, 5,572,431 (2014-10-19 到期 )
    Assigned to University of Southern California, 5,529,471 (2015-02-03 到期 )
    Assigned to DTM Corporation, 5,733,497 (2015-03-20 到期 )
    Assigned to 3D Systems, 5,762,856 (2015-06-09 到期 )
    ...
    3D 列印最主要的專利到期,包括,
    ♫ 選擇性雷射燒結 (selective sintering) 。
    ♫ 光固化成形法 (stereolithography) 。
    Credit: https://www.techdirt.com/articles/20140530/06531127408/120-smartphone-patent-tax-patent-royalties-cost-more-than-actual-hardware-your-phone.shtml

    View Slide

  194. 194/195
    從專業到商業

    View Slide

  195. [email protected]
    https://www.facebook.com/yftzeng.tw
    https://twitter.com/yftzeng
    曾義峰 (Ant)

    View Slide