SlideShare a Scribd company logo
1 of 31
模式入門第一堂課:
30分鐘寫出一個Pattern


         Teddy Chen
  teddy.chen.tw@gmail.com
http://teddy-chen-tw.blogspot.tw
我是誰
• 2012年7月成立泰迪軟體,從事敏捷開發顧問、
  教育訓練、軟體工具導入等服務。
• 2012年6月,出版暢銷書「笑談軟體工程:敏捷
  方法的逆襲」。
• 2012年4月起,多次講授Scrum課程,與學員互
  動氣氛佳,滿意度高。
• 超過16年design pattern實務經驗,曾在pattern領
  域最著名的PLoP國際研討會發表論文。
  – PLoP 2004:A Pattern Language for Personal
    Authoring in E-Learning.
  – Asia PLoP 2011:Emerging Patterns of Continuous
    Integration for Cross-Platform Software
    Development.
• 2010年起,主講多次ezScrum團隊舉辦的Scrum
  講座。
• 2009年取得Certified ScrumMaster。
• 2008年取得台北科技大學資工博士。
• 2007年起經營「搞笑談軟工」部落格。
什麼是 Pattern (模式)?
一再重複出現的型式、事件、現
   象,就稱為模式。
Each pattern is a
three-part rule,
which express a
relation between a
certain context, a
problem, and a
solution.
A pattern is a solution to a problem in
                a context


         World

                Context   Machine
          Problem


                             Solution
      Problem
                             (How, How to,
      (Requirement,
                             How much)
      What)
An Example, Take 1
• Context: 你是經營線上遊戲的業者。
• Problem: 為了快速有產品可以上市,你用高
  價搶下國外知名產品的代理權。就在付款之
  後不久,國外產商惡性倒閉。要如何要回你
  的簽約金?
• Solution: 找黑道去喬事情。
An Example, Take 2
• Context: 你是經營線上遊戲的業者。
• Problem: 線上遊戲的市場競爭非常激烈,玩
  家的選擇很多,因此傳統需要先付費才可以
  玩的遊戲模式,要玩家在尚未入迷之前就先
  付費變得越來越困難。要如何讓玩家願意掏
  錢出來玩線上遊戲呢?
• Solution: 以終生免費為噱頭,先讓玩家上癮,
  再要求玩家每月付費,否則將關閉遊戲伺服
  器。
An Example, Take 3
• Context: 你是經營線上遊戲的業者。
• Problem: 線上遊戲的市場競爭非常激烈,玩
  家的選擇很多,因此傳統需要先付費才可以
  玩的遊戲模式,要玩家在尚未入迷之前就先
  付費變得越來越困難。要如何讓玩家願意掏
  錢出來玩線上遊戲呢?
• Solution: 提供免費遊戲,先吸引玩家上癮,
  再以販賣道具與周邊商品作為獲利來源。
An Example, Take 4
• Context: 線上遊戲的市場競爭非常激烈,玩
  家的選擇很多,除非你是知名大廠,能推出
  曠世巨作,否則以傳統先付費才可以玩的遊
  戲模式,要玩家在尚未入迷之前就先付費變
  得越來越困難。
• Problem: 要如何讓玩家願意掏錢出來玩線上
  遊戲?
• Solution: 提供免費遊戲,先吸引玩家上癮,
  再以販賣道具與周邊商品作為獲利來源。
模式的六大基本元素
•   Name : 模式名稱,增加開發者的設計字彙
•   Context: 描述問題發生的地形地物(美容前)
•   Problem: 描述問題本身
•   Force: 問題的限制或特性
•   Solution: 解決問題的方法
•   Resulting Context (Consequence): 套用解決方
    案之後的結果(美容後)
沒有Context便無法判斷Solution
• Problem: 要如何讓玩家願意掏錢出來玩線
  上遊戲?
• Solution:
 1. 推出著名大作,玩家不買不可
 2. 採用免費遊戲策略,但如果要升級則玩家就
    必須要花錢購買道具
 3. 推出賭博性線上遊戲
Force 讓 Problem 更明確

Force 讓 Solution 更加完整與成形
An Example, Take 5.1
• Context: 線上遊戲的市場競爭非常激烈,玩家的
  選擇很多,除非你是知名大廠,能推出曠世巨作,
  否則以傳統先付費才可以玩的遊戲模式,要玩家
  在尚未入迷之前就先付費變得越來越困難。
• Problem: 要如何讓玩家在線上遊戲中付費?
• Forces:
 – 安裝繁瑣或費時的遊戲將不易吸引玩家試玩,更談不
   上收費的可能。
 – 若玩家永遠只是付費,將減少他們持續玩同一款遊戲
   的意願。
• Solution: 提供免費遊戲,先吸引玩家上癮,再以
  販賣道具與周邊商品作為獲利來源。
