Feda /dev/ - No Javascript allowed

Normas
spoiler
Personas non gratas
Memes feda dev




Lifecasi0

#52440 No estoy de acuerdo. Con un null no puedes jugar, ni puedes tratarlo, con Optional/Option si. Precisamente lo que estas dos últimas abstracciones representan es que algo puede, o no puede, tener valor. Con el null no es así.

1 respuesta
Wei-Yu

#52439 lo veo como bastante code smell por lo que comento en #52433 además que quitarte el null no te sirve de nada, sigues teniendo que gestionar el estado inválido de alguna forma pero el compilador no está ahí para ayudarte. Donde haces el check para el estado inválido lo cambias para qeu el check sea sobre la nulabilidad y el compilador ya va a inferir el tipo él solo.

Que el compilador no grite no quiere decir que no haya errores en ejecución esperando a salir. Luego es cuando llegan problemas de corrupción de datos y mil historias...

#52441 un optional es syntax sugar sobre null, nada te impide escribir tu propio boxed.

1 respuesta
afhn

#52433 Por una vez, tienes razón en lo que dices. En el proyecto en el que estoy se hace mucho eso y me da bastante por culo tener que proteger los accesos a base de datos porque a veces viene el valor a cero y dan casques. En algunos puntos se podría decir que tiene sentido, pero en otros no. Teniendo java 11 la opción de usar optional y sus métodos para protegerse de los null y tantear un poco la programación funcional, no sé qué sentido tiene usar el default 0 si no es para representar un valor por defecto de una lista inmutable. Es más, últimamente me da bastante asco usar programación condicional, pero en mi proyecto actual hay muchas chapuzas y al final hay que adoptar la programación chapucera para protegerse.

r2d2rigo

#52442 quitarte el null te sirve para eliminar errores en tiempo de ejecucion 🤷‍♂️ Sabes que un tipo complejo siempre va a tener un valor, y uno de esos valores va a ser invalido, no te la estas jugando a que si el 29 de febrero a las 3:05 AM alguien consulta el precio de unos calcetines adidas blancos te reviente el servidor porque la referencia al tipo de datos que almacena la talla se quedase huerfana.

1 2 respuestas
afhn

qué diferencia hay entre....

  • optional.ofNullable(value).ifPresent(()->...) / .orElse(...)

y

  • if (value){...} / else{...}

?
con lo segundo no le estás agregando compeljidad? no evita el optional agregar complexity a las instrucciones?

1 respuesta
r2d2rigo

#52445 ninguna, pero es mucho mas facil olvidarte de null checks, sobre todo las codebases legacy que estan plagadas de side effects.

1 respuesta
Wei-Yu

#52444 pero es que el compilador es capaz de decirte que ese tipo es nulable, así que en las boundaries de tu sistema o tu ejecución compruebas ese estado y de puertas para adentro ya tienes garantizado que ese estado inválido ya no existe porque de ser así el código ni compila.

Lo que estás haciendo es mover el poste para que el estado inválido no sea entendible por el compilador; estás cogiendo un conocimiento estático que tienes del código y transformándolo en una incógnita en runtime. Los datos van a poder seguir siendo inválidos lo hagas nulo o no, sólo que evitando usar null ofuscas la lógica.

string jsonPayload = "{ ... some data here... }";
ShoppingCart? cart = Json.Deserialize(jsonPayload);

if (cart is null)
  return Result.Fail();

// We now know cart is not null and the compiler can help us
// next usages of our cart don't need to be tagged as potentially null
string jsonPayload = "{ ... some data here... }";
ShoppingCart cart = Json.Deserialize(jsonPayload);

if (cart == INVALID_STATIC_CART)
  return Result.Fail();

// We now know cart is valid, but the compiler can't help us

Es que no tiene sentido si te paras a pensarlo vaya... los estados inválidos siguen existiendo pero los estas representando de peor manera...

1 respuesta
afhn

#52446 sabiendo que trabajar con nullos la probabilidad de un nullpointer es mayor, es mejor trabajar con funciones que con condiciones imo. Tal vez esté errando. De momento siento que es más eficiente montar funciones con optional que llenar instrucciones de ifs con nullcheck.

1 respuesta
Lifecasi0

De hecho un buen code smell es ver constántemente condiciones de guarda haciendo null-checking.

2 2 respuestas
desu

