Feda /dev/ - No Javascript allowed

Normas
spoiler
Personas non gratas
Memes feda dev




aren-pulid0

#53850 sabes lo que nunca vas a tener? un fichero que no respete la sangría, un salido

2
B

python y "me faltan cosas" en la misma frase es jodido eh... Si tienes paquetes pip para escribir "cagar()" y que venga un bot en paquete de amazon a hacerte una infusión para provocarte cagalera.

1 respuesta
Dr_Manhattan

#53852 hay módulos incluso para poder crear una clase abstracta xdddd está claro que no has entendido a qué me refería

1 respuesta
desu

Que larga se puede hacer la semana de meetings.

Un manager habla. El resto de fondo ruido. El otro manager hace preguntas solo porque es el manager y tiene que demostrarlo.

Por que no vais a un hotel?

2
Wei-Yu

#53848 yo estoy con scala estos días y telita eh mi buen señor. Encima estoy usando gatling que prácticamente tiene su DSL montado.

En vez de retornar cosas de una función tengo que ir encadenándolas y metiendo datos en un "contexto" global y luego leerlo de ahí... estoy esperando a que me de el ictus a ver si me baja el IQ y así le veo la gracia.

2 respuestas
pantocreitor

Callaos ya que llevo desde las 6 con un pase a producción. En media hora o así, si ningún equipo la ha liado (de mi equipo está todo perfecto), me meto en la cama.

1 respuesta
Kaledros
#53855Wei-Yu:

En vez de retornar cosas de una función tengo que ir encadenándolas y metiendo datos en un "contexto" global y luego leerlo de ahí

Eso se puede hacer también en Java/Kotlin con Spring y hay un debate encarnizado sobre si es buena práctica o no. Yo he visto las dos cosas, pasar sólo el ApplicationContext por parámetro a los constructores e ir sacando las dependencias de ahí como si fuera el sombrero de un mago y también pasar todas las dependencias por separado al constructor.

2 respuestas
PiradoIV

#53856 ¿Te levantas a las 6 y ya te metes a la cama a las 11?

1 respuesta
Sphere

Yo tengo mañana entretenida porque mi proyecto no llega al deadline ya que siempre hay otro proyecto con más prioridad al que me meten para apagar fuegos o ayudar al resto del equipo, y ni mis horas de trabajo ni las del de QA son infinitas.

Puessss ok, si los de arriba están de acuerdo con posponer el deadline una vez más, por mi guay.

Dr_Manhattan

#53855 te me lavas la boca antes de hablar de Scala, he pasado dos años y medio muy buenos ahí

1 respuesta
Lecherito

Y yo de onboarding, tranquilamente en el satisfactory que ya estoy descubriendo el tier 7

1 respuesta
Wei-Yu

#53857 ah pero tú dices (creo)

public Basket(BasketItems items)
{
  this.Green = items.Green;
  this.Yellow = items.Yellow;
}

vs

public Basket(Green green, Yellow yellow)
{
  this.Green = Green;
  this.Yellow = Yellow;
}

yo diría que la segunda está mejor por norma general pero la verdad que el drama es pequeño imho, yo digo esto:

  private def getRequestBodies: ChainBuilder = exec(session => {
    val directory = BaseConfig.BodiesFolderPath
    val files = new File(directory).listFiles()
    session.set(LIST_REQUESTS, files.toList)
  })

en vez de retornar cosas voy seteando en el session (que es un hashmap por debajo) valores y para acceder a esos valores tengo qeu ir mágicamente a buscarlos al session, es una fumada del copón

#53860 me llamaron de estocolmo diciendo que perdieron un síndrome y eres el único síndrome que conozco, puede ser?

1 2 respuestas
pantocreitor

#53858 me levanto a las 5:30, meo, me hago un americano, enciendo el portátil, doy los buenos días y empezamos con el pase a producción y hasta que dure.
Si la gente no la lía como en este, a las 11 mi parte termina (todas las horas echadas antes de las 9 me cuentan como 2), me meto en la cama una o 2 horillas, echo 1h mas tarde para cumplir las 7 (por cumplir porque me podría escaquear sin problema) y mi curro hoy ha terminado.

2 respuestas
Sphere

#53863 ¿Y el gym cuando? En mi caso como no haga ejercicio la espalda me empieza a dar guerra a los pocos días.

1 respuesta
Kaledros

