Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
MatteoVaccariBirthdayGreetingsKataInSCBCN2013
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
SREの越境 / SRE Collaboration
y0hgi
2
300
mrbgem 三角測量 開発
ogom
0
230
Workers Cache を知る
syumai
0
350
Are APIs Still Relevant in the AI Era?
soyuka
0
450
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
370
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
610
最近”作らせてる” ローカルAIアプリの話
akit37
0
440
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
150
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
200
残高管理から台帳サービスへの進化
artoy
0
180
速習iPhone Duo対応
yuukiw00w
2
980
phperだってパンチカードでコーディングしたい
o0h
PRO
0
270
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
50
15k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
400
Building Adaptive Systems
keathley
44
3.2k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Code Review Best Practice
trishagee
74
20k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
620
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Producing Creativity
orderedlist
PRO
348
41k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
58k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
620
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!