-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrefactoring_fat_models_with_service_layers.slide
114 lines (75 loc) · 2.39 KB
/
refactoring_fat_models_with_service_layers.slide
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
Refactoring Fat Models With Service Layers
Omar Mekky
Cofounder & CTO, Almakinah
@cousine
https://github.com/cousine
* Hi there!
.image assets/introduction.gif 500 _
: introducing myself, experience and some ice breaking
: programmer since I was 13
: moved into web development in 2003
: college dropout
* Hi there!
.image assets/jumbo.jpg 500 _
: cat lover
: have cats
* Hi there!
.image assets/cats.jpg 500 _
: have a lot of cats
: talk to me after if you want to adopt
* Hi there!
.image assets/falafilo.jpg 500 _
: dog lover (recently), just the one dog
* Technical stuff
.image assets/logos.png 500 _
: co-founded mash, Ltd. in 2008
: working with Rails since 2008
: published in Rails Magazine twice
: author of Authentasaurus and Mebla for ElasticSearch
: Egypt On Rails
: Ruby & Rails evangelist
: teaching Rails exclusevly for 3 years CareerFoundry + Almakinah
* Using Rails in 2018
.image assets/rails.png
: Explain the evolution:
: why we chose Rails to begin with?
: why not Java? why not PHP?
: why not .NET?
: how the field have changed? (frontend/backend evolution, architecture,... etc)
: why are we still sticking to Rails?
: how is using Rails different in 2018, the pros and cons
* Monolith vs Micro-services
: Explain the problems:
: what is a monolith application?
: what is a micro-services application?
: which is best? monolith or micro-services? when to use each?
* Monolith
.image assets/monolith.gif 500 _
: One application to rule them all
: Vertical scaling
: Horizontal scaling on the server layer
: Hard to maintain
: Hard to onboard new developers
: Slow bootup
: One failure, fails the whole application
* Micro-services
.image assets/microservices.gif 500 _
: Small applications, separate concerns
: Horizontal scaling from day one
: Easy to maintain
: Easy to onboard new developers (given orchestration)
: One failure affects just one service
* Why not both!
.image assets/both.gif 500 _
: Explain the solution:
: We still can benefit from monolith applications within a microservices arch
: How Rails can be manipulated and organised to combine the best of both worlds
: By strucuring monolith applications we can avert the cons
* Demo time!
.image assets/ready.gif 300 _
* Questions
- Slides for this talk at
.link https://github.com/cousine/talks-presentations
- Code for this talk at
.link https://github.com/cousine/authentication-mvc-demo