An Example, Take 5.2
• Context: 線上遊戲的市場競爭非常激烈,玩家的選擇
  很多,除非你是知名大廠,能推出曠世巨作,否則以
  傳統先付費才可以玩的遊戲模式,要玩家在尚未入迷
  之前就先付費變得越來越困難。
• Problem: 要如何讓玩家在線上遊戲中付費?
• Forces:
 – 安裝繁瑣或費時的遊戲將不易吸引玩家試玩,更談不上
   收費的可能。
 – 若玩家永遠只是付費,將減少他們持續玩同一款遊戲的
   意願。
• Solution: 提供快速、分段或免安裝的免費遊戲,先吸
  引玩家上癮,再以販賣道具與周邊商品作為獲利來源。
  在遊戲中提供網路商城,讓玩家可以買賣道具,以提
  高遊戲的黏著度。
An Example, Take 5.3
• Context: 線上遊戲的市場競爭非常激烈,玩家的選擇
 很多,除非你是知名大廠,能推出曠世巨作,否則以
 傳統先付費才可以玩的遊戲模式,要玩家在尚未入迷
 之前就先付費變得越來越困難。
• Problem: 要如何讓玩家持續在線上遊戲中付費?
• Forces:
 – 安裝繁瑣或費時的遊戲將不易吸引玩家試玩,更談不上
   收費的可能。
 – 若玩家永遠只是付費,將減少他們持續玩同一款遊戲的
   意願。
• Solution: 提供快速、分段或免安裝的免費遊戲,先
  吸引玩家上癮,再以販賣道具與周邊商品作為獲利
  來源。在遊戲提供網路商城,讓玩家可以買賣道具,
  以提高遊戲的黏著度。
在下面這個照片中,寫出你所
觀察到的Force
An Example, Take 6
• Context: 線上遊戲的市場競爭非常激烈,玩家的選擇很多,除非你
  是知名大廠,能推出曠世巨作,否則以傳統先付費才可以玩的遊戲
  模式,要玩家在尚未入迷之前就先付費變得越來越困難。
• Problem: 要如何讓玩家持續在線上遊戲中付費?
• Forces:
  – 安裝繁瑣或費時的遊戲將不易吸引玩家試玩,更談不上收費的可能。
  – 若玩家永遠只是付費,將減少他們持續玩同一款遊戲的意願。
• Solution: 提供快速、分段或免安裝的免費遊戲,先吸引玩家上癮,
  再以販賣道具與周邊商品作為獲利來源。提供網路商城,讓玩家可
  以買賣道具,以提高遊戲的黏著度。
• Resulting Context:
   – 進入遊戲的門檻降低,較容易在短期間吸引大量玩家。
   – 只要玩家中的一定比例付費購買道具便可達到損益平衡。
   – 如果玩家對遊戲反應不佳,或是玩的人數很多但付費人數太少,經
     營者可能會血本無歸。
兩種命名方法
• 名詞片語 (Noun-phrase)
  – 描述模式所建立或產生的結果
  – 例子:Singleton, Command, Model-View-
    Controller , 六英尺深的陽台, 入口的過度空間


• 動詞片語 (Verb-phrase)
  – 給訂一個指令,描述如何達到模式解決方案所要
    求的狀態
  – 例子:Don’t Talk to Strangers, Separate Material
    Preparation from Integration
A pattern is a process and a thing.
A common ground for
   communication.
從單一模式到模式語言
Pattern 的應用
• 紀錄知識/經驗的方法

• 思考與分析問題的工具,培養觀察與內省
  的能力

• 判斷解決問題方法的品質

• 溝通與教育的媒介
常見模式的種類
•   Analysis Pattern
•   Software Architecture Pattern
•   Design Pattern
•   Implementation Pattern
•   HCI Pattern
•   Process Pattern

可應用於各種不同的領域中
一個模式解決一個小問題;
一群相關的模式一起使用,
可以解決一個較大的問題。
快速回顧
•   什麼是 Pattern (模式)?
•   模式的六大基本元素。
•   以實例說明如何撰寫模式
•   單一模式的未來:從模式到模式語言



             Q&A
http://www.accupass.com/go/scrum201210
模式入門第一堂課: 30分鐘寫出一個模式

More Related Content

What's hot

Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)NTT DATA Technology & Innovation
 
Azure PlayFab トレーニング資料
Azure PlayFab トレーニング資料Azure PlayFab トレーニング資料
Azure PlayFab トレーニング資料Daisuke Masubuchi
 
挫折しないRedmine
挫折しないRedmine挫折しないRedmine
挫折しないRedmineGo Maeda
 
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術Unity Technologies Japan K.K.
 