Fperos discutiendo cosa básicas de programación por 288484929499492817274895910295738929295838299485949392929848583919100595020103049939202030504929101004848281818184848929195968373762524252636363828183849959202748381929939482828944861625144254363747284726468381347272734748283626288384939293948838384838282848488381919495959020204959939292949 vez

1 1 respuesta
afhn

#52449 Sobre todo que al 3º if ya es code smell por complexity xdd

r2d2rigo

#52447 pues me gustaria saber que compilador magico tienes tu que sabe en todo momento que puede ser null y que no, porque esa funcionalidad la estan a;adiendo poco a poco al de C# y aun asi es facilisimo enga;arle, o peor, que se encabezone de que algo puede ser null cuando ya has hecho los checks necesarios.

#52448 no estoy entrando en el uso de optional o no porque ni puta idea de como funciona ni la sintaxis hulio, hablo desde la perspectiva de tener que trabajar con posibles nulls vs sin.

2 respuestas
Wei-Yu

#52449 no. Haces el check una vez cuando puede ser nulo y ya está. Igual que con el estado inválido vaya, pero aquí el compilador te ayuda. O el estado inválido ni lo compruebas, simplemente te lo fumas y au?

cuando ya sabes que no es nulo pues dejas de usar nulabilidad, es que de verdad que no entiendo por dónde queréis ir con nada de esto xd

#52452 pues nullable reference types y ya, y eso de que se puede engañar pues bueno... técnicamente también le puedes engañar diciendole que un string es un int64 y la conversación es igual de absurda en ambos contextos.

afhn

ni caso wagyu, que son unos puretas del leetcode

1 1 respuesta
r2d2rigo

#52454 hostia wagyu xdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd no podria venir mejor el mote.

B

#52450 Los licenciaos se tiran un día para usar FastAPI (menos mal que se llama Fast y no Complex).

O como el licenciao de un curro hace años... que no sabía ni lo que era un disipador pero muy preocupado por la complejidad logaritmica más básica, que incluso un mandril con dos semanas de entrenamiento lo termina captando.

EDIT: Dese fuera, para mi lo interesante de la carrera es todo menos lo relacionado con programación en si misma (gestión de proyectos, matemáticas, etc.)...

JuAn4k4

#52444 Puedes tener un Option<X> y ser null.

Kaledros

Yo ya creía que no iba a volver a ver nada como esto:

  • Subcontratado a Everis (!!)
  • Por 27k
  • Me piden el DNI.
1 2 respuestas
r2d2rigo

#52458 el cliente paga 80k por ti y el resto se va quedando por el camino.

1 1 respuesta
Kaledros

#52459 No pone los años de experiencia, pero vamos, no me sorprendería.

PiradoIV

¿Por qué las empresas siguen contratando a consultoras?, es algo que no pillo.

1 respuesta
pantocreitor

Contratación a través de Norconsulting, al menos al principio...

#52461 Facilidad a la hora de despedir, no tener que hacer un proceso de contratación, tener un fondo de armario sin tener que hacer los 2 pasos anteriores, etc...
No te creas que a la larga les sale mucho mas caro.

2
frekaice

#52458 Para qué quieren el DNI, cotejar si ya has trabajado con ellos?

3 respuestas
Kaledros

#52463 Ni puta idea, pero la única otra vez que he visto a alguien pedirlo ha sido a Mercadona. Quiero pensar que para ver si estás dado de alta con alguien y poder preguntar, no sé.

r2d2rigo

#52463 para decirte que no y usarlo para chanchullear los pagos a un ilegal usando tus datos.

1 2 respuestas
B

#52465 Venía a decir esto xD

Kaledros

#52465 ¿Eso se hace?

afhn

#52463 para ver si es legal, el puto kaledros éste tiene pinta de ser un pajeet mexicano que está de ilegal en España.

1 1 respuesta
Sphere

Ya la tuve una vez con un proceso similar con NTT Data y el cansino del recruiter diciéndome que es que necesitaba sí o sí el DNI porque en la plataforma así podían comprobar que no me había apuntado ya a la oferta.

"Pues usad mi correo"

"Es que el sistema usa los DNI, no los correos"

"Pues no os voy a dar mi DNI para participar en el proceso"

Que en ese momento me interesaba porque pagaban bastante bien al ir como freelancer, pero ahora bastante desesperado tengo que estar para gastar tiempo en esos procesos.

Kaledros

#52468

3