SlideShare a Scribd company logo
AigleCommunity.tw 黑手群
Coding Dojo初體驗
• 不是TDD教學
• 不是C#或相關工具教學
• 讓大家了解一下舉辦Coding Dojo的感
覺
• 可以用在教育訓練
• 日常娛樂活動???!!
今天的活動…
所謂dojo(道場)就是練習功
夫的地方, 所以coding dojo
就是讓一群人(通常不會太
多人), 在一個安全的環境中
, 大家一起來練功,只是這裡
的功夫可能是 TDD, pair
programming, design
pattern, refactoring 或是其
他與軟體設計開發有關的技
巧。
什麼是Coding Dojo (編程道場)
Driver Navigator
• Prepared Kata
• 事先準備好的,完全由台上的講者來展示
某Kata 的解法。
• Randori (乱取り)
• 選定一Kata題目後,根據某種『輪替』
的規則,觀眾輪流上台解題。
Coding Dojo的形式
台上規則:
1. 由副駕駛主導方向,與正駕駛討論後決定編
程的下一步
2. TDD, Baby Step
3. 討論時請大聲,讓觀眾能夠充分瞭解方向與
現況
4. 七分鐘換手一次:副駕駛下台,正駕駛轉任
副駕駛,一位新的觀眾上台擔任正駕駛
5. 必要時可以使用求救牌或安靜牌來求救或避
免干擾。
今日Dojo形式: Randori
台下規則:
1. 搖滾區的朋友:
• 尚未綠燈前,禁止對正副駕駛提問或給
建議
• 綠燈時,歡迎給建議
2. 看台區的朋友:
• 為了維持活動的順暢,看台區的朋友如
無特殊狀況,請避免發言
今日Dojo形式: Randori
• 7:40 Coding Dojo開始
• 8:50 Retrospective
時間規劃
Kata (套路)
寫一支程式,能根據以下規則輸出1~100的數字
三的倍數輸出”Fizz”, 五的倍數輸出”Buzz”, 如果同
時是三跟五的倍數,則輸出”FizzBuzz”,其他的則
輸出原數字的字串。如:
1
2
Fizz
4
Buzz
Fizz
7
FizzBuzz Kata需求
TDD (Test-Driven Development)
測試驅動開發
Coding Dojo開始…
數字的字串中有出現”3”的(如13),也需要
輸出”Fizz”。數字的字串中有出現”5”的(如
51),也需要輸出”Buzz”
• 13 → “Fizz”
• 51 → “Buzz”
FizzBuzz Kata第一次需求變動
仿照先前的做法,七的倍數,以及字串包
含”7”的,都要輸出”Whizz”
• 7 → “Whizz”
• 17 → “Whizz”
FizzBuzz Kata第二次需求變動
1. 今天學到了什麼? (語言, 工具, 技巧, 想
法, 流程……)
2. 今天的Dojo有沒有什麼地方不理想的?
3. 如果下次還有機會辦Coding Dojo,有
沒有什麼建議?
Retrospective

More Related Content

What's hot

CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについてCentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
Nobuyuki Sasaki
 
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀
増田 亨
 
serviceクラスをやめようサブクラスを使おう
serviceクラスをやめようサブクラスを使おうserviceクラスをやめようサブクラスを使おう
serviceクラスをやめようサブクラスを使おう
よしだ あつし
 
第15回 Solr勉強会 #SolrJP Amazon CloudSearch Deep Dive
第15回 Solr勉強会 #SolrJP Amazon CloudSearch Deep Dive第15回 Solr勉強会 #SolrJP Amazon CloudSearch Deep Dive
第15回 Solr勉強会 #SolrJP Amazon CloudSearch Deep Dive
Amazon Web Services Japan
 
Laravelとテストについて
LaravelとテストについてLaravelとテストについて
Laravelとテストについて
Takeo Noda
 
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
Koichiro Matsuoka
 
AtCoder Beginner Contest 020 解説
AtCoder Beginner Contest 020 解説AtCoder Beginner Contest 020 解説
AtCoder Beginner Contest 020 解説
AtCoder Inc.
 
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
増田 亨
 
OAuth 2.0 Web Messaging Response Mode - OpenID Summit Tokyo 2015
OAuth 2.0 Web Messaging Response Mode - OpenID Summit Tokyo 2015OAuth 2.0 Web Messaging Response Mode - OpenID Summit Tokyo 2015
OAuth 2.0 Web Messaging Response Mode - OpenID Summit Tokyo 2015
Toru Yamaguchi
 
JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方
Takahiro YAMADA
 
ソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かうソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう
増田 亨
 
Pull Request & TDD 入門
Pull Request & TDD 入門Pull Request & TDD 入門
Pull Request & TDD 入門
ESM SEC
 
「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~
「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~
「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~
A AOKI
 
チューリング・マシンとコンピュータ工学
チューリング・マシンとコンピュータ工学チューリング・マシンとコンピュータ工学
チューリング・マシンとコンピュータ工学
Junpei Tsuji
 
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTest Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
Takuto Wada
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOps
Etsuji Nakai
 
C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)
Takuya Kawabe
 
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめトランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
pospome
 
How Twitter Works (Arsen Kostenko Technology Stream)
How Twitter Works (Arsen Kostenko Technology Stream) How Twitter Works (Arsen Kostenko Technology Stream)
How Twitter Works (Arsen Kostenko Technology Stream)
IT Arena
 
賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)
賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)
賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)
William Yeh
 

What's hot (20)

CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについてCentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
 
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀
 
serviceクラスをやめようサブクラスを使おう
serviceクラスをやめようサブクラスを使おうserviceクラスをやめようサブクラスを使おう
serviceクラスをやめようサブクラスを使おう
 
第15回 Solr勉強会 #SolrJP Amazon CloudSearch Deep Dive
第15回 Solr勉強会 #SolrJP Amazon CloudSearch Deep Dive第15回 Solr勉強会 #SolrJP Amazon CloudSearch Deep Dive
第15回 Solr勉強会 #SolrJP Amazon CloudSearch Deep Dive
 
Laravelとテストについて
LaravelとテストについてLaravelとテストについて
Laravelとテストについて
 
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
 
AtCoder Beginner Contest 020 解説
AtCoder Beginner Contest 020 解説AtCoder Beginner Contest 020 解説
AtCoder Beginner Contest 020 解説
 
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
 
OAuth 2.0 Web Messaging Response Mode - OpenID Summit Tokyo 2015
OAuth 2.0 Web Messaging Response Mode - OpenID Summit Tokyo 2015OAuth 2.0 Web Messaging Response Mode - OpenID Summit Tokyo 2015
OAuth 2.0 Web Messaging Response Mode - OpenID Summit Tokyo 2015
 
JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方
 
ソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かうソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう
 
Pull Request & TDD 入門
Pull Request & TDD 入門Pull Request & TDD 入門
Pull Request & TDD 入門
 
「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~
「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~
「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~
 
チューリング・マシンとコンピュータ工学
チューリング・マシンとコンピュータ工学チューリング・マシンとコンピュータ工学
チューリング・マシンとコンピュータ工学
 
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTest Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOps
 
C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)
 
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめトランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
 
How Twitter Works (Arsen Kostenko Technology Stream)
How Twitter Works (Arsen Kostenko Technology Stream) How Twitter Works (Arsen Kostenko Technology Stream)
How Twitter Works (Arsen Kostenko Technology Stream)
 
賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)
賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)
賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)
 

Similar to Coding dojo初體驗

Agile tour dojo c++
Agile tour dojo c++Agile tour dojo c++
Agile tour dojo c++
AgileCommunity
 
程序员与技术
程序员与技术程序员与技术
程序员与技术
ligaoren
 
Coding dojo 2.0
Coding dojo 2.0Coding dojo 2.0
Coding dojo 2.0
Yu-Song Syu
 
Agile tour 2014 - Coding Dojo with C# and TDD
Agile tour 2014 - Coding Dojo with C# and TDDAgile tour 2014 - Coding Dojo with C# and TDD
Agile tour 2014 - Coding Dojo with C# and TDDAgileCommunity
 
Agile tour Taipei 2014 - coding dojo with CSharp and TDD
Agile tour Taipei 2014 - coding dojo with CSharp and TDDAgile tour Taipei 2014 - coding dojo with CSharp and TDD
Agile tour Taipei 2014 - coding dojo with CSharp and TDD
Joey Chen
 
2012,我的技术之选
2012,我的技术之选2012,我的技术之选
2012,我的技术之选
勇浩 赖
 
Developer vs designer
Developer vs designerDeveloper vs designer
Developer vs designerRobert Luo
 
DDD引導
DDD引導DDD引導
DDD引導
國昭 張
 
前端測試
前端測試前端測試
前端測試
國昭 張
 
前端測試
前端測試前端測試
前端測試
chang kuo-chao
 