Spring Security 5.0 解剖速報
Spring Security 5.0 解剖速報Spring Security 5.0 解剖速報
Spring Security 5.0 解剖速報Takuya Iwatsuka
 
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3  ドメイン駆動設計 戦略的設計3週連続DDDその3  ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計増田 亨
 
ドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイントドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイント増田 亨
 
Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)
Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)
Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)Masashi Umezawa
 
Unity道場京都スペシャル トゥーンシェーディングとノンフォトリアリスティック風絵づくり入門_
 Unity道場京都スペシャル トゥーンシェーディングとノンフォトリアリスティック風絵づくり入門_ Unity道場京都スペシャル トゥーンシェーディングとノンフォトリアリスティック風絵づくり入門_
Unity道場京都スペシャル トゥーンシェーディングとノンフォトリアリスティック風絵づくり入門_Unity Technologies Japan K.K.
 
エンタープライズ、アーキテクチャ、アジャイルのこれから
エンタープライズ、アーキテクチャ、アジャイルのこれからエンタープライズ、アーキテクチャ、アジャイルのこれから
エンタープライズ、アーキテクチャ、アジャイルのこれからYusuke Suzuki
 
RedmineのFAQとアンチパターン集
RedmineのFAQとアンチパターン集RedmineのFAQとアンチパターン集
RedmineのFAQとアンチパターン集akipii Oga
 
DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容sairoutine
 
コンテナ仮想、その裏側 〜user namespaceとrootlessコンテナ〜
コンテナ仮想、その裏側 〜user namespaceとrootlessコンテナ〜コンテナ仮想、その裏側 〜user namespaceとrootlessコンテナ〜
コンテナ仮想、その裏側 〜user namespaceとrootlessコンテナ〜Retrieva inc.
 
MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~torisoup
 
Dci vs aggregate_dddtw_2021-0.3-16-9
Dci vs aggregate_dddtw_2021-0.3-16-9Dci vs aggregate_dddtw_2021-0.3-16-9
Dci vs aggregate_dddtw_2021-0.3-16-9teddysoft
 
DDD + Clean Architecture: 從需求到實作
DDD + Clean Architecture: 從需求到實作DDD + Clean Architecture: 從需求到實作
DDD + Clean Architecture: 從需求到實作teddysoft
 
モバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組み
モバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組みモバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組み
モバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組みMorioImai
 

What's hot (20)

Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
 
Azure PlayFab トレーニング資料
Azure PlayFab トレーニング資料Azure PlayFab トレーニング資料
Azure PlayFab トレーニング資料
 
挫折しないRedmine
挫折しないRedmine挫折しないRedmine
挫折しないRedmine
 
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
 
Spring Security 5.0 解剖速報
Spring Security 5.0 解剖速報Spring Security 5.0 解剖速報
Spring Security 5.0 解剖速報
 
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3  ドメイン駆動設計 戦略的設計3週連続DDDその3  ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計
 
ドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイントドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイント
 
Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)
Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)
Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)
 
Unity道場京都スペシャル トゥーンシェーディングとノンフォトリアリスティック風絵づくり入門_
 Unity道場京都スペシャル トゥーンシェーディングとノンフォトリアリスティック風絵づくり入門_ Unity道場京都スペシャル トゥーンシェーディングとノンフォトリアリスティック風絵づくり入門_
Unity道場京都スペシャル トゥーンシェーディングとノンフォトリアリスティック風絵づくり入門_
 
GPU最適化入門
GPU最適化入門GPU最適化入門
GPU最適化入門
 
エンタープライズ、アーキテクチャ、アジャイルのこれから
エンタープライズ、アーキテクチャ、アジャイルのこれからエンタープライズ、アーキテクチャ、アジャイルのこれから
エンタープライズ、アーキテクチャ、アジャイルのこれから
 
RedmineのFAQとアンチパターン集
RedmineのFAQとアンチパターン集RedmineのFAQとアンチパターン集
RedmineのFAQとアンチパターン集
 
DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容
 
コンテナ仮想、その裏側 〜user namespaceとrootlessコンテナ〜
コンテナ仮想、その裏側 〜user namespaceとrootlessコンテナ〜コンテナ仮想、その裏側 〜user namespaceとrootlessコンテナ〜
コンテナ仮想、その裏側 〜user namespaceとrootlessコンテナ〜
 
MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~
 
Dci vs aggregate_dddtw_2021-0.3-16-9
Dci vs aggregate_dddtw_2021-0.3-16-9Dci vs aggregate_dddtw_2021-0.3-16-9
Dci vs aggregate_dddtw_2021-0.3-16-9
 
DDD + Clean Architecture: 從需求到實作
DDD + Clean Architecture: 從需求到實作DDD + Clean Architecture: 從需求到實作
DDD + Clean Architecture: 從需求到實作
 
