Una historia en la que los capítulos tendrán como protagonistas conceptos interesantes que me han marcado, como newbie que soy, en el camino de mi aprendizaje.
Estos conceptos tienen que ver con las buenas prácticas y con la singular naturaleza de este nuestro querido Javascript, pero no nos limitaremos a explicarlos, porque, como he dicho, es una historia y va a estar basada en mi corta experiencia, y con ejemplos concretos.
3. ¿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”.
5. NO SABES JAVASCRIPT, JOHN SNOW
Primer encuentro con la realidad
1 JAVASCRIPT
CLEAN CODE
TESTING
2
3
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
ASINCRONÍA4
12. SON CIUDADANOS DE PRIMERA CLASE
PORQUE PUEDEN SER...
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
DEVUELTAS
por otras
funciones
ALMACENADAS
en variables
usadas como
PARÁMETROS
13. 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;
});
15. EL ARTE DE PROGRAMAR
Código limpio y sin malos olores
2
JAVASCRIPT
CLEAN CODE
TESTING
1
3
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
ASINCRONÍA4
16. Any fool can write code that a computer
can understand. Good programmers write
code that humans can understand.
PRIMITIVEOBSESSION/AIDAALBARRÁN@aidaispro
—Martin Fowler.
“
28. 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
35. 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
36. 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();
});
});
37. 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
47. 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é.