#53862 No, es como lo que tú haces. El ApplicationContext es el contenedor de dependencias, ahí dentro están metidos todos los beans que se instancian al arrancar la aplicación, tanto las clases que tú hayas anotado como bean como los propios del framework y todas las configuraciones. La diferencia es que eso lo hace Spring automáticamente durante el arranque, no tienes que meter nada en el context a manubrio (sobre todo porque es de sólo lectura).

2 respuestas
PiradoIV

#53863 ¿Y qué hacéis durante tantas horas pasando algo a producción?, suena interesante. Lo que sea que subáis durante esa ventana de mantenimiento... ¿está caído?

1 respuesta
Wei-Yu

#53865 algo así? porque esto es fumadón nivel el suplente de snoop dogg

public Basket(ApplicationContext context)
{
  this.GreenService = context.GetServices().Where(service => typeof(service) == typeof(GreenService))
}

(perdona el pseudocódigo inventado xd)

1 respuesta
desu
#53857Kaledros:

hay un debate encarnizado sobre si es buena práctica o no.

El applicationContext para todo esta mal... y te dire mas. En spring podrias tener un Subcontext por paquete.. en lugar de eso, que resolvería el 99% de los problemas de colisiones de @Beans automáticamente y defaults que no saben de donde vienen... y te diria exactamente que linea de código esta mal y porque... la gente pone todo en el global...

Java y Spring... detector de fperos que no solo no saben programar, promocionan malas practicas constantemente.

#53865 el context no solo es de lectura... también tienes cosas SINCRONIZADAS CON MUTEX para leer y escribir... porque spring no sabe que hará el usuario y asume siempre que leera y escribira ... la realidad es que normalmente es de lectura como dices, pero tienes un degradación de rendimiento y un uso de memoria brutal por el mutex y la copia de variables entre threads...

Java y spring... cuanto mas sabes de programación e ingeniería... mas horrores conoces...

1 respuesta
Dr_Manhattan
#53862Wei-Yu:

me llamaron de estocolmo diciendo que perdieron un síndrome y eres el único síndrome que conozco, puede ser?

yes i am

Kaledros

#53867 Casi:

public Basket(ApplicationContext context)
{
  this.GreenService = context.GetBean(GreenService.class);
}

#53868 A mí siempre me ha parecido mala práctica por varios motivos, el primero porque si pasas todo el context por IoC no sabes si va a tener dentro la dependencia que quieres hasta que vaya a buscarlo en runtime, mientras que si pasas la dependencia explícita te va a cantar en compilación si existe o no. A partir de ahí, empeñarse en usarlo es un "todo mal" de libro.

2 respuestas
desu

#53870 los contenedores y beans de Spring, con ellos su IoC y demás patrones con factorías abstractas aburridas, dejaron de tener sentido con java 1.8. junto a las clases abstractas y demás...

todos los famosos patrones de diseño de la época del gof dejaron de tener sentido en java y similares por esa época... y java es de los últimos... en otros como C# mas avanzados dejaron de tener sentido antes... los public/private en java fueron deprecated en java 1.9 y ese dia mataron maven y gradle como gestores de dependencias... java contemporaneo esta tan lastrado por los fperos...

xq algo que es MALA PRACTICA hoy en dia lo utliiza tanta gente? exacto. fperos que no saben programar ni entienden lo que hacen... y estos son el 99.9% de la industria... y si es el mundo java o similar, son el 100%... porque nadie quiere trabajar con ellos.

y esto no son opiniones, son hechos. gente que usa java y spring porque quiere... gente que solo quiere engañar a su empresa y perder el tiempo haciendo upgrades que rompen todo el código. si usas rust por ejemplo... hay librerías que llevan años sin una nueva version porque estan "ACABADAS". No "ABANDONADAS". El código esta "ACABADO".

1 respuesta
Kaledros

#53871 Java y Spring tienen el problema de que quieren hacerlo todo y al final tienes módulos enteros completamente deprecados (Spring Integration dejó de tener sentido cuando aparecieron soluciones de mensajería mucho mejores, por ejemplo) y todo el framework es un bloat gigantesco para que al final todo el mundo use un 5% de la funcionalidad (los rest controller y los tests). Si creas un proyecto con un único controller que devuelve "Hola, mundo" y nada más sigue tardando tres segundos en arrancar aunque lo arranque en mi MB Pro de 32GB y M2, eso es estar en la más absoluta indigencia porque mi portátil debería ser capaz de ejecutar 400 millones de esos proyectos simultáneos mientras juego al BG3.