今さら聞けない人のためのCI/CD超入門
今さら聞けない人のためのCI/CD超入門今さら聞けない人のためのCI/CD超入門
今さら聞けない人のためのCI/CD超入門
 
【UE4.25 新機能】ロードの高速化機能「IOStore」について
【UE4.25 新機能】ロードの高速化機能「IOStore」について【UE4.25 新機能】ロードの高速化機能「IOStore」について
【UE4.25 新機能】ロードの高速化機能「IOStore」について
 
モバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組み
モバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組みモバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組み
モバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組み
 

Similar to 模式入門第一堂課: 30分鐘寫出一個模式

Design Thinking Notes
Design Thinking NotesDesign Thinking Notes
Design Thinking NotesTsungYi Tsai
 
先不談 agile 不 agile 了,你有聽過 deadline 嗎?
先不談 agile 不 agile 了,你有聽過 deadline 嗎?先不談 agile 不 agile 了,你有聽過 deadline 嗎?
先不談 agile 不 agile 了,你有聽過 deadline 嗎?Terry Wang
 
Getting Real
Getting RealGetting Real
Getting Realrogerwang
 
如何做好推荐系统——冯沁原
如何做好推荐系统——冯沁原如何做好推荐系统——冯沁原
如何做好推荐系统——冯沁原Qinyuan Feng
 
六角學院 - 從社群到公司
六角學院 - 從社群到公司六角學院 - 從社群到公司
六角學院 - 從社群到公司Chih-cheng Wang
 
腾讯大讲堂51 游戏产品运营事故案例介绍
腾讯大讲堂51 游戏产品运营事故案例介绍腾讯大讲堂51 游戏产品运营事故案例介绍
腾讯大讲堂51 游戏产品运营事故案例介绍George Ang
 
產品企劃分享版2010十一月
產品企劃分享版2010十一月產品企劃分享版2010十一月
產品企劃分享版2010十一月Mr PM
 
如何創造讓會友難以忘懷的服務體驗
如何創造讓會友難以忘懷的服務體驗如何創造讓會友難以忘懷的服務體驗
如何創造讓會友難以忘懷的服務體驗基欽 劉
 
Layer 8 - Open source communities and your product
Layer 8  - Open source communities and your productLayer 8  - Open source communities and your product
Layer 8 - Open source communities and your productRex Tsai
 
成大GDSC期初大會
成大GDSC期初大會成大GDSC期初大會
成大GDSC期初大會ssuser9b703f1
 
《氪周刊:互联网创业必读》(第46期)
《氪周刊:互联网创业必读》(第46期)《氪周刊:互联网创业必读》(第46期)
《氪周刊:互联网创业必读》(第46期)36Kr.com
 
PM讀書會_精實執行
PM讀書會_精實執行PM讀書會_精實執行
PM讀書會_精實執行Gary Hsia
 
巧用谷歌 拼出海外 Google ChinaJoy移动游戏线上沙龙
巧用谷歌 拼出海外 Google ChinaJoy移动游戏线上沙龙巧用谷歌 拼出海外 Google ChinaJoy移动游戏线上沙龙
巧用谷歌 拼出海外 Google ChinaJoy移动游戏线上沙龙AdWordsGreaterChina
 
游戏运营(第二讲)
游戏运营(第二讲)游戏运营(第二讲)
游戏运营(第二讲)www.emean.com
 
好棒棒遊戲虛寶贈品機制
好棒棒遊戲虛寶贈品機制好棒棒遊戲虛寶贈品機制
好棒棒遊戲虛寶贈品機制COCOWORK
 
While software engineer meets 3d printer
While software engineer meets 3d printerWhile software engineer meets 3d printer
While software engineer meets 3d printerBenux Wei
 
Skill share探讨
Skill share探讨Skill share探讨
Skill share探讨duobb
 
漫谈游戏编程
漫谈游戏编程漫谈游戏编程
漫谈游戏编程Ming Gao
 
拒絕再寫無效規格,來學學實例化需求! (Agile Summit TW 2023)
拒絕再寫無效規格,來學學實例化需求! (Agile Summit TW 2023)拒絕再寫無效規格,來學學實例化需求! (Agile Summit TW 2023)
拒絕再寫無效規格,來學學實例化需求! (Agile Summit TW 2023)Fong Liou
 

Similar to 模式入門第一堂課: 30分鐘寫出一個模式 (20)

Design Thinking Notes
Design Thinking NotesDesign Thinking Notes
Design Thinking Notes
 
先不談 agile 不 agile 了,你有聽過 deadline 嗎?
先不談 agile 不 agile 了,你有聽過 deadline 嗎?先不談 agile 不 agile 了,你有聽過 deadline 嗎?
先不談 agile 不 agile 了,你有聽過 deadline 嗎?
 
