-
Notifications
You must be signed in to change notification settings - Fork 1
/
01_06_DIP.html
133 lines (100 loc) · 4.24 KB
/
01_06_DIP.html
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>Principio de Inversión de Dependencia</title>
<link rel="stylesheet" href="./css/reveal.css" />
<link rel="stylesheet" href="./css/theme/league.css" id="theme" />
<link rel="stylesheet" href="./css/highlight/zenburn.css" />
<link rel="stylesheet" href="./css/print/paper.css" type="text/css" media="print" />
<link rel="stylesheet" href="./_assets/slides/css/filminas.css" />
</head>
<body>
<div class="reveal">
<div class="slides"><section data-markdown><script type="text/template">
# Principios de Diseño SOLID
## Principio de Inversión de Dependencia
<small>
Created by <br />
[rmarku]("https://t.me/rmarku") <i class="fab fa-telegram"></i>
</small>
</script></section><section data-markdown><script type="text/template">
### Principio de Inversión de Dependencia
_"High-level modules should not depend on low-level modules. Both should depend on abstractions"_
</script></section><section data-markdown><script type="text/template">
![Principios Solid](images/solid/DependencyInversion.jpg)
</script></section><section data-markdown><script type="text/template">
### Principio de Inversión de Dependencia
* Los módulos de alto nivel no deben depender de los módulos
de bajo nivel, ambos deben depender de abstracciones.
* Las abstracciones no deben depender de los detalles, los
detalles deben depender de las abstracciones.
</script></section><section data-markdown><script type="text/template">
### Principio de Inversión de Dependencia
#### ¿Sobre qué artefactos aplica este principio?
* Clases
* Módulos
#### ¿Qué beneficios trae el trabajar con este principio?
* Bajo acoplamiento
* Testeabilidad.
* Flexibilidad
</script></section><section data-markdown><script type="text/template">
### Principio de Inversión de Dependencia
#### ¿Cuándo debemos aplicar este principio?
* Cuando hace falta desacoplar piezas de software que pueden
cambiar en el futuro.
* Cuando el nivel de acoplamiento en el código es algo.
</script></section><section data-markdown><script type="text/template">
### Principio de Inversión de Dependencia
#### Argumentos en contra de este principio
* Requiere mayor experiencia
* Requiere más esfuerzo el diseñar los artefactos
* Demasiadas interfaces
* Complicado entender el panorama general del diseño
</script></section><section data-markdown><script type="text/template">
# Demo</script></section></div>
</div>
<script src="./js/reveal.js"></script>
<script>
function extend() {
var target = {};
for (var i = 0; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
if (source.hasOwnProperty(key)) {
target[key] = source[key];
}
}
}
return target;
}
// Optional libraries used to extend on reveal.js
var deps = [
{ src: './plugin/markdown/marked.js', condition: function() { return !!document.querySelector('[data-markdown]'); } },
{ src: './plugin/markdown/markdown.js', condition: function() { return !!document.querySelector('[data-markdown]'); } },
{ src: './plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
{ src: './plugin/zoom-js/zoom.js', async: true },
{ src: './plugin/notes/notes.js', async: true },
{ src: './plugin/math/math.js', async: true }
];
// default options to init reveal.js
var defaultOptions = {
controls: true,
progress: true,
history: true,
center: true,
transition: 'default', // none/fade/slide/convex/concave/zoom
dependencies: deps
};
// options from URL query string
var queryOptions = Reveal.getQueryHash() || {};
var options = extend(defaultOptions, {"controls":true,"progress":true,"slideNumber":true}, queryOptions);
</script>
<script src="./_assets/slides/js/pruebas.js"></script>
<script src="./_assets/slides/js/init.js"></script>
<script>
Reveal.initialize(options);
</script>
</body>
</html>