LO QUE PASA, que es la baza que tiene Spring, es que existen unas convenciones (gracias a Maven sobre todo) en casi cualquier aspecto de la aplicación, desde el árbol de packages hasta la nomenclatura de las clases, que hace que cualquiera que las conozca pueda entrar en un proyecto nuevo y reconocerlo absolutamente todo a la primera, porque está todo donde debería estar. Por eso se usa tantísimo en consultoras, porque hasta en la cárnica más cabrona con una rotación altísima la gente puede ser productiva desde la primera semana.

Y desde que trabajo en Go lo tengo cada vez más claro. Ha sido una revelación ver que se pueden hacer las cosas tan sencillas.

1 respuesta
Wei-Yu

#53870 close enough :clint:

lo que no sé es por qué alguien querría hacer eso; inyectas tus servicios por constructor y au, si no estás rompiendo el ioc al acoplar tus cosas al propio framework ioc xd

2 respuestas
Kaledros

#53873 Porque creo que es un patrón, pero no estoy seguro.

desu
#53872Kaledros:

Y desde que trabajo en Go lo tengo cada vez más claro. Ha sido una revelación ver que se pueden hacer las cosas tan sencillas.

Mis enseñanzas son como tratar de enseñar a un ciego a distinguir los colores... Hasta que no tienes el momento eureka! por ti mismo siempre serás un fpero y vivirás en las tinieblas.

Java y Spring se caen a la que tienes que hacer algo SERIO. Donde SERIO es optimizar Memoria, CPU o IO, tener logging y métricas bien metidas, y que sea reliable... Porque ser ingenieros implica usar la mejor herramienta para el problema, y ni Java ni Spring son la mejor herramienta para nada.

Engineering = resolver un problema concreto + optimizando tiempo y coste

Como decían en otro hilo, hoy en dia los puestos de informática estan desapareciendo porque la mayoría de empresas no estan resolviendo problemas de verdad para la gente, estan haciendo bobadas con tecnologia estupida. Pero siempre habra puestos de ingeniería de software de verdad.

desu

#53873 para tener cosas por defecto. todo el ecosistema java (spring) esta diseñado con componentes que requieren otros o no funcionan.

no quieras entender 'el porque es bueno' de mi respuesta, porque no existe ese porque que tenga sentido, mi respuesta es porque spring lo hace, y no es una buena respuesta ni una buena solución.

pantocreitor

#53864 pues hoy iré a la tarde, pero normalmente voy a las 7:30/8:00, echo una horita, ducha y a currar y si apetece y hay tiempo (sobre todo si hay tiempo xD) a la tarde voy otro rato.

#53866 pues por encima, se lanzan todos los scripts de base de datos que sean necesarios (hay cosas viejas que se tocan bastante en PLSQL y a parte limpieza de ciertas tablas).
Se despliegan las actualizaciones de los sistemas base (aquí entro yo ya que todos los sistemas base son los que llevamos en el equipo), para cada uno de estos despliegues echo unos 10-15 minutos haciendo pruebas y viendo que está todo OK. Normalmente los fallos aquí son por algún script que no hayan ejecutado en base de datos con algún cambio, alguna variable de entorno que no hayan metido o hayan puesto mal el valor o temas de red. Una vez que todo esto está desplegado y funcionando empiezan a desplegar todo lo demás.
Para cada aplicación a partir de ahora que se vaya desplegando se hacen pruebas y tengo que estar para dar soporte si algo no va bien. Aquí si hay probelmas suelen ser de configuración de estas aplicaciones, tocar mirar logs, ver el fallo, comunicarlo, que arreglen la config, redeploy y vuelta a probar.
Y por último aplicaciones secundarias a las que también tengo que darles soporte.
Vamos, mas que yo darle soporte lo da mi equipo, lo que pasa que cada update de la plataforma se hace a cada cliente y vamos haciendo uno cada uno. Hay algunos que empiezan a las 9 de la mañana y otros a la 1AM, depende del cliente y demás

ignasi_

vengo a quejarme también. como puede ser que el servidor de desarrollo de next se coma un ordenador nuevo con 32gb de ram. menuda mierda bloated es webdev.

2 respuestas
pantocreitor

#53878 que se lo come porque debe comérselo o porque tenéis fugas de memoria?

1
LLoid

#53861 lo tengo pendiente, mejor/peor que Factorio o Dyson sphere program?

1 respuesta