Getting Real
Getting RealGetting Real
Getting Real
 
如何做好推荐系统——冯沁原
如何做好推荐系统——冯沁原如何做好推荐系统——冯沁原
如何做好推荐系统——冯沁原
 
六角學院 - 從社群到公司
六角學院 - 從社群到公司六角學院 - 從社群到公司
六角學院 - 從社群到公司
 
腾讯大讲堂51 游戏产品运营事故案例介绍
腾讯大讲堂51 游戏产品运营事故案例介绍腾讯大讲堂51 游戏产品运营事故案例介绍
腾讯大讲堂51 游戏产品运营事故案例介绍
 
產品企劃分享版2010十一月
產品企劃分享版2010十一月產品企劃分享版2010十一月
產品企劃分享版2010十一月
 
如何創造讓會友難以忘懷的服務體驗
如何創造讓會友難以忘懷的服務體驗如何創造讓會友難以忘懷的服務體驗
如何創造讓會友難以忘懷的服務體驗
 
多泡游戏
多泡游戏多泡游戏
多泡游戏
 
Layer 8 - Open source communities and your product
Layer 8  - Open source communities and your productLayer 8  - Open source communities and your product
Layer 8 - Open source communities and your product
 
成大GDSC期初大會
成大GDSC期初大會成大GDSC期初大會
成大GDSC期初大會
 
《氪周刊:互联网创业必读》(第46期)
《氪周刊:互联网创业必读》(第46期)《氪周刊:互联网创业必读》(第46期)
《氪周刊:互联网创业必读》(第46期)
 
PM讀書會_精實執行
PM讀書會_精實執行PM讀書會_精實執行
PM讀書會_精實執行
 
巧用谷歌 拼出海外 Google ChinaJoy移动游戏线上沙龙
巧用谷歌 拼出海外 Google ChinaJoy移动游戏线上沙龙巧用谷歌 拼出海外 Google ChinaJoy移动游戏线上沙龙
巧用谷歌 拼出海外 Google ChinaJoy移动游戏线上沙龙
 
游戏运营(第二讲)
游戏运营(第二讲)游戏运营(第二讲)
游戏运营(第二讲)
 
好棒棒遊戲虛寶贈品機制
好棒棒遊戲虛寶贈品機制好棒棒遊戲虛寶贈品機制
好棒棒遊戲虛寶贈品機制
 
While software engineer meets 3d printer
While software engineer meets 3d printerWhile software engineer meets 3d printer
While software engineer meets 3d printer
 
Skill share探讨
Skill share探讨Skill share探讨
Skill share探讨
 
漫谈游戏编程
漫谈游戏编程漫谈游戏编程
漫谈游戏编程
 
拒絕再寫無效規格,來學學實例化需求! (Agile Summit TW 2023)
拒絕再寫無效規格,來學學實例化需求! (Agile Summit TW 2023)拒絕再寫無效規格,來學學實例化需求! (Agile Summit TW 2023)
拒絕再寫無效規格,來學學實例化需求! (Agile Summit TW 2023)
 

More from teddysoft

Dci vs aggregate_dddtw_2021-0.3-preview
Dci vs aggregate_dddtw_2021-0.3-previewDci vs aggregate_dddtw_2021-0.3-preview
Dci vs aggregate_dddtw_2021-0.3-previewteddysoft
 
漫談重構
漫談重構漫談重構
漫談重構teddysoft
 
Pattern based problem solving-published
Pattern based problem solving-publishedPattern based problem solving-published
Pattern based problem solving-publishedteddysoft
 
Agile the timeless way of software development-2019-05-17-v1.2-published
Agile the timeless way of software development-2019-05-17-v1.2-publishedAgile the timeless way of software development-2019-05-17-v1.2-published
Agile the timeless way of software development-2019-05-17-v1.2-publishedteddysoft
 
從Bowling Game Kata看敏捷開發
從Bowling Game Kata看敏捷開發從Bowling Game Kata看敏捷開發
從Bowling Game Kata看敏捷開發teddysoft
 
當Scrum遇到Pattern
當Scrum遇到Pattern當Scrum遇到Pattern
當Scrum遇到Patternteddysoft
 
說出一嘴好設計 1.1
說出一嘴好設計 1.1說出一嘴好設計 1.1
說出一嘴好設計 1.1teddysoft
 
跟著Teddy讀Pattern
跟著Teddy讀Pattern跟著Teddy讀Pattern
跟著Teddy讀Patternteddysoft
 
洗白你的軟體架構
洗白你的軟體架構洗白你的軟體架構
洗白你的軟體架構teddysoft
 
如何學好設計模式
如何學好設計模式如何學好設計模式
如何學好設計模式teddysoft
 
