From Functional Languages
to Functional Architectures
Juliano Alves
@vonjuliano
juliano-alves.com
October 20-21-22, 2020
Slide 2
Slide 2 text
Who am I?
● Software Engineer,
Searcher of perfect modularization,
Lover of Functional Languages
● The cool ones
Scala, Clojure, Elixir
● The "vintage" ones
Java, C#, Python, Ruby
@vonjuliano
juliano-alves.com
Slide 3
Slide 3 text
No content
Slide 4
Slide 4 text
What is software?
"Software is representation of
knowledge"
Slide 5
Slide 5 text
How do we organise that knowledge?
"Software tends to be organised
the same way, in different levels"
Slide 6
Slide 6 text
COMPUTATION
INPUT OUTPUT
Slide 7
Slide 7 text
SERVICE A SERVICE B SERVICE C
SERVICE D
SERVICE E
SERVICE F
SERVICE G SERVICE H SERVICE I
Slide 8
Slide 8 text
COMPUTATION
INPUT OUTPUT
Slide 9
Slide 9 text
They behave as Functions.
Slide 10
Slide 10 text
f(x)
x y
Slide 11
Slide 11 text
No content
Slide 12
Slide 12 text
Http Server
http
request
http
response
Slide 13
Slide 13 text
No content
Slide 14
Slide 14 text
No content
Slide 15
Slide 15 text
No content
Slide 16
Slide 16 text
State
Slide 17
Slide 17 text
No content
Slide 18
Slide 18 text
No content
Slide 19
Slide 19 text
No content
Slide 20
Slide 20 text
final var album = new ArrayList();
album.add(picture1);
album.add(picture2);
System.out.println(album);
// [pic1, pic2]
album.set(1, picture3);
System.out.println(album);
// [pic1, pic3]
Slide 21
Slide 21 text
val album = List[Picture](picture1, picture2)
println(album)
// [pic1, pic2]
album.updated(1, picture3)
println(album)
// [pic1, pic2]
val newAlbum = album.updated(1, picture3)
println(newAlbum)
// [pic1, pic3]