¿Cómo escribir código para conquistar al amor de tu vida?

Imagina la situación.

Eres desarrollador en una empresa de Tecnologías de la Información; esta empresa tiene un departamento de calidad, el cual se encarga de revisar todo el código desarrollado.

Tienes un crush por la persona que revisa tu código, pero eres muy timid@ y no sabes como avanzar?

¿Qué deberías hacer?

  • ¿Renunciar a tu amor? No, muy dramático.
  • ¿Comprarle dulces todos los días? No, muy trivial.

¿Y si escribimos un código genial? Un código que con solo leerlo, esta persona se enamore perdidamente de ti.

Aquí te van unos tips:

  1. Una función debe hacer sólo una cosa.

Imagina que debes crear un programa que emule a una calculadora. Este programa debe realizar dos operaciones básicas (sumar y restar) sobre dos números.

Tenemos 2 maneras de resolver esto.

a) Una función Principal que por medio de un switch; seleccione qué operación hacer y regrese directamente el resultado de la operación.

Algo así:

function calculadora(operacion, num1, num2){if(operacion == "suma"){
return num1+num2
}else if(operacion == "resta"){
return num1 - num2
}
}

Si bien esto funciona, hay algunos problemas.

La función Calculadora está haciendo más de una cosa:

  1. Selecciona la operación se va a realizar.
  2. Suma
  3. Resta

¿Qué sucedería si queremos reutilizar la operación de suma después? ¿Tendríamos que reescribir la operación suma?

Intentemos una forma más elegante.

b) Usar el principio de responsabilidad única para resolver este problema.

Nuestro código quedaría algo así:

function calculadora(operacion, num1,num2){if(operacion == "suma"){
return suma(num1,num2)
}else if(operacion == "resta"){
return resta(num1,num2)
}
}function suma(num1,num2){
return num1 + num2
}function resta(num1,num2){
return num1 + num2
}

Ahora:

La función calculadora sólo selecciona la operación que se va a realizar.

La función suma sólo suma los números.

La función resta sólo resta los números..

Así, si deseamos re utilizar la lógica de la función suma, lo podemos hacer las veces que queramos.

Aquí nuestro crush sentirá mariposas en el estómago. Y querrá saber más de nosotros.

Pero aún no es suficiente, así que prosigamos.

2. Cuidado con el scope

Scope es la “visibilidad” que tiene una variable en un programa.

En Javascript hay 2 tipos de scope; global y local.

El scope global, permite a la variable estar disponible en TODOS lados (funciones y objetos)

Para que una variable sea global, la variable no debe definirse dentro de ninguna función u objeto.

Algo así:

var variableGlobal = "hola a TODOS"function probandoScope(){
console.log(variableGlobal)
}probandoScope()
// "hola a TODOS"

El scope local permite a la variable estar disponible únicamente dentro de la función donde se está definiendo.

Algo así:

function probandoScope(){
var variableLocal = "hola a mi funcion"
}console.log(probandoScope)
// probandoScope is not defined

¿Por qué la variable probandoScope regresa error?

Porque al definir la variable dentro de la función probandocope, la variable se vuelve local y sólo puede usarse dentro de la función.

Esto es muy poderoso, ya que nos permite tener múltiples variables con el mismo nombre en diferentes funciones sin sobreescribir su valor.

No me voy a poner muy técnico, pero como consejo, te sugeriría:

Siempre usar variables locales a menos que sea una constante que quieras utilizar repetidamente.

Ahora nuestro crush sabe que podemos encapsular variables y que somos muy listos. ¡Se para de su lugar y parece que viene a hablar con nosotros!

¿Qué hacemos? !AYUDAAA!

3. Nombra muy bien a tus variables

Intentemos descifrar que hace esta función.

function buscar(a,it){for(var i = 0,i<it.length,i++){
if(a[i] == it){
return i
}
}return false
}

WTF! Yo tampoco entendía nada.

Ahora intentemos descifrar que hace esta función

function busquedaDeItemEnArray(array,itemABuscar){

for(var index=0;i<itemABuscar.length;index++){
if(array[index] == itemABuscar){
return index
}
}return false
}

Mejor, ¿verdad?

La lógica es la misma, lo único diferente es que se cambia el nombre de las variables.

Siempre se lo más explícito posible en cuanto se refiere a los nombres de las variables y funciones.

Porque no es lo mismo escribir:

var mEn = true

A escribir:

var meEncantasTeAmoCasateConmigo = true

Extraido de