Bdd atdd sbe_tdd_ddd_published
Bdd atdd sbe_tdd_ddd_publishedBdd atdd sbe_tdd_ddd_published
Bdd atdd sbe_tdd_ddd_publishedteddysoft
 
重構三兩事
重構三兩事重構三兩事
重構三兩事teddysoft
 
了解模式讓你更敏捷 (C C Agile 活動分享)
了解模式讓你更敏捷 (C C Agile 活動分享)了解模式讓你更敏捷 (C C Agile 活動分享)
了解模式讓你更敏捷 (C C Agile 活動分享)teddysoft
 
從五個小故事看敏捷開發精神
從五個小故事看敏捷開發精神從五個小故事看敏捷開發精神
從五個小故事看敏捷開發精神teddysoft
 
軟體開發成功的秘訣
軟體開發成功的秘訣軟體開發成功的秘訣
軟體開發成功的秘訣teddysoft
 
[演講] Scrum導入經驗分享
[演講] Scrum導入經驗分享[演講] Scrum導入經驗分享
[演講] Scrum導入經驗分享teddysoft
 
那一夜我們說Pattern design patterns 20周年-published
那一夜我們說Pattern design patterns 20周年-published那一夜我們說Pattern design patterns 20周年-published
那一夜我們說Pattern design patterns 20周年-publishedteddysoft
 
好設計如何好 @ C.C. Agile #14
好設計如何好 @ C.C. Agile #14好設計如何好 @ C.C. Agile #14
好設計如何好 @ C.C. Agile #14teddysoft
 
[教材] 例外處理設計與重構實作班201309
[教材] 例外處理設計與重構實作班201309[教材] 例外處理設計與重構實作班201309
[教材] 例外處理設計與重構實作班201309teddysoft
 
搞懂Java例外處理的難題:Checked與Unchecked Exceptions不再是問題
搞懂Java例外處理的難題:Checked與Unchecked Exceptions不再是問題搞懂Java例外處理的難題:Checked與Unchecked Exceptions不再是問題
搞懂Java例外處理的難題:Checked與Unchecked Exceptions不再是問題teddysoft
 

More from teddysoft (20)

Dci vs aggregate_dddtw_2021-0.3-preview
Dci vs aggregate_dddtw_2021-0.3-previewDci vs aggregate_dddtw_2021-0.3-preview
Dci vs aggregate_dddtw_2021-0.3-preview
 
漫談重構
漫談重構漫談重構
漫談重構
 
Pattern based problem solving-published
Pattern based problem solving-publishedPattern based problem solving-published
Pattern based problem solving-published
 
Agile the timeless way of software development-2019-05-17-v1.2-published
Agile the timeless way of software development-2019-05-17-v1.2-publishedAgile the timeless way of software development-2019-05-17-v1.2-published
Agile the timeless way of software development-2019-05-17-v1.2-published
 
從Bowling Game Kata看敏捷開發
從Bowling Game Kata看敏捷開發從Bowling Game Kata看敏捷開發
從Bowling Game Kata看敏捷開發
 
當Scrum遇到Pattern
當Scrum遇到Pattern當Scrum遇到Pattern
當Scrum遇到Pattern
 
說出一嘴好設計 1.1
說出一嘴好設計 1.1說出一嘴好設計 1.1
說出一嘴好設計 1.1
 
跟著Teddy讀Pattern
跟著Teddy讀Pattern跟著Teddy讀Pattern
跟著Teddy讀Pattern
 
洗白你的軟體架構
洗白你的軟體架構洗白你的軟體架構
洗白你的軟體架構
 
如何學好設計模式
如何學好設計模式如何學好設計模式
如何學好設計模式
 
Bdd atdd sbe_tdd_ddd_published
Bdd atdd sbe_tdd_ddd_publishedBdd atdd sbe_tdd_ddd_published
Bdd atdd sbe_tdd_ddd_published
 
重構三兩事
重構三兩事重構三兩事
重構三兩事
 
了解模式讓你更敏捷 (C C Agile 活動分享)
了解模式讓你更敏捷 (C C Agile 活動分享)了解模式讓你更敏捷 (C C Agile 活動分享)
了解模式讓你更敏捷 (C C Agile 活動分享)
 
從五個小故事看敏捷開發精神
從五個小故事看敏捷開發精神從五個小故事看敏捷開發精神
從五個小故事看敏捷開發精神
 
軟體開發成功的秘訣
軟體開發成功的秘訣軟體開發成功的秘訣
軟體開發成功的秘訣
 
[演講] Scrum導入經驗分享
[演講] Scrum導入經驗分享[演講] Scrum導入經驗分享
[演講] Scrum導入經驗分享
 
