Feda /dev/ - No Javascript allowed

Normas
spoiler
Personas non gratas
Memes feda dev




desu

#23190 Tu en react como resuelves los aplicativos? haces funciones parciales/monad o como lo he hecho yo?

A mi es que no me gusta muxo hacerlo full fp, no me parece mantenible a la larga y tiene un sobre coste.

cuando veo reduces infinitos de monads aplicandose recursivamente en lugar de una variable mutable y un for looop se me revuelve el estomago.

1 respuesta
isvidal

#23191 Desu yo no tengo ni idea de palabros tecnicos, soy artista del div, la ingenieria te la dejo a ti

4 1 respuesta
desu

#23192 Tienes que crear un struct que tiene N campos.

tienes que validar los N campos por separado

si esta bien devuelves el struct.

si falla algun campo te tienes que quedar el error. si tienes multiples errores por ejemplo te interesa concatenarlos.

en mi caso si todo esta bien quiero una Person {name, age}

y si falla me gustaria tener una lista de strings, "name failed, age failed", si solo falla el nombre "name failed".

como lo haceis en la FP (que no haciendo FP)

yo por ejemplo los errores no los concateno pero podria facil.

un verdad js artisan hace 4 churros y cien if/else anidados?

1 respuesta
isvidal

#23193 Joder justo ayer hice un caso como el que expones.

{
  areValid: boolean,
  signers : {
   [signerId] : {
     isValid: boolean,
     isEmailValid : boolean,
     isNameValid : boolean,
     isLastNameValid : boolean,
    }
  }
}

Recorro el array de signers con un .map o .forEach lo que guste, voy validando dentro y asignando, al terminar se si alguno en concreto estaba mal y que tenia mal con signers[signerId] o si simplemente estaba mal porque hay solo uno que estaba mal areValid.

1 1 respuesta
desu

#23194 Ahora imagínate que tienes structs anidados.

Tienes Person { name: Name, age: Age, direction: Direction }

Name, Age y Direction tienen multiples campos y validaciones.

Quieres hacer Person y sino devolver los errores.

Luego tambien si algo falla, por ejemplo age, como harías valores por defecto?

Otro ejemplo, imagina que dirección consulta una api para bajarse una api de la foto de tu casa de google maps, como harías estrategias de retry antes de poner el default en caso de fallos?

Al final se va complicando y anidando mierda... Si aplicas el patron estandard desde el principio te evitas lios y conforme necesitas complejidad como los default o los retry los vas metiendo. Lo bueno que tienen los aplicativos es que los anidados ya los cubres sin hacer nada...

Si lo haces siguiendo el patron sera todo un par de funciones compuestas, todas independientes y fáciles de mantener, sin churros spaghetti. Si ma;ana cambias un struct intermedio, imagina que tienes 10, no rompes nada de la logica en ningun punto.

Dentro de los patrones los aplicativos para verificacion/parseado es de lo mas util y utilizado. si necesitas algo mas complejo, creas un wrapper de tus structs y vas concatenando tus wrappers con los resultado intermedio (partial application)

Sobre tu codigo, tener "isValid" de tus tipos es una red flag/code smell. No estas usando el sistema de tipado. Pero bueno, habria que ver tu codigo mas en detalle, porque tampoco pasa nada por tener algun flag a veces o un optional... mejor el optional y usar el sistema de tipado un poco.

1 respuesta
Kaledros

@Ranthas Tú habías trabajado en administración pública, ¿verdad?

https://www.cronicavasca.com/empresas/competencia-multa-deloitte-pwc-por-manipular-licitaciones-publicas-en-euskadi_482143_102.html

1 respuesta
isvidal

#23195 Para mi la palabra es sentido comun. Programar para hoy, no para ma;ana. Todo eso que dices esta muy bien, pero si hoy por hoy solo necesito hacer X no voy a hacer sobre ingenieria por si ma;ana necesitamos Z e Y.

Y esto no quiere decir hacer codigo de mierda ni churros, simplemente, sentido comun, sentido que yo creo que se consigue: siendo curioso, haciendo lo que te gusta e implicandote y programando mucho.

Luego ya lo perfecto es saber la teoria y saberte el nombre de las cosas, yo no tengo ni puta idea de patrones ni que cojon es un monad, pero estoy seguro que desde la ignorancia los aplico organicamente en mi dia dia solo por la pura experiencia de ver como las cosas me han funcionado mejor y como peor.

2 1 respuesta
Wei-Yu

desu el que llora por la sobreingeniería de los pajeets haciendo sobreingeniería y siendo un pajeet

imágenes de desu levantándose hoy de la cama y llegando a la conclusión de sumar 2+2

1 1 respuesta
desu

#23197 sobre enginieria?????

HAHAHAHAHAHAH

en fin si quieres pasame tu codigo y te lo paso a un aplicativo.

veras que 1 es mas facil, 2 menos codigo, 3 mas mantenible, 4 en el futuro (no ahora) podras expandirlo y tener todos los benficios.

esto es como decir que escribir

var a = x
for b in .. {
  //
}

es mejor que:

result = a.map(f)

porque lo segundo es sobre ingeneiria

