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

Game Server Services ではじめる サーバー開発運用しないゲーム開発 /GTMF2019
Game Server Services ではじめる サーバー開発運用しないゲーム開発 /GTMF2019Game Server Services ではじめる サーバー開発運用しないゲーム開発 /GTMF2019
Game Server Services ではじめる サーバー開発運用しないゲーム開発 /GTMF2019Game Tools & Middleware Forum
 
DynamoDBによるソーシャルゲーム実装 How To
DynamoDBによるソーシャルゲーム実装 How ToDynamoDBによるソーシャルゲーム実装 How To
DynamoDBによるソーシャルゲーム実装 How To伊藤 祐策
 
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説Unity Technologies Japan K.K.
 
アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門Hori Tasuku
 
OpenStackトラブルシューティング入門
OpenStackトラブルシューティング入門OpenStackトラブルシューティング入門
OpenStackトラブルシューティング入門VirtualTech Japan Inc.
 
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open CampAndrew Wu
 
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】DeNA
 
Fuchsia概略その1
Fuchsia概略その1Fuchsia概略その1
Fuchsia概略その1l_b__
 
Multibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだことMultibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだことRecruit Lifestyle Co., Ltd.
 
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)Trainocate Japan, Ltd.
 
自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方光晶 上原
 
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討Masahito Zembutsu
 
GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)
GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)
GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)Game Tools & Middleware Forum
 
Akkaで分散システム入門
Akkaで分散システム入門Akkaで分散システム入門
Akkaで分散システム入門Shingo Omura
 
カスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについてカスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについてalwei
 
DNSキャッシュサーバ チューニングの勘所
DNSキャッシュサーバ チューニングの勘所DNSキャッシュサーバ チューニングの勘所
DNSキャッシュサーバ チューニングの勘所hdais
 
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事Manabu Koga
 
できる!並列・並行プログラミング
できる!並列・並行プログラミングできる!並列・並行プログラミング
できる!並列・並行プログラミングPreferred Networks
 

What's hot (20)

Game Server Services ではじめる サーバー開発運用しないゲーム開発 /GTMF2019
Game Server Services ではじめる サーバー開発運用しないゲーム開発 /GTMF2019Game Server Services ではじめる サーバー開発運用しないゲーム開発 /GTMF2019
Game Server Services ではじめる サーバー開発運用しないゲーム開発 /GTMF2019
 
DynamoDBによるソーシャルゲーム実装 How To
DynamoDBによるソーシャルゲーム実装 How ToDynamoDBによるソーシャルゲーム実装 How To
DynamoDBによるソーシャルゲーム実装 How To
 
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
 
アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門
 
OpenStackトラブルシューティング入門
OpenStackトラブルシューティング入門OpenStackトラブルシューティング入門
OpenStackトラブルシューティング入門
 
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
 
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
 
Fuchsia概略その1
Fuchsia概略その1Fuchsia概略その1
Fuchsia概略その1
 
Multibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだことMultibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだこと
 
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
 
自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方
 
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
 
UE4 MultiPlayer Online Deep Dive 基礎編2 -Traveling- (historia様ご講演) #ue4dd
UE4 MultiPlayer Online Deep Dive 基礎編2 -Traveling-  (historia様ご講演)  #ue4ddUE4 MultiPlayer Online Deep Dive 基礎編2 -Traveling-  (historia様ご講演)  #ue4dd
UE4 MultiPlayer Online Deep Dive 基礎編2 -Traveling- (historia様ご講演) #ue4dd
 
GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)
GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)
GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)
 
Akkaで分散システム入門
Akkaで分散システム入門Akkaで分散システム入門
Akkaで分散システム入門
 
UE4でPerforceと連携するための手順
UE4でPerforceと連携するための手順UE4でPerforceと連携するための手順
UE4でPerforceと連携するための手順
 
カスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについてカスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについて
 
DNSキャッシュサーバ チューニングの勘所
DNSキャッシュサーバ チューニングの勘所DNSキャッシュサーバ チューニングの勘所
DNSキャッシュサーバ チューニングの勘所
 
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
 
できる!並列・並行プログラミング
できる!並列・並行プログラミングできる!並列・並行プログラミング
できる!並列・並行プログラミング
 

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

Design Patterns這樣學就會了:入門班 Day1 教材
Design Patterns這樣學就會了:入門班 Day1 教材Design Patterns這樣學就會了:入門班 Day1 教材
Design Patterns這樣學就會了:入門班 Day1 教材teddysoft
 
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
 

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

Design Patterns這樣學就會了:入門班 Day1 教材
Design Patterns這樣學就會了:入門班 Day1 教材Design Patterns這樣學就會了:入門班 Day1 教材
Design Patterns這樣學就會了:入門班 Day1 教材
 
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探讨
 
漫谈游戏编程
漫谈游戏编程漫谈游戏编程
漫谈游戏编程
 

More from teddysoft

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
 
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
 
DDD + Clean Architecture: 從需求到實作
DDD + Clean Architecture: 從需求到實作DDD + Clean Architecture: 從需求到實作
DDD + Clean Architecture: 從需求到實作teddysoft
 
漫談重構
漫談重構漫談重構
漫談重構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
 

More from teddysoft (20)

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
 
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
 
DDD + Clean Architecture: 從需求到實作
DDD + Clean Architecture: 從需求到實作DDD + Clean Architecture: 從需求到實作
DDD + Clean Architecture: 從需求到實作
 
漫談重構
漫談重構漫談重構
漫談重構
 
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
 

模式入門第一堂課: 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