那一夜我們說Pattern design patterns 20周年-published
那一夜我們說Pattern design patterns 20周年-published那一夜我們說Pattern design patterns 20周年-published
那一夜我們說Pattern design patterns 20周年-published
 
好設計如何好 @ C.C. Agile #14
好設計如何好 @ C.C. Agile #14好設計如何好 @ C.C. Agile #14
好設計如何好 @ C.C. Agile #14
 
[教材] 例外處理設計與重構實作班201309
[教材] 例外處理設計與重構實作班201309[教材] 例外處理設計與重構實作班201309
[教材] 例外處理設計與重構實作班201309
 
搞懂Java例外處理的難題:Checked與Unchecked Exceptions不再是問題
搞懂Java例外處理的難題:Checked與Unchecked Exceptions不再是問題搞懂Java例外處理的難題:Checked與Unchecked Exceptions不再是問題
搞懂Java例外處理的難題:Checked與Unchecked Exceptions不再是問題
 

模式入門第一堂課: 30分鐘寫出一個模式

  • 1. 模式入門第一堂課: 30分鐘寫出一個Pattern Teddy Chen teddy.chen.tw@gmail.com http://teddy-chen-tw.blogspot.tw
  • 2. 我是誰 • 2012年7月成立泰迪軟體,從事敏捷開發顧問、 教育訓練、軟體工具導入等服務。 • 2012年6月,出版暢銷書「笑談軟體工程:敏捷 方法的逆襲」。 • 2012年4月起,多次講授Scrum課程,與學員互 動氣氛佳,滿意度高。 • 超過16年design pattern實務經驗,曾在pattern領 域最著名的PLoP國際研討會發表論文。 – PLoP 2004:A Pattern Language for Personal Authoring in E-Learning. – Asia PLoP 2011:Emerging Patterns of Continuous Integration for Cross-Platform Software Development. • 2010年起,主講多次ezScrum團隊舉辦的Scrum 講座。 • 2009年取得Certified ScrumMaster。 • 2008年取得台北科技大學資工博士。 • 2007年起經營「搞笑談軟工」部落格。
  • 5. Each pattern is a three-part rule, which express a relation between a certain context, a problem, and a solution.
  • 6. A pattern is a solution to a problem in a context World Context Machine Problem Solution Problem (How, How to, (Requirement, How much) What)
  • 7. An Example, Take 1 • Context: 你是經營線上遊戲的業者。 • Problem: 為了快速有產品可以上市,你用高 價搶下國外知名產品的代理權。就在付款之 後不久,國外產商惡性倒閉。要如何要回你 的簽約金? • Solution: 找黑道去喬事情。
  • 8. An Example, Take 2 • Context: 你是經營線上遊戲的業者。 • Problem: 線上遊戲的市場競爭非常激烈,玩 家的選擇很多,因此傳統需要先付費才可以 玩的遊戲模式,要玩家在尚未入迷之前就先 付費變得越來越困難。要如何讓玩家願意掏 錢出來玩線上遊戲呢? • Solution: 以終生免費為噱頭,先讓玩家上癮, 再要求玩家每月付費,否則將關閉遊戲伺服 器。
  • 9. An Example, Take 3 • Context: 你是經營線上遊戲的業者。 • Problem: 線上遊戲的市場競爭非常激烈,玩 家的選擇很多,因此傳統需要先付費才可以 玩的遊戲模式,要玩家在尚未入迷之前就先 付費變得越來越困難。要如何讓玩家願意掏 錢出來玩線上遊戲呢? • Solution: 提供免費遊戲,先吸引玩家上癮, 再以販賣道具與周邊商品作為獲利來源。
  • 10. An Example, Take 4 • Context: 線上遊戲的市場競爭非常激烈,玩 家的選擇很多,除非你是知名大廠,能推出 曠世巨作,否則以傳統先付費才可以玩的遊 戲模式,要玩家在尚未入迷之前就先付費變 得越來越困難。 • Problem: 要如何讓玩家願意掏錢出來玩線上 遊戲? • Solution: 提供免費遊戲,先吸引玩家上癮, 再以販賣道具與周邊商品作為獲利來源。
  • 11. 模式的六大基本元素 • Name : 模式名稱,增加開發者的設計字彙 • Context: 描述問題發生的地形地物(美容前) • Problem: 描述問題本身 • Force: 問題的限制或特性 • Solution: 解決問題的方法 • Resulting Context (Consequence): 套用解決方 案之後的結果(美容後)
  • 12. 沒有Context便無法判斷Solution • Problem: 要如何讓玩家願意掏錢出來玩線 上遊戲? • Solution: 1. 推出著名大作,玩家不買不可 2. 採用免費遊戲策略,但如果要升級則玩家就 必須要花錢購買道具 3. 推出賭博性線上遊戲
  • 13. Force 讓 Problem 更明確 Force 讓 Solution 更加完整與成形
  • 14. An Example, Take 5.1 • Context: 線上遊戲的市場競爭非常激烈,玩家的 選擇很多,除非你是知名大廠,能推出曠世巨作, 否則以傳統先付費才可以玩的遊戲模式,要玩家 在尚未入迷之前就先付費變得越來越困難。 • Problem: 要如何讓玩家在線上遊戲中付費? • Forces: – 安裝繁瑣或費時的遊戲將不易吸引玩家試玩,更談不 上收費的可能。 – 若玩家永遠只是付費,將減少他們持續玩同一款遊戲 的意願。 • Solution: 提供免費遊戲,先吸引玩家上癮,再以 販賣道具與周邊商品作為獲利來源。
  • 15. An Example, Take 5.2 • Context: 線上遊戲的市場競爭非常激烈,玩家的選擇 很多,除非你是知名大廠,能推出曠世巨作,否則以 傳統先付費才可以玩的遊戲模式,要玩家在尚未入迷 之前就先付費變得越來越困難。 • Problem: 要如何讓玩家在線上遊戲中付費? • Forces: – 安裝繁瑣或費時的遊戲將不易吸引玩家試玩,更談不上 收費的可能。 – 若玩家永遠只是付費,將減少他們持續玩同一款遊戲的 意願。 • Solution: 提供快速、分段或免安裝的免費遊戲,先吸 引玩家上癮,再以販賣道具與周邊商品作為獲利來源。 在遊戲中提供網路商城,讓玩家可以買賣道具,以提 高遊戲的黏著度。
  • 16. An Example, Take 5.3 • Context: 線上遊戲的市場競爭非常激烈,玩家的選擇 很多,除非你是知名大廠,能推出曠世巨作,否則以 傳統先付費才可以玩的遊戲模式,要玩家在尚未入迷 之前就先付費變得越來越困難。 • Problem: 要如何讓玩家持續在線上遊戲中付費? • Forces: – 安裝繁瑣或費時的遊戲將不易吸引玩家試玩,更談不上 收費的可能。 – 若玩家永遠只是付費,將減少他們持續玩同一款遊戲的 意願。 • Solution: 提供快速、分段或免安裝的免費遊戲,先 吸引玩家上癮,再以販賣道具與周邊商品作為獲利 來源。在遊戲提供網路商城,讓玩家可以買賣道具, 以提高遊戲的黏著度。
  • 18.
  • 19. An Example, Take 6 • Context: 線上遊戲的市場競爭非常激烈,玩家的選擇很多,除非你 是知名大廠,能推出曠世巨作,否則以傳統先付費才可以玩的遊戲 模式,要玩家在尚未入迷之前就先付費變得越來越困難。 • Problem: 要如何讓玩家持續在線上遊戲中付費? • Forces: – 安裝繁瑣或費時的遊戲將不易吸引玩家試玩,更談不上收費的可能。 – 若玩家永遠只是付費,將減少他們持續玩同一款遊戲的意願。 • Solution: 提供快速、分段或免安裝的免費遊戲,先吸引玩家上癮, 再以販賣道具與周邊商品作為獲利來源。提供網路商城,讓玩家可 以買賣道具,以提高遊戲的黏著度。 • Resulting Context: – 進入遊戲的門檻降低,較容易在短期間吸引大量玩家。 – 只要玩家中的一定比例付費購買道具便可達到損益平衡。 – 如果玩家對遊戲反應不佳,或是玩的人數很多但付費人數太少,經 營者可能會血本無歸。
  • 20. 兩種命名方法 • 名詞片語 (Noun-phrase) – 描述模式所建立或產生的結果 – 例子:Singleton, Command, Model-View- Controller , 六英尺深的陽台, 入口的過度空間 • 動詞片語 (Verb-phrase) – 給訂一個指令,描述如何達到模式解決方案所要 求的狀態 – 例子:Don’t Talk to Strangers, Separate Material Preparation from Integration
  • 21. A pattern is a process and a thing.
  • 22. A common ground for communication.
  • 24. Pattern 的應用 • 紀錄知識/經驗的方法 • 思考與分析問題的工具,培養觀察與內省 的能力 • 判斷解決問題方法的品質 • 溝通與教育的媒介
  • 25. 常見模式的種類 • Analysis Pattern • Software Architecture Pattern • Design Pattern • Implementation Pattern • HCI Pattern • Process Pattern 可應用於各種不同的領域中
  • 27.
  • 28.
  • 29. 快速回顧 • 什麼是 Pattern (模式)? • 模式的六大基本元素。 • 以實例說明如何撰寫模式 • 單一模式的未來:從模式到模式語言 Q&A