Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Functional Design for Reference Architectures
Jeferson David Ossa
March 19, 2018
Technology
2
220
Functional Design for Reference Architectures
https://nescala.io/2018/#schedule
https://scala.io/2018/talks.html#/#TOX-4454
Jeferson David Ossa
March 19, 2018
Tweet
Share
More Decks by Jeferson David Ossa
See All by Jeferson David Ossa
implicit def bias = stereotypes |+| prejudices
jedossa
0
240
Exploring the Scala's Tooling Ecosystem
jedossa
0
490
Consistency without Clocks: The FaunaDB Distributed Transaction Protocol
jedossa
0
85
akka-cluster-k8s
jedossa
0
400
Other Decks in Technology
See All in Technology
スクラムのスケールとチームトポロジー / Scaled Scrum and Team Topologies
daiksy
1
440
Custom GitHub Actions by Java
kazamori
0
290
#JP_Stripes Sapporo Stripeの活用例を色々ご紹介します!
miu_crescent
0
110
マネージャーからみたスクラムと自己管理化
shibe23
0
1k
MRTK3 - DataBinding and Theming 入門
futo23
0
180
220628 「Google AppSheet」タスク管理アプリをライブ作成 吉積情報伊藤さん
comucal
PRO
0
210
アーキテクチャを明文化して開発に臨んだ話
akkie76
0
300
How to start with DDD when you have a Monolith
javujavichi
0
310
Modern Android dependency injection
hugovisser
1
130
Implementing Kubernetes operators in Java with Micronaut - TechWeek Java Summit 2022
alvarosanchez
0
120
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
3
9.1k
サーバレスECにおける Step Functions の使い方 〜ステートマシン全部見せます!〜
miu_crescent
0
190
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
85
3.9k
4 Signs Your Business is Dying
shpigford
169
20k
Large-scale JavaScript Application Architecture
addyosmani
499
110k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
100
5.9k
Statistics for Hackers
jakevdp
781
210k
Embracing the Ebb and Flow
colly
73
3.4k
Testing 201, or: Great Expectations
jmmastey
21
5.4k
GraphQLとの向き合い方2022年版
quramy
16
8.3k
Documentation Writing (for coders)
carmenhchung
48
2.6k
What the flash - Photography Introduction
edds
62
10k
Thoughts on Productivity
jonyablonski
43
2.3k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
29
4.3k
Transcript
Functional Design for Reference Architecture An experience report
About me Jeferson David Ossa @unyagami on twitter FP Professor
Developer at Seven4n
Context • Engineers with Java background (mostly) • Monolithic architecture
• Emerging market • Increasing business complexity • Need for speed • New needs, new approaches
Rediscovering FP • Reducing complexity ◦ Data in => Data
out ◦ Parameterize all things ◦ Type-safe ◦ Immutability • Growing complexity ◦ Apomorphisms ◦ Dynamorphisms ◦ Chronomorphisms ◦ Zygohistomorphic prepromorphisms
Object-Oriented Meets Functional FP Functions Functions Functions Functions Functions in
the small, objects in the large OO Single responsibility Open/Close Dependency inversion Factory pattern etc.
Challenges • Continue delivering business value • Onboarding new team
members • Lack of experts on FP • Stop doing “better Java” • Knowledge management
Our approach • Fine-grained control of decisions • Code/Tests as
documentation • An easy to evolve artifact • Everyone in the team can contribute • A framework was not enough
Reference architecture “A reference architecture is a set of documents
to which an interested party can refer to for best practices, common standards, specifications and patterns” - DDD - Microservices - CQRS - ADT - DSL/Tagless - Onion/Clean/Hexagonal architecture
Service View µ-service Ports/Adapters Domain Services Infrastructure ACL
Let's check out some code warning: boilerplate code ahead
Final thoughts • It is complex to get simple •
Abstractions have complexity costs • Keep studying • Focus on people • Measures of success
Thank you for listening! s4n.co