SlideShare uma empresa Scribd logo
1 de 16
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

Mais conteúdo relacionado

Mais procurados

Go1.18 Genericsを試す
Go1.18 Genericsを試すGo1.18 Genericsを試す
Go1.18 Genericsを試す
asuka y
 
Define and expansion of cpp macro
Define and expansion of cpp macroDefine and expansion of cpp macro
Define and expansion of cpp macro
digitalghost
 

Mais procurados (20)

競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性
 
DeNA内製ゲームエンジンの現状と目指す未来 #denatechcon
DeNA内製ゲームエンジンの現状と目指す未来 #denatechconDeNA内製ゲームエンジンの現状と目指す未来 #denatechcon
DeNA内製ゲームエンジンの現状と目指す未来 #denatechcon
 
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
 
Introduction to JIT Compiler in JVM
Introduction to JIT Compiler in JVMIntroduction to JIT Compiler in JVM
Introduction to JIT Compiler in JVM
 
コードゴルフのススメ(C言語)
コードゴルフのススメ(C言語)コードゴルフのススメ(C言語)
コードゴルフのススメ(C言語)
 
Go1.18 Genericsを試す
Go1.18 Genericsを試すGo1.18 Genericsを試す
Go1.18 Genericsを試す
 
つぶやきGLSLとは
つぶやきGLSLとはつぶやきGLSLとは
つぶやきGLSLとは
 
RETEアルゴリズムを使いこなせ
RETEアルゴリズムを使いこなせRETEアルゴリズムを使いこなせ
RETEアルゴリズムを使いこなせ
 
実践的な設計って、なんだろう?
実践的な設計って、なんだろう?実践的な設計って、なんだろう?
実践的な設計って、なんだろう?
 
Panamaを先取り!? JVMCIでJITと遊ぶ
Panamaを先取り!? JVMCIでJITと遊ぶPanamaを先取り!? JVMCIでJITと遊ぶ
Panamaを先取り!? JVMCIでJITと遊ぶ
 
Lispとは何なのか - 同図像性がもたらす力とその利用法
Lispとは何なのか - 同図像性がもたらす力とその利用法Lispとは何なのか - 同図像性がもたらす力とその利用法
Lispとは何なのか - 同図像性がもたらす力とその利用法
 
(公開版)FPGAエクストリームコンピューティング2017
(公開版)FPGAエクストリームコンピューティング2017 (公開版)FPGAエクストリームコンピューティング2017
(公開版)FPGAエクストリームコンピューティング2017
 
Common Lisp製のテキストエディタLemにフレーム多重化機能をつくった
Common Lisp製のテキストエディタLemにフレーム多重化機能をつくったCommon Lisp製のテキストエディタLemにフレーム多重化機能をつくった
Common Lisp製のテキストエディタLemにフレーム多重化機能をつくった
 
TVM の紹介
TVM の紹介TVM の紹介
TVM の紹介
 
次の世代のインタラクティブレンダリング5つの挑戦と10の滅ぶべき技術
次の世代のインタラクティブレンダリング5つの挑戦と10の滅ぶべき技術 次の世代のインタラクティブレンダリング5つの挑戦と10の滅ぶべき技術
次の世代のインタラクティブレンダリング5つの挑戦と10の滅ぶべき技術
 
Define and expansion of cpp macro
Define and expansion of cpp macroDefine and expansion of cpp macro
Define and expansion of cpp macro
 
Prometeusについてはじめてみよう / Let's start Prometeus
Prometeusについてはじめてみよう / Let's start PrometeusPrometeusについてはじめてみよう / Let's start Prometeus
Prometeusについてはじめてみよう / Let's start Prometeus
 
板ポリだけで めちゃカッコいい グラフィックスを出す!
板ポリだけで めちゃカッコいい グラフィックスを出す!板ポリだけで めちゃカッコいい グラフィックスを出す!
板ポリだけで めちゃカッコいい グラフィックスを出す!
 
20160906 pplss ishizaki public
20160906 pplss ishizaki public20160906 pplss ishizaki public
20160906 pplss ishizaki public
 
Webページが表示されるまで
Webページが表示されるまでWebページが表示されるまで
Webページが表示されるまで
 

Semelhante a Coding dojo初體驗

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
AgileCommunity
 
Developer vs designer
Developer vs designerDeveloper vs designer
Developer vs designer
Robert Luo
 

Semelhante a 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 年六月
 

Mais de 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
 

Mais de 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初體驗