Skip to content

Commit debd7b2

Browse files
Spanish translation day 20 of 30
1 parent 44e4782 commit debd7b2

File tree

2 files changed

+378
-2
lines changed

2 files changed

+378
-2
lines changed

Spanish/dia_19_Closures/dia_19_closures.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
</div>
1616

17-
[<< Día 18](../dia_18_Promesas/dia_18_Promesas.md) | [Día 20 >>](..)
17+
[<< Día 18](../dia_18_Promesas/dia_18_Promesas.md) | [Día 20 >>](../dia_20_Escribiendo_Codigos_Limpios/dia_20_escribiendo_codigos_limpios.md)
1818

1919
![Thirty Days Of JavaScript](../images/banners/day_1_19.png)
2020

@@ -102,4 +102,4 @@ console.log(innerFuncs.minusOne);
102102

103103
🎉 ¡FELICITACIONES! 🎉
104104

105-
[<< Día 18](../dia_18_Promesas/dia_18_Promesas.md) | [Día 20 >>](..)
105+
[<< Día 18](../dia_18_Promesas/dia_18_Promesas.md) | [Día 20 >>](../dia_20_Escribiendo_Codigos_Limpios/dia_20_escribiendo_codigos_limpios.md)
Lines changed: 376 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,376 @@
1+
<div align="center">
2+
<h1> 30 Días de JavaScript: Escribiendo Códigos Limpios</h1>
3+
<a class="header-badge" target="_blank" href="https://www.linkedin.com/in/asabeneh/">
4+
<img src="https://img.shields.io/badge/style--5eba00.svg?label=LinkedIn&logo=linkedin&style=social">
5+
</a>
6+
<a class="header-badge" target="_blank" href="https://twitter.com/Asabeneh">
7+
<img alt="Twitter Follow" src="https://img.shields.io/twitter/follow/asabeneh?style=social">
8+
</a>
9+
10+
<sub>Autor:
11+
<a href="https://www.linkedin.com/in/asabeneh/" target="_blank">Asabeneh Yetayeh</a><br>
12+
<small> Enero, 2020</small>
13+
</sub>
14+
15+
</div>
16+
17+
[<< Día 19](../dia_19_Closures/dia_19_closures.md) | [Día 21 >>](..)
18+
19+
![Thirty Days Of JavaScript](../images/banners/day_1_20.png)
20+
21+
- [Día 20](#día-20)
22+
- [Escribiendo código limpio](#escribiendo-código-limpio)
23+
- [Guía de estilo JavaScript](#guía-de-estilo-javascript)
24+
- [¿Por qué necesitamos una guía de estilo?](#¿por-qué-necesitamos-una-guía-de-estilo)
25+
- [Guía de estilo JavaScript de Airbnb](#guía-de-estilo-javascript-de-airbnb)
26+
- [Guía de estilo estándar de JavaScript](#guía-de-estilo-estándar-de-javascript)
27+
- [Guía de estilo JavaScript de Google](#guía-de-estilo-javascript-de-google)
28+
- [Convenciones de codificación en JavaScript](#convenciones-de-codificación-en-javascript)
29+
- [Convenciones usadas en 30DíasDeJavaScript](#convenciones-usadas-en-30díasdejavascript)
30+
- [Variables](#variables)
31+
- [Arrays](#arrays)
32+
- [Funciones](#funciones)
33+
- [Bucles](#bucles)
34+
- [Objetos](#objetos)
35+
- [Condicional](#condicional)
36+
- [Clases](#clases)
37+
38+
# Día 20
39+
40+
## Escribiendo código limpio
41+
42+
### Guía de estilo JavaScript
43+
44+
Una guía de estilo de JavaScript es un conjunto de normas que indica cómo debe escribirse y organizarse el código de JavaScript. En esta sección, hablaremos de las guías de JavaScript y de cómo escribir un código limpio.
45+
46+
JavaScript es un lenguaje de programación, como el lenguaje humano, tiene una sintaxis. La sintaxis de JavaScript debe escribirse siguiendo una determinada pauta de estilo para convencer y simplificar.
47+
48+
### ¿Por qué necesitamos una guía de estilo?
49+
50+
Has estado codificando solo durante mucho tiempo, pero ahora parece que trabajas en equipo. No importa de qué manera escribas tu código, siempre y cuando funcione, sin embargo, cuando trabajas en un equipo de 10, 20 o más desarrolladores en un proyecto y en la misma base de código, el código será desordenado y difícil de manejar si no hay ninguna guía a seguir.
51+
52+
Puede desarrollar sus propias directrices y convenciones o también puede adaptar directrices bien desarrolladas. Conozcamos las guías más comunes.
53+
54+
Guías de estilo de JavaScript más comunes
55+
56+
- Guía de estilo JavaScript de Airbnb
57+
- Guía de estilo estándar de JavaScript
58+
- Guía de estilo JavaScript de Google
59+
60+
#### Guía de estilo JavaScript de Airbnb
61+
62+
Airbnb tiene una de las guías de estilo JavaScript más populares de Internet. También cubre casi todos los aspectos de JavaScript y es adoptado por muchos desarrolladores y empresas. Puede consultar la [Guía de estilo de Airbnb](https://github.com/airbnb/javascript). Yo también recomendaría probarlo. Su estilo es muy fácil de usar y sencillo de entender.
63+
64+
#### Guía de estilo estándar de JavaScript
65+
66+
Esta guía no es tan popular como la de Airbnb, pero merece la pena echarle un vistazo. Han eliminado el punto y coma en su [guía de estilo](https://standardjs.com/).
67+
68+
#### Guía de estilo JavaScript de Google
69+
70+
No diré mucho sobre la guía de Google. No las he usado, más bien te sugiero que eches un vistazo desde este [link](https://google.github.io/styleguide/jsguide.html).
71+
72+
### Convenciones de codificación en JavaScript
73+
74+
En este desafío también utilizamos las convenciones y guías generales de codificación de JavaScript. Las convenciones de codificación son pautas de estilo de programación desarrolladas por un individuo, un equipo o una empresa.
75+
76+
Las convenciones de codificación ayudan:
77+
78+
- para escribir un código limpio
79+
- para mejorar la legibilidad del código
80+
- para mejorar la reutilización y el mantenimiento del código
81+
82+
Las convenciones de codificación incluyen
83+
84+
- Reglas de declaración y denominación de las variables
85+
- Reglas de declaración y denominación de las funciones
86+
- Reglas para el uso de espacios en blanco, sangría y comentarios
87+
- Prácticas y principios de programación
88+
89+
#### Convenciones usadas en 30DíasDeJavaScript
90+
91+
En este reto seguimos la convención habitual de JavaScript pero he añadido también mi preferencia de escritura.
92+
93+
- Utilizamos camelCase para las variables y las funciones.
94+
- Todos los nombres de las variables comienzan con una letra.
95+
- Hemos optado por utilizar _const_ para las constantes, los arrays, los objetos y las funciones. En lugar de las comillas dobles, hemos optado por utilizar las comillas simples o backtick. Las comillas simples se están poniendo de moda.
96+
- También hemos eliminado el punto y coma de nuestro código, pero es una cuestión de preferencia personal.
97+
- Espacio alrededor de los operadores aritméticos, operadores de asignación y después de la coma
98+
- Función de flecha en lugar de declaración de función
99+
- Retorno explícito en lugar de implícito si la función es de una línea
100+
- No hay coma final en el último valor de un objeto
101+
- Preferimos este +=, -=, \*= /=, \*\*= en lugar de la versión más larga
102+
- Cuando usamos console.log() es bueno imprimir con una cadena de etiquetas para identificar de dónde viene la consola
103+
104+
#### Variables
105+
106+
```js
107+
let firstName = "Asabeneh";
108+
let lastName = "Yetayeh";
109+
let country = "Finland";
110+
let city = "Helsinki";
111+
112+
const PI = Math.PI;
113+
const gravity = 9.81;
114+
```
115+
116+
#### Arrays
117+
118+
Hemos optado por hacer que los nombres de los arrays sean plurales
119+
120+
- names
121+
- numbers
122+
- countries
123+
- languages
124+
- skills
125+
- fruits
126+
- vegetables
127+
128+
```js
129+
// arrays
130+
const names = ["Asabeneh", "Mathias", "Elias", "Brook"];
131+
const numbers = [0, 3.14, 9.81, 37, 98.6, 100];
132+
const countries = ["Finland", "Denmark", "Sweden", "Norway", "Iceland"];
133+
const languages = ["Amharic", "Arabic", "English", "French", "Spanish"];
134+
const skills = ["HTML", "CSS", "JavaScript", "React", "Python"];
135+
const fruits = ["banana", "orange", "mango", "lemon"];
136+
const vegetables = ["Tomato", "Potato", "Cabbage", "Onion", "Carrot"];
137+
```
138+
139+
#### Funciones
140+
141+
A estas alturas ya estás muy familiarizado con la declaración de funciones, la función de expresión, la función de flecha y la función anónima. En este reto tendemos a utilizar la función de flecha en lugar de otras funciones. La función flecha no sustituye a otras funciones. Además, las funciones de flecha y las declaraciones de función no son exactamente iguales. Por lo tanto, debes saber cuándo usarla y cuándo no. En otras secciones trataré la diferencia en detalle. Utilizaremos el retorno explícito en lugar del implícito si la función es de una sola línea.
142+
143+
```js
144+
// función que devuelve el nombre completo de una persona
145+
const printFullName = (firstName, lastName) => firstName + " " + lastName;
146+
147+
// función que calcula el cuadrado de un número
148+
const square = (n) => n * n;
149+
150+
// una función que genera colores hexa al azar
151+
const hexaColor = () => {
152+
const str = "0123456789abcdef";
153+
let hexa = "#";
154+
let index;
155+
for (let i = 0; i < 6; i++) {
156+
index = Math.floor(Math.random() * str.length);
157+
hexa += str[index];
158+
}
159+
return hexa;
160+
};
161+
162+
// una función que muestra la fecha y la hora
163+
const showDateTime = () => {
164+
const now = new Date();
165+
const year = now.getFullYear();
166+
const month = now.getMonth() + 1;
167+
const date = now.getDate();
168+
let hours = now.getHours();
169+
let minutes = now.getMinutes();
170+
if (hours < 10) {
171+
hours = "0" + hours;
172+
}
173+
if (minutes < 10) {
174+
minutes = "0" + minutes;
175+
}
176+
177+
const dateMonthYear = date + "." + month + "." + year;
178+
const time = hours + ":" + minutes;
179+
const fullTime = dateMonthYear + " " + time;
180+
return fullTime;
181+
};
182+
```
183+
184+
La función `new Dat().toLocaleString()` también puede utilizarse para mostrar la fecha y hora actuales. Los métodos `toLocaleString()` toman diferentes argumentos. Puede aprender más sobre la fecha y la hora en este [link](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString).
185+
186+
#### Bucles
187+
188+
En estos retos cubrimos muchos tipos de bucles. El bucle regular for, el bucle while, el bucle do while, el bucle for of, el bucle forEach y el bucle for in.
189+
190+
Veamos cómo los utilizamos:
191+
192+
```js
193+
for (let i = 0; i < n; i++) {
194+
console.log();
195+
}
196+
197+
// declaración de una variable array
198+
const names = ["Asabeneh", "Mathias", "Elias", "Brook"];
199+
200+
// iteración de un array mediante un bucle for regular
201+
let len = names.length;
202+
for (let i = 0; i < len; i++) {
203+
console.log(names[i].toUpperCase());
204+
}
205+
206+
// iteración de un array mediante for of
207+
for (const name of names) {
208+
console.log(name.toUpperCase());
209+
}
210+
211+
// iteración de un array mediante forEach
212+
names.forEach((name) => name.toUpperCase());
213+
214+
const person = {
215+
firstName: "Asabeneh",
216+
lastName: "Yetayeh",
217+
age: 250,
218+
country: "Finland",
219+
city: "Helsinki",
220+
skills: [
221+
"HTML",
222+
"CSS",
223+
"JavaScript",
224+
"React",
225+
"Node",
226+
"MongoDB",
227+
"Python",
228+
"D3.js",
229+
],
230+
isMarried: true,
231+
};
232+
for (const key in person) {
233+
console.log(key);
234+
}
235+
```
236+
237+
#### Objetos
238+
239+
Declaramos el objeto literal con _const_.
240+
241+
```js
242+
// declarando el objeto literal
243+
const person = {
244+
firstName: "Asabeneh",
245+
lastName: "Yetayeh",
246+
age: 250,
247+
country: "Finland",
248+
city: "Helsinki",
249+
skills: [
250+
"HTML",
251+
"CSS",
252+
"JavaScript",
253+
"TypeScript",
254+
"React",
255+
"Node",
256+
"MongoDB",
257+
"Python",
258+
"D3.js",
259+
],
260+
isMarried: true,
261+
};
262+
// iterar a través de las claves del objeto
263+
for (const key in person) {
264+
console.log(key, person[key]);
265+
}
266+
```
267+
268+
#### Condicional
269+
270+
Hemos dicho if, if else, else, switch y operadores ternarios en los retos anteriores.
271+
272+
```js
273+
// sintaxis
274+
if (condition) {
275+
// esta parte del código se ejecuta para la condición de verdad
276+
} else {
277+
// esta parte del código se ejecuta para una condición falsa
278+
}
279+
```
280+
281+
```js
282+
// if else
283+
let num = 3;
284+
if (num > 0) {
285+
console.log(`${num} is a positive number`);
286+
} else {
287+
console.log(`${num} is a negative number`);
288+
}
289+
// 3 is a positive number
290+
```
291+
292+
```js
293+
// if else if else if else
294+
295+
let a = 0;
296+
if (a > 0) {
297+
console.log(`${a} is a positive number`);
298+
} else if (a < 0) {
299+
console.log(`${a} is a negative number`);
300+
} else if (a == 0) {
301+
console.log(`${a} is zero`);
302+
} else {
303+
console.log(`${a} is not a number`);
304+
}
305+
```
306+
307+
```js
308+
// Switch Más Ejemplos
309+
let dayUserInput = prompt("What day is today ?");
310+
let day = dayUserInput.toLowerCase();
311+
312+
switch (day) {
313+
case "monday":
314+
console.log("Today is Monday");
315+
break;
316+
case "tuesday":
317+
console.log("Today is Tuesday");
318+
break;
319+
case "wednesday":
320+
console.log("Today is Wednesday");
321+
break;
322+
case "thursday":
323+
console.log("Today is Thursday");
324+
break;
325+
case "friday":
326+
console.log("Today is Friday");
327+
break;
328+
case "saturday":
329+
console.log("Today is Saturday");
330+
break;
331+
case "sunday":
332+
console.log("Today is Sunday");
333+
break;
334+
default:
335+
console.log("It is not a week day.");
336+
}
337+
```
338+
339+
```js
340+
// ternario
341+
342+
let isRaining = true;
343+
isRaining
344+
? console.log("You need a rain coat.")
345+
: console.log("No need for a rain coat.");
346+
```
347+
348+
#### Clases
349+
350+
Declaramos la clase con CamelCase que empieza con mayúscula.
351+
352+
```js
353+
// sintaxis
354+
class ClassName {
355+
// el código va aquí
356+
}
357+
```
358+
359+
```js
360+
// definir la clase
361+
class Person {
362+
constructor(firstName, lastName) {
363+
console.log(this); // Compruebe el resultado desde aquí
364+
this.firstName = firstName;
365+
this.lastName = lastName;
366+
}
367+
}
368+
```
369+
370+
Sea cual sea la guía de estilo que sigas, sé coherente. Sigue algunos paradigmas de programación y patrones de diseño. Recuerda que si no escribes tu código en cierto orden o forma, será difícil leerlo. Así que hazte un favor a ti mismo o a alguien que vaya a leer tu código escribiendo código legible.
371+
372+
🌕 Eres ordenado. Ahora, has aprendido a escribir un código limpio, para que cualquiera que conozca el idioma inglés pueda entender tu código.Siempre estás progresando y llevas 20 pasos en tu camino hacia la grandeza.
373+
374+
🎉 ¡FELICITACIONES! 🎉
375+
376+
[<< Día 19](../dia_19_Closures/dia_19_closures.md) | [Día 21 >>](..)

0 commit comments

Comments
 (0)