Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
MatteoVaccariBirthdayGreetingsKataInSCBCN2013
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
trikitrok
September 28, 2013
Programming
180
0
Share
MatteoVaccariBirthdayGreetingsKataInSCBCN2013
Presentation for Matteo Vaccari's Birthday Greetings Refactoring Kata that we did in SCBCN
trikitrok
September 28, 2013
Other Decks in Programming
See All in Programming
PHPのバージョンアップ時にも役立ったAST(2026年版)
matsuo_atsushi
0
290
Feature Toggle は捨てやすく使おう
gennei
0
430
2026-03-27 #terminalnight 変数展開とコマンド展開でターミナル作業をスマートにする方法
masasuzu
0
300
3分でわかるatama plusのQA/about atama plus QA
atamaplus
0
110
まかせられるPM・まかせられないPM / DevTech GUILD Meetup
yusukemukoyama
0
100
Vibe하게 만드는 Flutter GenUI App With ADK , 박제창, BWAI Incheon 2026
itsmedreamwalker
0
540
Linux Kernelの1文字のミスで 権限昇格ができた話
rqda
0
2.3k
Rethinking API Platform Filters
vinceamstoutz
0
9.9k
Symfonyの特性(設計思想)を手軽に活かす特性(trait)
ickx
0
130
PHPで TLSのプロトコルを実装してみるをもう一度しゃべりたい
higaki_program
0
180
アーキテクチャモダナイゼーションとは何か
nwiizo
17
4.2k
煩雑なSkills管理をSoC(関心の分離)により解決する――関心を分離し、プロンプトを部品として育てるためのOSSを作った話 / Solving Complex Skills Management Through SoC (Separation of Concerns)
nrslib
3
520
Featured
See All Featured
Ethics towards AI in product and experience design
skipperchong
2
250
We Have a Design System, Now What?
morganepeng
55
8.1k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
340
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
110
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.1k
Faster Mobile Websites
deanohume
310
31k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Tell your own story through comics
letsgokoyo
1
880
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
670
ラッコキーワード サービス紹介資料
rakko
1
2.9M
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Transcript
Birthday Greetings Kata Manuel Rivero @trikitrok
The kata Created by Matteo Vaccari. Alistair Cockburn's:
Ports and Adapters. a. k. a. Hexagonal Architecture Refactoring version.
The initial code Clone it from: https://github.com/trikitrok/BirthdayGreetingsKata SCBCN2013InitialCode
The initial code 1. Read employee records from a file.
2. Filter employees whose birthday is today. 3. Send a personalized greetings message by email.
Problems BirthdayService Has too many responsibilities. Depends
on low level APIs. Talks with external systems. ...
Ports and Adapters
In the ports and adapters architecture Domain Model depends
on nothing Everything depends on the domain model
Ports and Adapters
Benefits Easier to change as requirements change Easier
to test Easier to understand
Ports and Adapters
Ports and Adapters
Ports and Adapters Port Façade (interface) → Adapter
Concrete → implementation
Ports and Adapters
Refactoring technique Small steps! Keep tests green at
all times!
Refactoring approach 1. Identify a responsibility 2. Extract a method
3. Create a new class 4. Move that method to the new class
Refactoring guides Single Responsibility Principle First at function
level, then at class level. Dependency Inversion Principle
None
Let's start!