Feda /dev/

Troyer

spoiler
1 respuesta
GlatoR

Qué cabrón el reizo

CarlosML27

#19861 Joder, qué avanzada la IA a estas alturas.

drakkenspain

Estoy mirando un poco de React y me encuentro con esto.

spoiler

Su puta madre. Eso pasa en otros lenguajes?

2 respuestas
LLoid

Hombre, un comparador && que sea true a la izquierda siempre va a evaluar la derecha y si es false a la izquierda pues ya hemos terminado porque deben cumplirse las 2 condiciones. Eso creo que es así en casi todos los lenguajes. Java y C# al menos.

1 respuesta
eondev

#19864 es una forma un tanto guarra de hacer esa expresión, pero bueno xD. En JS todo está permitido

1 respuesta
B

es muy común... es una especie de azúcar sintáctico para un operador ternario....

needUpdate?"Yes":"No"

needUpdate && "Yes" || "No"

Con el operador ternario necesitas definir ambos casos "true" y "false"... en el otro caso no.

drakkenspain

#19865 Tienes toda la razón del mundo, sentido tiene... pero joder, es como decir

if (true && 7) { ... }

#19866 Eso es, me parece una guarrada hacer eso y más aún que lo extiendan en la documentación oficial de un framework tan utilizado. Así pasa luego :joy:

A los de facebook no les hicieron bullying para que se leyeran Clean Code

1 respuesta
LLoid

Imagino que será cosa estándar en JS. A estas alturas estas mierdas ya no sorprenden a nadie xd

Lecherito

> Sorprenderse con JS en 2018

2
balmunG_

#19864 #19868 si, lo hacen también otros lenguajes y se llama lazy evaluation.

Casos útiles en los que lo utilizo bastante:

if (obj && obj.property && obj.property.nested) {
  // en lugar de obj.property.nested, que petaria en caso de no estar definido
}

// poner las funciones computacionalmente caras a la derecha hace
// que sólamente se ejecuten cuando sea realmente necesario. 
if (cheapFunction() || expensiveFunction()) {
  // en este caso, expensiveFunction sólo se ejecutará cuándo
  // cheapFunction retorne un valor falso
}
if (cheapFunction() && expensiveFunction()) {
  // en este caso, expensiveFunction sólo se ejecutará cuándo
  // cheapFunction retorne un valor verdadero
}

Esto entra en combinación con el hecho que javascript evalúa las condiciones directamente con el valor de las variables/expresiones, sin hacerles ningún cast, y que además retornará el valor de la última variable/expresión evaluada. Es por eso que puedes usarlo tal y cómo se explica en el tutorial de react.

Ejemplos más sencillos serían:

// evalúa si value es truthy y lo retorna automáticamente
// si es falsy, retorna 'default value'
const foo = value => value || 'default value';

foo('hola'); // 'hola'
foo(null); // 'default value'
foo(''); // 'default value'

Cabe decir que esto puede llegar a provocar bastantes bugs así que no es del todo seguro usarlo.

Por ejemplo, típico caso de bug producido por utilizar este pattern con números:

const bar = value => value || 100;

bar(1); // 1
bar(null); // 100
bar(0); // 100

Un saludo!

3 3 respuestas
eondev

#19871 Y no es mejor hacer un

if (!cheapFunction()) {
  expensiveFunction()
}
if (cheapFunction()) {
   expensiveFunction()
}

?

2 respuestas
HeXaN

#19872 Pero no quedas "cool" y puede que tu jefe "hipster JS artisan with <3" te eche de la start-up.

1
r2d2rigo

#19871 me parece una putisima mierda de behaviour y un code smell de la hostia. Desde luego que vaya puto cancer de lenguaje que es JS, a ver si muere ya joder.

9 2 respuestas
Lecherito

#19874 Joder, no lo habria explicado con mejores palabras. Bravo.

HeXaN

Qué violento.

X-Crim

Tengo miedo

balmunG_

#19872 un todo caso sería:

if (!cheapFunction()) {
  if (expensiveFunction()) {
    // do something
  }
}
if (cheapFunction()) {
   if (expensiveFunction()) {
     // do something
  }
}

Con lo estarías aumentando el nesting por cada condición. Ojo, no digo que sea mejor una cosa o la otra, simplemente el lenguaje te permite hacerlo y no veo porqué no aprovecharlo.

3 respuestas
eondev

#19878 Si tienes que anidar 2 ifs no veo ningún problema, mucho más legible que lo del lazy evaluations xD
Si tienes que anidar bastantes más entonces quizá lo que tienes es un problema de diseño. :thinking:

r2d2rigo

#19878 C te permite apuntar a zonas arbitrarias de memoria con los punteros y nadie en su sano juicio lo hace.

1 respuesta
Lecherito

#19880 Segmentation fault.

Troyer

Cuando un retrasado se pone a testear los emails y se da cuenta que no esta utilizando un mocker y esta enviando los emails a los clientes:

5
MisKo

Alguien tiene alguna experiencia (reciente) con 'Instagram developers'?

Quiero pasar un desarrollo a 'Live' y llevan revisandolo un par de días, tardan más tiempo que apple en validar las apps, spm.

Thingol

Hash en frontend?

Satek

#19878 pero ahi estarias anidando pudiendo concatenarlo en el mismo if no?

AikonCWD

Estoy scriptando un proceso y en el log que dejo tras la ejecución imprimo credenciales en texto plano. Queredme.

1 respuesta
Troyer

#19886

1
AikonCWD

El meme este del nigga disparando es tendencia. Os traigo calidad.

1 respuesta
Troyer

http://www.5z8.info/alqaeda-message-boards_l4c7dg_56-DEPLOY-TROJAN-287.mw9----

https://www.mailaspud.com/

PaCoX

#19888 puedes hacer un meme de esos de un dev disparando un friday deploy al weekend y preguntandose alguna chorrada del js
yo lo haria pero me dan asco los memes de negros, los dev negros, y bueno... los negros en general

1 2 respuestas
Tema cerrado

Usuarios habituales

  • desu
  • Fyn4r
  • HeXaN
  • Merkury
  • eXtreM3
  • MisKo
  • Troyer