SlideShare ist ein Scribd-Unternehmen logo
1 von 47
Downloaden Sie, um offline zu lesen
HOLA!
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
Soy Aida Albarrán
@aidaispro
aidalbla@gmail.com
¿DE QUÉ VAMOS A HABLAR
HOY?
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
1. Javascript. No sabes Javascript, John Snow.
2. Clean Code. El arte de programar.
3. Testing. Para refactorizar, crear tests debes.
4. Asincronía. Esa gran “amiga”.
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
COMIENZOS
TESTING
TDD
SOLID
PATRONES DE
DISEÑO
FUNCIONES
QUERY
NO SABES JAVASCRIPT, JOHN SNOW
Primer encuentro con la realidad
1 JAVASCRIPT
CLEAN CODE
TESTING
2
3
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
ASINCRONÍA4
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
OBJETIVO FUNCIONES
BEFORE:
handleResponse(firstList){
const getAllPokeDatas = firstList.results.map(poke =>
this.getPokemonByUrl(poke.url));
}
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
OBJETIVO FUNCIONES
AFTER:
handleResponse(firstList){
firstList.results.forEach(poke =>
this.getPokemonByUrl(poke.url));
}
TIPOS DE FUNCIONES
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
QUERY ACTION (o COMMAND)
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
OBJETIVO FUNCIONES
AFTER:
BEFORE:
handleResponse(firstList){
firstList.results.forEach(poke => this.getPokemonByUrl(poke.url));
}
handleResponse(firstList){
firstList.results.forEach(poke => this.setPokemonByUrl(poke.url));
}
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
COMMAND QUERY SEPARATION (CQS)
EL ARTE DE SEPARAR
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
EDUCACIÓN PARA LA
CIUDADANÍA EN JAVASCRIPT
Maléfica
SON CIUDADANOS DE PRIMERA CLASE
PORQUE PUEDEN SER...
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
DEVUELTAS
por otras
funciones
ALMACENADAS
en variables
usadas como
PARÁMETROS
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
FUNCIONES COMO CIUDADANOS DE PRIMERA
function assignClass(className) {
return function(element) { //Se devuelve esta función
document.getElementbyId(element).classList.add(className);
}
}
const hideElement = assignClass('hide'); // Que se almacena en esta
variable
hideElement('myId'); //Ejecuto la función almacenada
const pokemonNames = pokemons.map(function(pokemon){
return pokemon.name;
});
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
FUNCIONES COMO CIUDADANOS DE
PRIMERA CLASE
SIRVEN IGUAL PARA UN ROTO QUE PARA UN “DESCOSÍO”
EL ARTE DE PROGRAMAR
Código limpio y sin malos olores
2
JAVASCRIPT
CLEAN CODE
TESTING
1
3
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
ASINCRONÍA4
Any fool can write code that a computer
can understand. Good programmers write
code that humans can understand.
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
—Martin Fowler.
“
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
SINGLE
RESPONSIBILITY
DEPENDENCY
INVERSION
PRINCIPIOS S.O.L.I.D.
SOY UNA ARTISTA
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
VISTA
LÓGICA DE
NEGOCIO /
MODELO
PERSISTENCIA
DE DATOS
CONTROLADOR
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
export interface TweetInfo {
tweetid: string
followers: number
retweets: number
favs: number
date: string
...
}
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
PRIMITIVE OBSESSION SMELL
CODE SMELLS QUE NO HUELEN MUY BIEN
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
export interface TweetInfo {
tweetid: string
followers: number
retweets: number
favs: number
date: string
...
}
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
VALUE OBJECT
Objetos que lo valen. Tanto es así, que se diferencian unos de otros
por su valor, pero conservan la misma estructura y además son
inmutables.
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
interface PersonProps {
name: string;
age: number;
}
VALUE OBJECT APLICADO
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
import { valueObject, type } from "valueobject.ts";
class Person extends valueObject({
name: type.string,
age: type.number,
}) {
constructor(args: PersonProps) {
super(args);
if (!this.validateAge()) throw new Error('INVALID_AGE');
}
validateAge(): boolean {
if (this.age < 0) return false;
return true;
}
}
VALUE OBJECT APLICADO
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
function printPerson(person: Person) {
console.log('Se ha creado:', person);
}
const personData = {
name: "Aida",
age: 25
};
const person = new Person(personData);
printPerson(person);
VALUE OBJECT APLICADO
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
function printPerson(person: Person) {
console.log('Se ha creado:' , person);
}
const personData = {
name: "Aida",
age: -20
};
const person = new Person(personData);
printPerson(person);
VALUE OBJECT APLICADO
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
VALUE OBJECT APLICADO
export interface TweetInfo {
tweetid: string
followers: number
retweets: number
favs: number
date: string
...
}
PARA REFACTORIZAR, CREAR TESTS
DEBES
O cómo el testing me ayudó a
mejorar mi código.
3
JAVASCRIPT
CLEAN CODE
TESTING
1
2
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
ASINCRONÍA4
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
TESTING Y REFACTOR
Comportamiento MOBILE
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
TESTING Y REFACTOR
Comportamiento DESKTOP
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
TESTING Y REFACTOR
context('Active and not active elements management' , () => {
function checkIfElementsAreActive(listItem, itemContainer , itemSubmenu) {
expect(listItem.getAttribute('aria-expanded' )).to.be.equal('true');
expect(listItem.querySelector('menu-item').className).to.contain('active');
expect(itemContainer .className).to.contain('active');
expect(itemSubmenu.className).to,contain('active');
}
function checkIfElementsAreNotActive(listItem, itemContainer , itemSubmenu) {
expect(listItem.getAttribute('aria-expanded' )).to.be.equal('false');
expect(listItem.querySelector('menu-item').className).not.to.contain('active');
expect(itemContainer .className).not.to.contain('active');
expect(itemSubmenu.className).not.to,contain('active');
}
//...
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
TESTING Y REFACTOR
it ('should close active menu elements after click ', (done) => {
flush(() => {
const currentItem = sut.shadowRoot.querySelectorAll('menu-item')[1];
const mockEvent = { currentTarget : currentItem .parentNode,};
sut.toggleMenuItem(mockEvent);
const listItem = currentItem .parentNode;
const itemContainer = listItem.parentNode;
const itemSubmenu = itemContainer .querySelector('submenu').shadowRoot...
checkIfElementsAreActive(listItem, itemContainer , itemSubmenu );
sut.closeSubmenu();
checkIfElementsAreNotActive(listItem, itemContainer , itemSubmenu );
done();
});
});
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
TESTING Y REFACTOR
Momento de refactorizar
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
TDD
Deja que los test “conduzcan” y controlen tus funciones.
ASINCRONÍA
Esa gran amiga a la que todos los
desarrolladores de Javascript
“amamos”.
4
JAVASCRIPT
CLEAN CODE
TESTING
1
2
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
ASINCRONÍA
3
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
it ('should close active menu elements after click ', (done) => {
flush(() => {
const currentItem = sut.shadowRoot.querySelectorAll('menu-item')[1];
const mockEvent = { currentTarget : currentItem .parentNode,};
sut.toggleMenuItem(mockEvent);
const listItem = currentItem .parentNode;
const itemContainer = listItem.parentNode;
const itemSubmenu = itemContainer .querySelector('submenu').shadowRoot...
checkIfElementsAreActive(listItem, itemContainer , itemSubmenu );
sut.closeSubmenu();
checkIfElementsAreNotActive(listItem, itemContainer , itemSubmenu );
done();
});
});
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
LENGTH
EN ARRAY:
EN STRING:
EN NUMBER Y OBJECT:
const myArray = ['Besis', 'de', 'fresi'];
console.log(myArray.length); // 3
const myText = 'Besis';
console.log(myText.length); // 5
const myNumber = 4;
console.log(myNumber.length); // undefined
const myObject = {};
console.log(myObject.length); // undefined
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
LENGTH
EN FUNCTION:
function myFunction() {
// Hago cosas
}
console.log(myFunction.length); // 0
function myFunctionWithArguments(name, age, phone)
{
// Hago cosas
}
console.log(myFunctionWithArguments .length); // 3
it ('should close active menu elements after click ', (done) => {
flush(() => {
const currentItem = sut.shadowRoot.querySelectorAll('menu-item')[1];
const mockEvent = { currentTarget : currentItem .parentNode,};
sut.toggleMenuItem(mockEvent);
const listItem = currentItem .parentNode;
const itemContainer = listItem.parentNode;
const itemSubmenu = itemContainer .querySelector('submenu').shadowRoot...
checkIfElementsAreActive(listItem, itemContainer , itemSubmenu );
sut.closeSubmenu();
checkIfElementsAreNotActive(listItem, itemContainer , itemSubmenu );
done();
});
});
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
LENGTH
Una propiedad con más usos que el aceite de oliva virgen extra.
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
V8
ECMAScript
SETTIMEOUT Y SETINTERVAL
- Navegadores
- Nodejs
SpiderMonkey ...
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
MOTOR JS + APIS DEL NAVEGADOR
El extra que te ofrecen los navegadores para hacer tu experiencia
con Javascript más placentera....
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
WEB APIS
Fn
MOTOR JS
FIFO
STACK/PILA
Fn
Fn
HEAP
DOM
SetTimeout..
AJAX
EVENT LOOP
X
...
CALLBACKS QUEUE
onClick cb cb cb
EVENT LOOP EN NAVEGADORES
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
setTimeout(function firstCallback() {
console.log('Primer log de SETTIMEOUT');
}, 0);
console.log('Primer log de FUERA');
setTimeout(function secondCallback() {
console.log('Segundo log de
SETTIMEOUT');
}, 0);
console.log('Segundo log de FUERA');
EVENT LOOP EN NAVEGADORES
STACK/PILA
setTimeout
(firstCallback)
WEB APIS
EVENT LOOP
X
...
CALLBACKS QUEUE
//Primer log de FUERA
//Segundo log de FUERA
//Primer log de SETTIMEOUT
//Segundo log de SETTIMEOUT
firstCallback
main()
log(1º FUERA)
setTimeout
(secondCallback)
secondCallback
firstCallback
log(2º FUERA)
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
EVENT LOOP
La magia de posibilitar hacer varias cosas “a la vez” y del mismo
modo volvernos locos con la concurrencia...
¡GRACIAS!
¿Alguna pregunta?
@aidaispro
aidalbla@gmail.com
ENLACES DE APOYO
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
Estos son los enlaces a los videos mencionados en la charla y otros
canales de interés.
● Quiero ser una desarrolladora del montón. By Azahara Fernández
● Javascript, the Unknown. By Carlos Hernández
● What the heck is the Event Loop anyway?. By Philip Roberts.
● Canal de youtube de Carlos Blé.

Weitere ähnliche Inhalte

Was ist angesagt?

Problemas propuestos2.0
Problemas propuestos2.0Problemas propuestos2.0
Problemas propuestos2.0
YO Por Que
 
taller administrar bd mysql desde php
taller administrar bd mysql desde phptaller administrar bd mysql desde php
taller administrar bd mysql desde php
El Progreso
 
Procesar estado
Procesar estadoProcesar estado
Procesar estado
Lismirabal
 
Programa que almacena en una base de datos las características de un carro co...
Programa que almacena en una base de datos las características de un carro co...Programa que almacena en una base de datos las características de un carro co...
Programa que almacena en una base de datos las características de un carro co...
jbersosa
 
Quasi - Practicas de Programacion en C
Quasi - Practicas de Programacion en CQuasi - Practicas de Programacion en C
Quasi - Practicas de Programacion en C
degarden
 
Php y my sql con manejo de sesiones
Php y my sql con manejo de sesionesPhp y my sql con manejo de sesiones
Php y my sql con manejo de sesiones
capo1988
 
Charla Jquery
Charla JqueryCharla Jquery
Charla Jquery
kaolong
 
Ejercicios en Netbeans
Ejercicios en NetbeansEjercicios en Netbeans
Ejercicios en Netbeans
edgar muñoz
 

Was ist angesagt? (20)

Doctrine2 sf2Vigo
Doctrine2 sf2VigoDoctrine2 sf2Vigo
Doctrine2 sf2Vigo
 
Noticias de negocios, Finanzas Personales y Dinero de Noticias
Noticias de negocios, Finanzas Personales y Dinero de NoticiasNoticias de negocios, Finanzas Personales y Dinero de Noticias
Noticias de negocios, Finanzas Personales y Dinero de Noticias
 
Problemas propuestos2.0
Problemas propuestos2.0Problemas propuestos2.0
Problemas propuestos2.0
 
Introducción a JQuery
Introducción a JQueryIntroducción a JQuery
Introducción a JQuery
 
taller administrar bd mysql desde php
taller administrar bd mysql desde phptaller administrar bd mysql desde php
taller administrar bd mysql desde php
 
Procesar estado
Procesar estadoProcesar estado
Procesar estado
 
Noticias de negocios, Finanzas Personales y Dinero de Noticias
Noticias de negocios, Finanzas Personales y Dinero de NoticiasNoticias de negocios, Finanzas Personales y Dinero de Noticias
Noticias de negocios, Finanzas Personales y Dinero de Noticias
 
Programa que almacena en una base de datos las características de un carro co...
Programa que almacena en una base de datos las características de un carro co...Programa que almacena en una base de datos las características de un carro co...
Programa que almacena en una base de datos las características de un carro co...
 
jQuery
jQueryjQuery
jQuery
 
Intro aplicaciones web con php
Intro aplicaciones web con phpIntro aplicaciones web con php
Intro aplicaciones web con php
 
Quasi - Practicas de Programacion en C
Quasi - Practicas de Programacion en CQuasi - Practicas de Programacion en C
Quasi - Practicas de Programacion en C
 
Mantenimiento de Usuarios usando MVC ver1
Mantenimiento de Usuarios usando MVC ver1Mantenimiento de Usuarios usando MVC ver1
Mantenimiento de Usuarios usando MVC ver1
 
Lista dinamica
Lista dinamicaLista dinamica
Lista dinamica
 
Php y my sql con manejo de sesiones
Php y my sql con manejo de sesionesPhp y my sql con manejo de sesiones
Php y my sql con manejo de sesiones
 
Charla Jquery
Charla JqueryCharla Jquery
Charla Jquery
 
Create database reservacodigos
Create database reservacodigosCreate database reservacodigos
Create database reservacodigos
 
Informe chabot
Informe chabotInforme chabot
Informe chabot
 
Servlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTMLServlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTML
 
Trabajo array
Trabajo arrayTrabajo array
Trabajo array
 
Ejercicios en Netbeans
Ejercicios en NetbeansEjercicios en Netbeans
Ejercicios en Netbeans
 

Ähnlich wie Primitive Obsession. FrontFest 2020

Practica utilizacion de beans en jsp
Practica  utilizacion de beans en jspPractica  utilizacion de beans en jsp
Practica utilizacion de beans en jsp
Boris Salleg
 
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
luis freddy
 
Informe grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencaInforme grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuenca
paulcuenca9
 
Java::Acceso a Bases de Datos
Java::Acceso a Bases de DatosJava::Acceso a Bases de Datos
Java::Acceso a Bases de Datos
jubacalo
 
Object Oriented Javascript
Object Oriented JavascriptObject Oriented Javascript
Object Oriented Javascript
Gabriel Chertok
 
3 desarollo manejo datos capitulo 3 -01 arreglo objetos
3 desarollo manejo datos capitulo 3 -01 arreglo objetos3 desarollo manejo datos capitulo 3 -01 arreglo objetos
3 desarollo manejo datos capitulo 3 -01 arreglo objetos
luis freddy
 

Ähnlich wie Primitive Obsession. FrontFest 2020 (20)

Practica utilizacion de beans en jsp
Practica  utilizacion de beans en jspPractica  utilizacion de beans en jsp
Practica utilizacion de beans en jsp
 
Informe Final Del Proyecto Poo
Informe Final Del Proyecto PooInforme Final Del Proyecto Poo
Informe Final Del Proyecto Poo
 
05. Creando e implementando objetos y métodos
05. Creando e implementando objetos y métodos05. Creando e implementando objetos y métodos
05. Creando e implementando objetos y métodos
 
REPORTE RUBI VERONICA J3 ISC A
REPORTE RUBI VERONICA J3 ISC AREPORTE RUBI VERONICA J3 ISC A
REPORTE RUBI VERONICA J3 ISC A
 
Informe Tecnico Unidad 1 (Rubi veronica)
Informe Tecnico Unidad 1 (Rubi veronica)Informe Tecnico Unidad 1 (Rubi veronica)
Informe Tecnico Unidad 1 (Rubi veronica)
 
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
 
Jquery parte 1
Jquery parte 1Jquery parte 1
Jquery parte 1
 
Javascript OOP
Javascript OOPJavascript OOP
Javascript OOP
 
Clase 7 objetos globales de javaScript
Clase 7 objetos globales de javaScriptClase 7 objetos globales de javaScript
Clase 7 objetos globales de javaScript
 
Javascript es6-ejercicios-resueltos-parte-2
Javascript es6-ejercicios-resueltos-parte-2Javascript es6-ejercicios-resueltos-parte-2
Javascript es6-ejercicios-resueltos-parte-2
 
ProyectoFinal-Reporte
ProyectoFinal-ReporteProyectoFinal-Reporte
ProyectoFinal-Reporte
 
Desarrollo de práctica para un modelo de tres capas
Desarrollo de práctica para un modelo de tres capasDesarrollo de práctica para un modelo de tres capas
Desarrollo de práctica para un modelo de tres capas
 
Informe grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencaInforme grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuenca
 
EXAMEN
EXAMENEXAMEN
EXAMEN
 
Java::Acceso a Bases de Datos
Java::Acceso a Bases de DatosJava::Acceso a Bases de Datos
Java::Acceso a Bases de Datos
 
Object Oriented Javascript
Object Oriented JavascriptObject Oriented Javascript
Object Oriented Javascript
 
Prac1
Prac1Prac1
Prac1
 
3 desarollo manejo datos capitulo 3 -01 arreglo objetos
3 desarollo manejo datos capitulo 3 -01 arreglo objetos3 desarollo manejo datos capitulo 3 -01 arreglo objetos
3 desarollo manejo datos capitulo 3 -01 arreglo objetos
 
Guia 12 js
Guia 12 jsGuia 12 js
Guia 12 js
 
Taller desarrollo de apis
Taller desarrollo de apisTaller desarrollo de apis
Taller desarrollo de apis
 

Kürzlich hochgeladen

SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
EdwinC23
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
evercoyla
 
sistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gstsistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gst
DavidRojas870673
 
Tipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplosTipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplos
andersonsubero28
 
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdfUC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
refrielectriccarlyz
 

Kürzlich hochgeladen (20)

Matrices Matemáticos universitario pptx
Matrices  Matemáticos universitario pptxMatrices  Matemáticos universitario pptx
Matrices Matemáticos universitario pptx
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docx
 
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJODIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
 
Presentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potablePresentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potable
 
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
 
G4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptx
G4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptxG4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptx
G4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptx
 
2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica
 
libro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacioneslibro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operaciones
 
3er Informe Laboratorio Quimica General (2) (1).pdf
3er Informe Laboratorio Quimica General  (2) (1).pdf3er Informe Laboratorio Quimica General  (2) (1).pdf
3er Informe Laboratorio Quimica General (2) (1).pdf
 
Manual deresolucion de ecuaciones por fracciones parciales.pdf
Manual deresolucion de ecuaciones por fracciones parciales.pdfManual deresolucion de ecuaciones por fracciones parciales.pdf
Manual deresolucion de ecuaciones por fracciones parciales.pdf
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
 
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
 
Aportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdf
Aportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdfAportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdf
Aportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdf
 
Video sustentación GA2- 240201528-AA3-EV01.pptx
Video sustentación GA2- 240201528-AA3-EV01.pptxVideo sustentación GA2- 240201528-AA3-EV01.pptx
Video sustentación GA2- 240201528-AA3-EV01.pptx
 
sistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gstsistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gst
 
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEstadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
 
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
 
Cereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. CerealesCereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. Cereales
 
Tipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplosTipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplos
 
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdfUC Fundamentos de tuberías en equipos de refrigeración m.pdf
UC Fundamentos de tuberías en equipos de refrigeración m.pdf
 

Primitive Obsession. FrontFest 2020