Feda /dev/ - No Javascript allowed

Normas
spoiler
Personas non gratas
Memes feda dev




ignasi_

para mi el 1ero mil veces

1 respuesta
JuAn4k4

#44911 El primero es el que hice, el segundo es el refactor que se ha cascado sobre el código que ya había (por eso está en rojo.).

Prestad especial atencion a las dos funciones de abajo. Son de trilero.

2 respuestas
ignasi_

#44912 las dos funciones de abajo son full clean code tm

1 respuesta
JuAn4k4

#44913 Una es un string equals y la otra un startsWith, pese al nombre. Además que los nombres de los parámetros también engañan, se usan para cosas que no son lo que pone en el param name. Hay que prestar mucha atención.
Que extra alloc ? El string ? Nah el performance no es un problema.

Es decir a una le puedes pasar “a”, “a” y te dice que si es un session topic.
Los session topics empiezan por msg/ o por sess/ dependiendo si vienen del broker o del cliente.

Vamos que no hace lo que dice, porque es un a.equals(b)

1 respuesta
desu

Clean code.

Smell codes en el primero jeje.

1 respuesta
ignasi_

#44914 cuanto cobra este tipo?

1 respuesta
JuAn4k4

#44915 Va no me hagas dudar, puede haber cosas mal en el primero no digo que no, pero lo segundo no me jodas macho, es que parece un PR de coña. Encima el caso de error se lo zampa con patatas y lo considera bueno.

#44916 Unos 70K + beneficios (que son más o menos 10K)

1 respuesta
ckrass

#44909 El primero. El segundo tiene mejor semántica pero mas contras que pros. No hacen exactamente lo mismo, porque en caso de error no lanza el error, lo devuelve igualmente como StandarTopic (line 39) y encima está acoplado a un MqttSession.

2 respuestas
ignasi_

#44918 que entiendes por semántica? me parece que expresa su proposito mucho más claramente la primera opcion

1 respuesta
Kaledros

El de Juan es mil veces más legible, sólo por eso ya me lo quedo de largo.

JuAn4k4

#44918 El MqttSession es una de sus brillantes ideas de naming, que no quiere cambiar. En realidad es el AuthenticationContext, donde está el tenant y el id del cliente con el que se construyen los namespaces de los topics. Y si, el error se lo quiere tragar para que nadie lo vea, otra brillante idea.

desu

El tema de tener el pattern en una static, aparte de ser estática, es que facilita el testeo.

Así hay menos probabilidad de error humano y es más fácil generar tests.

Yo lo hago con los body de los errores por ejemplo. O cosas del estilo. Por ejemplo para el pattern del mensaje de la expecion también estaría bien.

Más allá de eso, de que es java de mierda y del name de la función, tampoco hay mucho más.

Refactor inecesario.

Si tienes:

PATTERN_BODY = "foo/%s/bar"
PATTERN_ERR = "error with method foo, cause; %s"

en tu test puedes hacer:

var bodyToTest = PATTERN_BODY % test
var expectedErr = PATTERN_ERR % "cause"

vs escribir a mano:

var bodyToTest = "foo/test/bar"
var expectedErr = "error with method foo, cause; cause"

pero vamos, detaillito de x10

2 respuestas
ckrass

#44919 Yo me quedo con el primero. En este caso, las dos funciones privadas es en lo unico que mejora la semantica del primero (pero es que en este caso no aporta casi nada esa semantica...)

Vamos, viendolo objetivamente, ese refactor es inútil, no aporta nada. Solo chuparse el error que lo obvia y acoplarse a un MqttSession

B

#44922 Quizá no entendí bien tu post.

En algunos sitios suelen recomendar que no uses constantes del código en los tests sino que las hardcodees. La lógica de esto es que si otra persona cambia esas constantes en el código por accidente puede pasar que los tests que leen esa constante en concreto sí pasen pero que luego las cosas se rompan en preprod y la gente se vuelva loca intentando entender por qué.

Es un argumento algo rebuscado y asumiendo un caso muy concreto de alguien haciendo una cagada muy concreta, pero por poder puede pasar imagino.

2 respuestas
desu

#44924 hablaba de constantes privadas al módulo.

entiendo lo que dices sobre públicas que se usan fuera. entonces deberías tratarlo como cualquier cosa pública y tener test de integración por si cambia.

el tema de exponer o no constantes en librerías es muy random, que eso sería lo tricky. depende del uso y el lenguaje.. Lo que en rust es público en go es privado para el mismo módulo de net...

JuAn4k4

#44922 #44924 Si, puedes meter los strings en constantes, pero ya. Lo demás sobra. En los tests si es bueno meter el string entero hardcodeando (el expected). Incluso puedes hacer:

SessionTopic.tryParseClient(clientTopic).orElse(StandardTopic.tryParse(clientTopic).orElse(error)

Pero vamos que tampoco merece la pena.

La historia es que AYER tuvimos una meeting en el que decía el mismo que los redactors tienen que estar justificados, y que el solo los hace cuando algo no funciona o no puede hacer algo.
Me meo, y su historia era de meter tests en otro lado.

Se me olvidó comentar, esas constantes son de otras clases, son static imports.

1 respuesta
Seal67

También te digo, en plataformas tipo codely, yo no puedo dar ejemplos en programación porque no conozco ningún profesor bueno, pero en cada campo suele haber 1 o 2 profesores que merecen mucho la penapena y enseñan puta madre.

El problema es que como en estas plataformas puede subir contenido todo dios pues se llenan de mierda

2 respuestas
B

#44927 yo conozco a una bióloga pasada por bootcamp que sube reels con "tips" para programar en python

1 2 respuestas
Dr_Manhattan

#44928 sauce? es para un trabajo

desu

#44926 yo lo de lo formateo asi lo aprendi de Russ Cox y ahora lo uso en python, java, go, c... y hago string interpolation siempre.

lo que luego miro en la stdlib de go por ejemplo y hay gente que lo usa, otros que no...

PhDfailer

#44928

#44928sergioRG:

una bióloga pasada por bootcamp

eso es desautorizante?

lo digo porque yo soy biólogo y he hecho un master de ingenieria informática y tenía que hacer "carry" en todas las asignaturas a todos mis compañeros, que eran ingenieros informáticos y la mayoría ejerciendo, algunos incluso en puestos de arriba, y si me dijeran que son alumnos de primero de FP me lo creería

el título que tengas no tiene absolutamente nada que ver, en informática hay muchos chapuzas con y sin título, y sorprendentemente algunos escalan la carrera de la rata, supongo que en empresas que con ser figurante y llevar X años ya progresas

TLDR: El título que tengas no importa una mierda

1 respuesta
desu

#44931 lloron, biologo y fpero.

de mal a peor.

#44927Seal67:

no conozco ningún profesor bueno

Yo.

Ayer estuve ayudando a randoms de Twitch de la categoria programacion.

El mejor canal que conoci fue un ingeniero electronico que hacia cosas asi con hardware muy majo.

https://www.twitch.tv/labgluon

Dentro de toda la porqueria de pinta y colorea alineadivs de Twitch, se agradece ver a gente haciendo algo distinto...

1 1 respuesta
W0rd

#44876 obviamente, a poco que sepas de docker sabes que se comparte el kernel, te puedes comer cualquier vulnerabilidad y joderte la maquina host (mas inseguro que una vm).

Aun así, con aislar me refiero a las dependencias que tu proyecto necesita para ejecutarse. Depende el lenguaje pero ahí tienes las versiones de java, python etc.

Mañana decides que tu aplicación va estar disponible en xx país, pues tan fácil como desplegar otro container desde aws en cuestión de minutos. Eso es lo que venden esas plataformas, el poder expandirse horizontalmente de forma muy fácil. Obviamente vas acabar pagando mucho mas, ademas de estar atado a su stack y subida de precios.

Seal67

#44932 Digo de codely eh, tu no has subido un curso ahí que yo sepa XD. Twitch es gratis.

Slowbro

#44881 No estoy tan puesto en arquitecturas/entrenamiento, pero vamos, la sensación que veo entre los leads es de hype por cantidad de aplicaciones que tiene, y no tanto por ser mini Skynet. También es Microsoft poniendo sal en la herida de Google, esta vaca la van a ordeñar hasta que muera xD

Al final puedes meter a tu producto un microfono & altavoz/interfaz con tu smartphone + LLM/GPT-n reducido/quantizado y hasta la nevera te puede dar la turra respecto a que comes mal.

Soltrac

#44912 Y mi pregunta es.....por qué se pierde tiempo en eso? Es que es una puta gilipollez, para subir líneas y que alguien crea que ese tío está trabajando?

3 respuestas
B

#44936 por fin alguien hace la pregunta del millón, mucho refactor técnico veo pero poco aportar valor

B

#44936 Si entra el manager yo no le puedo lamer el falo en el standup porque después dicen que soy alto trepa. Vos tenés que crear JIRAs con nombres grandilocuentes, de gran propósito. Y si es posible etiquetar incluso al VP de product en un comentario para dejar el claro el impacto de tu cambio. Y ahí reventas el refactor, le cambiás todas las líneas, no una, porque vas a ser hábil refactorizador y te comés un garrón de la gran flauta. Vos estabas en un estado de intraemprendimiento violento y de locura. Lo reventaste a refactors, cambiaste 7 constantes de sitio y aplicaste 3 capítulos del Clean Code al azar, ponés un test insulso más arriba, lo parametrizás para demostrar tu estado de implicación con el test driven development y el agile methodology as a way of life. ¿Me explico? Además tenés que crear un JIRA aparte para el test, lo estimás como un día entero y si tenés tareas de documentación otro y vas al sprint retrospective así… Sos indespedible hermano, en 10 días promocionás

13 1 respuesta
TheBrotha

#44938

1 respuesta
eondev

#44939 se llama gpt shur