Solver Workshop 規劃求解工作坊 (2010.06.12 @ CCL)
Solver Workshop 規劃求解工作坊 (2010.06.12 @ CCL)Solver Workshop 規劃求解工作坊 (2010.06.12 @ CCL)
Solver Workshop 規劃求解工作坊 (2010.06.12 @ CCL)
Calvin C. Yu
 
Android 基礎開發課程
Android 基礎開發課程Android 基礎開發課程
Android 基礎開發課程
Duran Hsieh
 
2021 DDDTW Study Group 第一場 導讀
2021 DDDTW Study Group 第一場 導讀2021 DDDTW Study Group 第一場 導讀
2021 DDDTW Study Group 第一場 導讀
hoblues
 
Linking error
Linking errorLinking error
Linking error
Ching Yi Chan
 
Open source的devops工具箱 公開版@coscup2016
Open source的devops工具箱 公開版@coscup2016Open source的devops工具箱 公開版@coscup2016
Open source的devops工具箱 公開版@coscup2016
Kirk Chen
 
DevOps的神鬼奇航
DevOps的神鬼奇航DevOps的神鬼奇航
DevOps的神鬼奇航
Edward Kuo
 
Weic2015 docker
Weic2015 dockerWeic2015 docker
Weic2015 docker
Ray Lin
 
Python 入門初體驗
Python 入門初體驗Python 入門初體驗
Python 入門初體驗
政斌 楊
 
2019/7/27 先別開 Branch 了,你聽過 Feature Toggle 嗎?
2019/7/27 先別開 Branch 了,你聽過 Feature Toggle 嗎?2019/7/27 先別開 Branch 了,你聽過 Feature Toggle 嗎?
2019/7/27 先別開 Branch 了,你聽過 Feature Toggle 嗎?
Miles Chou
 
少年科技人雜誌 2015 年六月
少年科技人雜誌 2015 年六月少年科技人雜誌 2015 年六月
少年科技人雜誌 2015 年六月
鍾誠 陳鍾誠
 

Similar to Coding dojo初體驗 (20)

Agile tour dojo c++
Agile tour dojo c++Agile tour dojo c++
Agile tour dojo c++
 
程序员与技术
程序员与技术程序员与技术
程序员与技术
 
Coding dojo 2.0
Coding dojo 2.0Coding dojo 2.0
Coding dojo 2.0
 
Agile tour 2014 - Coding Dojo with C# and TDD
Agile tour 2014 - Coding Dojo with C# and TDDAgile tour 2014 - Coding Dojo with C# and TDD
Agile tour 2014 - Coding Dojo with C# and TDD
 
Agile tour Taipei 2014 - coding dojo with CSharp and TDD
Agile tour Taipei 2014 - coding dojo with CSharp and TDDAgile tour Taipei 2014 - coding dojo with CSharp and TDD
Agile tour Taipei 2014 - coding dojo with CSharp and TDD
 
2012,我的技术之选
2012,我的技术之选2012,我的技术之选
2012,我的技术之选
 
Developer vs designer
Developer vs designerDeveloper vs designer
Developer vs designer
 
DDD引導
DDD引導DDD引導
DDD引導
 
前端測試
前端測試前端測試
前端測試
 
前端測試
前端測試前端測試
前端測試
 
Solver Workshop 規劃求解工作坊 (2010.06.12 @ CCL)
Solver Workshop 規劃求解工作坊 (2010.06.12 @ CCL)Solver Workshop 規劃求解工作坊 (2010.06.12 @ CCL)
Solver Workshop 規劃求解工作坊 (2010.06.12 @ CCL)
 
Android 基礎開發課程
Android 基礎開發課程Android 基礎開發課程
Android 基礎開發課程
 
2021 DDDTW Study Group 第一場 導讀
2021 DDDTW Study Group 第一場 導讀2021 DDDTW Study Group 第一場 導讀
2021 DDDTW Study Group 第一場 導讀
 
Linking error
Linking errorLinking error
Linking error
 
Open source的devops工具箱 公開版@coscup2016
Open source的devops工具箱 公開版@coscup2016Open source的devops工具箱 公開版@coscup2016
Open source的devops工具箱 公開版@coscup2016
 
DevOps的神鬼奇航
DevOps的神鬼奇航DevOps的神鬼奇航
DevOps的神鬼奇航
 
Weic2015 docker
Weic2015 dockerWeic2015 docker
Weic2015 docker
 
Python 入門初體驗
Python 入門初體驗Python 入門初體驗
Python 入門初體驗
 
