¿Por qué los tests son un caos? Soluciona todo con el patrón Builder

  Рет қаралды 2,662

Product Crafter

Product Crafter

Күн бұрын

Пікірлер: 21
@Hugofmr91
@Hugofmr91 16 күн бұрын
Tu contenido es todo lo que está bien! Gracias
@ProductCrafter
@ProductCrafter 16 күн бұрын
Me alegro de que te guste! Te gustaría ver videos sobre algún tema específico??
@retamap
@retamap 19 күн бұрын
muy interesante tu contenido, un saludo!
@ProductCrafter
@ProductCrafter 19 күн бұрын
Gracias! Un saludo!
@FranciscoRamirez-im5us
@FranciscoRamirez-im5us 3 күн бұрын
Muy bueno el video, con respecto a la hora de crear un builder para los test, no seria tambien buena idea mezclar tambien el patrón Prototype y asi la inicialización del objeto que quieres testear quede bajo la responsabilidad de la clase a probar. O sea creas un metodo clone dentro de ese modelo y se crea con los valores que uno considere por defecto(segun la lógica del negocio) y si se agrega un nuevo atributo esto queda más desacoplado entre test y los modelos? Otro que se me ocurre es un factory pero Prototype creo que es más idóneo por un tema de dividir responsabilidades ya que el builder no tiene por qué conocer como se inicializa ese objeto.
@ProductCrafter
@ProductCrafter 3 күн бұрын
Claro! Como dices se puede combinar con algo como lo que comentas. Otro patrón muy usado es el Object Mother para crear objetos "tipo" y es combinable con builders para ello. Y luego los valores por defecto que comentas pueden ser incluso valores random en algunos casos. Gracias por compartir!
@adrian-4767
@adrian-4767 15 күн бұрын
Product Crafter tu canal es excelente, la mayoria de KZbinrs de programacion ni siquiera trabajan profesionalmente en la programacion y unicamente les interesa vender cursos, se nota que vos de verdad sos profesional y trabajas en la industria. Espero que tu canal siga creciendo porque es buenisimo, te recomiendo cambies el nombre del canal y la foto (por una que haga referencia a la programacion) y empieces a dejar comentarios en otros canales para que mas gente se suscriba. Muchas gracias por tus videos!
@ProductCrafter
@ProductCrafter 14 күн бұрын
Gracias por el feedback, me alegro que te haya gustado! Pensaré los consejos que me has comentado, tengo muchas dudas con el nombre jaja. Se te ocurre alguno que vaya bien?
@alberto3028
@alberto3028 12 күн бұрын
Creo que sería interesante combinar Object mothers con el builder, de esa forma en los test seguiremos usando object mothers pero con características predefinidas y reutilizables que podrán seleccionarse mediante métodos.
@ProductCrafter
@ProductCrafter 11 күн бұрын
Claro! Los object mothers es el otro gran patrón que me encanta usar en testing. Haré un video sobre ello más adelante. Gracias por compartir!
@wanaldino
@wanaldino 19 күн бұрын
Fan del patron builder o assembly. Personalmente prefiero que el builder haga de storage de las propiedades del init del objeto, hay momentos o lenguajes que tienen objetos inmutables y no puedes ir accediendo a las propiedades para modificarlas 😉
@ProductCrafter
@ProductCrafter 19 күн бұрын
@@wanaldino totalmente cierto! Aunque si tienes muchas puede hacerse engorroso, pero me gusta el concepto.
@kevinaparicio4628
@kevinaparicio4628 17 күн бұрын
estaria bien que hagas un video de patrones de patrones de diseño 😉
@ProductCrafter
@ProductCrafter 16 күн бұрын
Tomo nota! Tengo varios pensados!! Algún patrón en concreto que te interese más??
@kevinaparicio4628
@kevinaparicio4628 15 күн бұрын
@@ProductCrafter la verdad recién comencé a leer de patrones y en backend dice que usa mucho el Repositorio
@jeffersonhernandez8588
@jeffersonhernandez8588 12 күн бұрын
Interesante los ejemplos de aplicación de los patrones de diseño en casos reales o más cercanos a la realidad como este video.
@joreenginer
@joreenginer 19 күн бұрын
Que ventaja tiene poner build() cuando esa clase ya esa builder, ye podrías ahorrar el build usando el dundle __call__ en vez de build no?
@ProductCrafter
@ProductCrafter 19 күн бұрын
Se podría pero quedaría algo como ProductBuilder().with_price(10)() en vez de ProductBuilder().with_price(10).build() ya que queremos poder encadenar llamadas a los métodos que modifican la instancia base. Me gusta más un método nombrado que tener ese () extraño al final. ¿Como lo ves? ¿Usas otras alternativas?
@assass-zs5ef
@assass-zs5ef 10 күн бұрын
Que interesante. Me pregunto si no sería mas simple definir parámetros con datos predeterminados en el constructor de la clase builder y que creara el objeto a partir de estos. La llamada quedaria algo asi: ObjectBuilder(price=13, quantity=2).build() en lugar de ObjectBuilder.with_price(13).with_quantity(2).build() No se si esto tendria algun inconveniente
@ProductCrafter
@ProductCrafter 10 күн бұрын
Buena observación! En lenguajes como python o js podría hacerse como dices y no tendría muchas desventajas (la única que se me ocurre es que hagas alguna validación y el constructor te quede enorme). En otros lenguajes como los compilados lo que comentas se hace más complicado al no tener cosas como los kwargs de python. Gracias por compartir!
Refactoring: lecciones desde las trincheras
30:38
Product Crafter
Рет қаралды 593
СИНИЙ ИНЕЙ УЖЕ ВЫШЕЛ!❄️
01:01
DO$HIK
Рет қаралды 3,3 МЛН
Cómo ser Backend Developer en 2025
18:13
Product Crafter
Рет қаралды 6 М.
Hice MI PRIMER JUEGO en C++  pero ...
8:01
jhampo
Рет қаралды 14 М.
Lógica de negocio y de aplicación | clean architecture - #programacionenespañol
7:00
De código espagueti a código PROFESIONAL en 15 Minutos
14:51
Product Crafter
Рет қаралды 11 М.