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
trikitrok
September 28, 2013
Programming
180
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
VibeCodingからAgenticWorkflowへ
starfish719
0
1.1k
楽しそうなつよつよエンジニアと目が死んでる僕/A brilliant engineer having a blast, and dead-eyed me.
3l4l5
2
270
いまどきの Codex で開発する visionOS アプリの開発スタイルについて
karad
0
180
AIに既存システムを理解させる技術 ~レガシーを見捨てないハーネスエンジニアリング入門~
ochtum
0
190
FDEとは、何者なのか?
masapyon1212
0
110
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.8k
[PyCon KR 2026] More Variants, More Diversity for AI Accelerators
achimnol
0
130
バグを直したら useEffect が消えた
colorful12
3
790
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
3
260
MySQLとPostgreSQLって何が違うの?
akagami
0
150
ソフトウェアラスタライザ
fadis
1
760
iOS開発×AI駆動開発 〜最近使って便利だったスキルの話〜
nogu66
0
130
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
Evolving SEO for Evolving Search Engines
ryanjones
0
270
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
390
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
700
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
sira's awesome portfolio website redesign presentation
elsirapls
0
380
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
590
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
850
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
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!