HAHAHAHA

no amigo, lo primero es spaghetti y puede inducir a errores, usando map/filter/reduce reduces la posibilidad de fallos y son funciones re utilizables entre distintas estructuras de datos... XD

la respuesta que me tienes que dar es, no voy a usar un patron raro de fp si mi equipo no lo conoce. Pero bueno, es de los patrones mas usados. por eso he preguntado como lo haciais los fperos, porque si ya hoy usais map/reduce/filter (estoy orgulloso de vosotros) tambien os veo haciendo otros patrones tipicos... XD

#23198 tu no hables que habrias hecho todo abstracto, usando 4 factories y diez mil bobadas que no le importan a nadie.

habrias escrito 500 LOC para hacer algo que se hace en 15.

Naith

Ahora me entero que un for es spaghetti y un map no, cuando son cosas distintas y sirven fines distintos por lo que tiene -20 de sentido compararlos.

1 respuesta
desu

#23200 Antes que hablar, hay que pensar. Que no he escrito el código porque creía que se entendía ...

r = []
for e in elements:
  r.push(function(e));
return r

vs r = elements.map(function)

Lo que deberías enterarte ahora es que tienes problemas neuronales.

Aix, no se ni para que contesto a los trolls malos. Al menos Vidal pone su codigo y no es un mariquita.

1 respuesta
Naith

#23201 te noto más alterado de lo normal esta mañana. ¿Te han vuelto a quitar las crocs?

1 respuesta
desu

#23202 Hoy estoy en casa. Ando acabando lo de Rust de chill. No me queda mucho creo. Tu que tal? Veo que hoy has aprendido lo que es un map. Ahora te toca el filter y el reduce.

1 respuesta
Ranthas

#23196 Nada nuevo bajo el sol.

Lo que es un chiste son las cuantías de las multas, 3,9 millones a Deloitte cuando concursan en licitaciones de cientos de millones, pues vale.

X-Crim

2 respuestas
eondev

#23205 lol

desu

#23205

Me gustaria ver a uno de vosotros resolver esto en directo... seria risas jeje

Leos

Buen insert mejor edit

2
Naith

#23203 reduciendo el espacio de búsqueda de un algoritmo. Te dejo tranquilito con tus tutoriales.

2 respuestas
Ranthas

#23209 Yo también resolvía problemas de esos hace 10 años, qué buena época de Diablo 2 y Jack Daniels.

Son fases, ya se le pasará

2 1 respuesta
TitoBurns

1 respuesta
desu

#23209 espero que optimices en el mundo real al menos... no te digo de hacerlo en aeronautica o aeroespacial como yo lo hago. no todos podemos formar parte del programa espacial CATALA y enviar cohetes al espacio.

es que si ahora me dices que estas en la universidad como @fyn4r no podre aguantarme la risa. phds como vosotros terminan siendo mis becarios...

#23211 eso le digo a todos mis becarios, me tienen hasta los huevos usando diccionarios en lugar de arrays cuando conocen los tama;os y no estan usando bien la localidad de la cpu. me cago en sus muertos asco de universidad

el mayor antipattern que veo junto utilizar reduces en lugar de bucles, no saben lo que es una alocacion..... me tienen hasta los huevos con esto y los diccionarios.

"acceder a un diccionario tiene coste 1" jejejeje

1 respuesta
B

Hoy a desu le supera el personaje. El pobre va a terminar como el de TempleOS.

2 respuestas
isvidal

#23213

3
desu

#23213 https://vocaroo.com/14qqccGnVP5P

sera que mis dias libres foreo mas.

pero bueno que esperas, un anormal que no sabe que un map por dentro es un for y luego intenta hacerse el interesante cuando tendra un curro de mierda o estara en la universidad sacando papers en nombre de un abuelo HAHAHAHAHAHHHAHA

el mas tonto es el que mas habla, y luego sale corriendo.

que el map y el for sirven para fines distintos y tiene -20 de sentido compararlos..

luego te cambia de tema se;alandote, la tipica del anormal que no tiene argumentos y solo queria joder.

tampoco espero muxo del nivel medio del hilo, FPeros que se creen geneios dotados de la mano de dios porque usan un map, pero eh, luego no vayas a usar el sistema de tipado y usa flags como un pajeet que sino es sobre enginieria HAHAHAHAHAH

1 respuesta
aren-pulid0

Prefiero pintar divs

Wei-Yu

aún sigo ambivalente con respecto a pillarme algo de merch de templeOS

ah qué bueno este joder, ojalá vivir US para tener excusa para llevar un chaleco anti balas

2 respuestas
Naith
#23215desu:

el mas tonto es el que mas habla

No seré yo el que escribe tochos.

1 respuesta
aren-pulid0

Wooooo

desu

#23217 yo tenia el de helmut lang, lo vendi por 1k hace a;os.

ahora que se han puesto de moda los chalecos me arrepiento de venderlo, a parte, que ahora valen 4 o 5k XD

#23218 tranqui man, cuando necesites ayudas ya lloraras. y tranquilo que te ayudare. siempre tiendo la mano y ayudo a todos. no lo ves?