2019/7/27 先別開 Branch 了,你聽過 Feature Toggle 嗎?
2019/7/27 先別開 Branch 了,你聽過 Feature Toggle 嗎?2019/7/27 先別開 Branch 了,你聽過 Feature Toggle 嗎?
2019/7/27 先別開 Branch 了,你聽過 Feature Toggle 嗎?
 
少年科技人雜誌 2015 年六月
少年科技人雜誌 2015 年六月少年科技人雜誌 2015 年六月
少年科技人雜誌 2015 年六月
 

More from AgileCommunity

從Agile到Lean Startup:趨勢的軟體開發之旅
從Agile到Lean Startup:趨勢的軟體開發之旅從Agile到Lean Startup:趨勢的軟體開發之旅
從Agile到Lean Startup:趨勢的軟體開發之旅
AgileCommunity
 
A journey about how’s high performance teams forming and develop Mobile appli...
A journey about how’s high performance teams forming and develop Mobile appli...A journey about how’s high performance teams forming and develop Mobile appli...
A journey about how’s high performance teams forming and develop Mobile appli...
AgileCommunity
 
練出精實ux
練出精實ux練出精實ux
練出精實ux
AgileCommunity
 
Project GATE 的敏捷實踐之路
Project GATE 的敏捷實踐之路Project GATE 的敏捷實踐之路
Project GATE 的敏捷實踐之路
AgileCommunity
 
Agile Tour Taipei 2014 - 趨勢科技的 agile 之旅
Agile Tour Taipei 2014 - 趨勢科技的 agile 之旅Agile Tour Taipei 2014 - 趨勢科技的 agile 之旅
Agile Tour Taipei 2014 - 趨勢科技的 agile 之旅
AgileCommunity
 
More with Less - Agile Meetup 2014/9/18
More with Less - Agile Meetup 2014/9/18More with Less - Agile Meetup 2014/9/18
More with Less - Agile Meetup 2014/9/18
AgileCommunity
 
2013/10: Q con shanghai2013-davidko-如何利用 kanban让 scrum 更完美
2013/10: Q con shanghai2013-davidko-如何利用 kanban让 scrum 更完美2013/10: Q con shanghai2013-davidko-如何利用 kanban让 scrum 更完美
2013/10: Q con shanghai2013-davidko-如何利用 kanban让 scrum 更完美AgileCommunity
 
2014/02: 嵌入式測試驅動開發
2014/02: 嵌入式測試驅動開發2014/02: 嵌入式測試驅動開發
2014/02: 嵌入式測試驅動開發AgileCommunity
 

More from AgileCommunity (9)

從Agile到Lean Startup:趨勢的軟體開發之旅
從Agile到Lean Startup:趨勢的軟體開發之旅從Agile到Lean Startup:趨勢的軟體開發之旅
從Agile到Lean Startup:趨勢的軟體開發之旅
 
A journey about how’s high performance teams forming and develop Mobile appli...
A journey about how’s high performance teams forming and develop Mobile appli...A journey about how’s high performance teams forming and develop Mobile appli...
A journey about how’s high performance teams forming and develop Mobile appli...
 
練出精實ux
練出精實ux練出精實ux
練出精實ux
 
Project GATE 的敏捷實踐之路
Project GATE 的敏捷實踐之路Project GATE 的敏捷實踐之路
Project GATE 的敏捷實踐之路
 
Agile Tour Taipei 2014 - 趨勢科技的 agile 之旅
Agile Tour Taipei 2014 - 趨勢科技的 agile 之旅Agile Tour Taipei 2014 - 趨勢科技的 agile 之旅
Agile Tour Taipei 2014 - 趨勢科技的 agile 之旅
 
2014/10/3 Ux in china
2014/10/3 Ux in china2014/10/3 Ux in china
2014/10/3 Ux in china
 
More with Less - Agile Meetup 2014/9/18
More with Less - Agile Meetup 2014/9/18More with Less - Agile Meetup 2014/9/18
More with Less - Agile Meetup 2014/9/18
 
2013/10: Q con shanghai2013-davidko-如何利用 kanban让 scrum 更完美
2013/10: Q con shanghai2013-davidko-如何利用 kanban让 scrum 更完美2013/10: Q con shanghai2013-davidko-如何利用 kanban让 scrum 更完美
2013/10: Q con shanghai2013-davidko-如何利用 kanban让 scrum 更完美
 
2014/02: 嵌入式測試驅動開發
2014/02: 嵌入式測試驅動開發2014/02: 嵌入式測試驅動開發
2014/02: 嵌入式測試驅動開發
 

Coding dojo初體驗