4 razones por las que tu código APESTA

Sdílet
Vložit
  • čas přidán 2. 05. 2022
  • Si estás buscando trabajo remoto, puedes acceder a Arc desde éste enlace!! 👇🏻👇🏻👇🏻
    ► m.arc.dev/3LSt0oV
    👾 Redes sociales 👾
    ► Twitter: / bettatech
    ► Instagram: / betta_tech
    ► Canal Secundario: / @forkdebettatech
    ► Discord: / discord
    👨🏼‍🏫 MIS CURSOS 👨🏼‍🏫
    👽 Curso de iniciación a la programación con JavaScript:
    ► bit.ly/3kr4bTc
    👽 Curso de desarrollo backend con NodeJS y Express:
    ► bit.ly/3n4sirS
    👕 MERCHANDISING DEL CANAL:
    ► Tienda CZcams: / bettatech
    ► Tienda Teespring: teespring.com/stores/bettatec...
    ⭐️ AFILIADOS ⭐️
    🎁 7% Descuento en HOSTINGER (Código BETTATECH)
    ► www.hostg.xyz/aff_c?offer_id=...
    🐾 MacPaw (CleanMyMacX):
    ► macpaw.audw.net/c/2523912/941...
    📝 Todoist:
    ► doist.grsm.io/martincristobal...
    🎵 TODA la música es de EpidemicSound:
    ► www.epidemicsound.com/referra...
    ✉️ CONTACTO PROFESIONAL:
    ► Respuesta no garantizada:
    bettatechyt@gmail.com
    📚 LIBROS 📚
    Design Patterns
    ► amzn.to/39XuQlq
    Head First Design Patterns
    ► amzn.to/2uq6XUq
    Refactoring
    ► amzn.to/2SQnf2c
    Clean Architecture
    ► amzn.to/3bZVonJ
    Clean Code
    ► amzn.to/32WVKq3
    Introduction to Algorithms
    ► amzn.to/34SyVFP
    Cracking the Coding Interview
    ► amzn.to/2QkdwC6
  • Věda a technologie

Komentáře • 99

  • @JSMonroe3
    @JSMonroe3 Před 2 lety +83

    Tu código no puede apestar si no haces código 😎👌

  • @HolaMundoDev
    @HolaMundoDev Před 2 lety +215

    Gran video! esos code smell toca refactorizarlos!

  • @leonardovemos7490
    @leonardovemos7490 Před 2 lety +29

    Sería genial que hagas un vídeo sobre la infraestructura detrás de Netflix o de todas las plataformas de Streaming como Prime Video, HBO Max, Disney +, etc

  • @geronimo7261
    @geronimo7261 Před 2 lety +7

    Muy buen video, hace unos meses entré a un nuevo trabajo y lastimosamente el proyecto en el que me tocó entrar (un proyecto de ya varios años), había code smell por todas partes, ahora hemos empezado un nuevo proyecto desde 0 y decidí tomar las riendas del desarrollo para guiar a los que están conmigo y evitar estos problemas, saludos desde Argentina!

  • @gpcardano
    @gpcardano Před 2 lety +5

    Gran vídeo. Es importante apuntar que introducir code smells no te hace necesariamente un mal desarrollador. Me explico. En proyectos lo suficientemente grandes suelen ir apareciendo de forma silenciosa y progresiva (a mí me termina pasando con las Clases Gigantes). Lo importante es darse cuenta e ir refactorizando de vez en cuando para aplicar soluciones según vayan apareciendo.

  • @davidmataviejo3313
    @davidmataviejo3313 Před 2 lety +2

    Excelente video, muchas gracias! Por favor no dejes de subir videos de patrones de diseño. Tus explicaciones y ejemplos realmente me ayudan a entenderlos.

  • @agustinlazo1831
    @agustinlazo1831 Před 2 lety +8

    Hola martín, que buen video y aporte al desarrollo profesional. Como siempre muchas gracias por compartir tus conocimientos!! Saludos 🖖

  • @GeekCyan
    @GeekCyan Před 2 lety +1

    Gran video toda la razón, ojalá y en un futuro puedas abordar temas de testing y QA. Muchas gracias por tu contenido en cada vídeo siempre se aprende algo nuevo 💻⚛️

  • @mariosarmientos6991
    @mariosarmientos6991 Před 2 lety +3

    que nefastas esas personas que dejan código muerto, inaceptable! *procede a empezar a quitar toneladas de código muerto de sus proyectos*

  • @andresbustamante972
    @andresbustamante972 Před 2 lety +2

    Me encantan tus videos hablando de escribir código más limpio.

  • @fernandoacosta7356
    @fernandoacosta7356 Před 2 lety +1

    Gran video! Sería bueno que hablaras sobre los side effects, esas funciones que solo deberían regresar un valor, pero en el proceso te actualizan otros valores "globales" y no sabes ni por qué.

  • @rush2112chile
    @rush2112chile Před 2 lety +1

    Excelente video, como siempre nos entrega información muy valiosa. Gracias ☺️

  • @RDCST
    @RDCST Před 2 lety

    Nunca utilice control de versiones, he visto que algunos entornos tienen pero como siempre estoy corriendo a contra reloj no quiero arruinar lo que ya tengo hecho por probar algo nuevo.

  • @s4vitar
    @s4vitar Před 2 lety +7

    ¿Me estás tratando de decir que huelo mal?

  • @DonDregon
    @DonDregon Před 2 lety +5

    Traducción a programación funcional para los que usamos React con Hooks, Next JS o simplemente cualquier cosa JS con funcional + imperativa.
    Lo de crear clases específicas podéis hacerlo igualmente, que para algo JS es multiparadigma, si no queréis añadir clases, de igual modo podéis generar funciones que devuelvan objetos custom con la estructura de datos que necesitéis.
    Cuando se habla de clases gigantes, aplicable también a funciones gigantes (los componentes son también funciones).
    Recordad los dos conjuntos de principios más importantes del desarrollo de software: SOLID y KISS.
    El último code smell en programación funcional se soluciona rápido con una carpeta utils en cada contexto, esto es core/utils, api/utils (o api/users/utils) y dentro un fichero por cada conjunto de utils que tenga sentido mantener juntos. i.e. core/utils/images (convertir a base64, manipulaciones etc), core/utils/criptography (funciones para hashear passwords etc).
    ** Flies away **

  • @BYRLMEJOR
    @BYRLMEJOR Před 2 lety

    en el minuto 6 yo tengo mi carpeta utils donde dejo mis funciones, clases o codigos pequeños que son utiles pero a lo mejor no los utilizo actualmente. hasta el proximo refactor general me gusta tenerlos. por ejemplo, subir una imagen al servidor? porque no desarrollar otra funcion para standarizar la calidad de las imagenes o una funcion para asignar nombres a archivos. Lo dejo ahi antes de utilizarlo y la verdad me va bien a la hora de trabajar en otra parte del codigo y revisar las antiguas soluciones planteadas, normalmente las hago desde cero pero siempre me ayudan con ese enfoque extra que hacia falta

  • @j.sebastian7705
    @j.sebastian7705 Před 2 lety +1

    Prefiero que mi codigo apeste y no apeste mi personalidad, como la clase de personas que son algunos programadores.

  • @relarbaelish
    @relarbaelish Před 2 lety

    Con el tema de borrar funciones que no se usan tengo una duda. Si bien podemos recuperar una función borrada por Git, ¿hay herramientas para buscarla sin saber a qué commit pertenece?

  • @ZohKrahM
    @ZohKrahM Před 2 lety +5

    Trabajé en un proyecto donde habían métodos con más de 20 parámetros. Eran métodos donde se hacían insert/update a la base de datos, entonces cada columna de la tabla afectada estaba como parámetro en el método 🤦

    • @subwhite_73
      @subwhite_73 Před 2 lety

      XD, es que hay momentos donde el cerebro se desconecta ;v

  • @JesusFerVid94
    @JesusFerVid94 Před 2 lety +15

    Voy a aportar 2 _code smells_ más, de mi profesor de Videojuegos, relacionados entre ellos.
    El primero es obvio pero digno de mención: repetir código o tener bloques de código muy grandes para realizar una tarea. Por definición, la solución en ambos casos es convertir ese bloque en un método.
    Y luego el segundo. Tener una lista de if-else kilométrica. Mi profesor decía que las ristras de if-else eran el demonio en persona. Y los switches también eran malvados.
    Una solución que propuso para eso era crear una estructura para mapear. Es decir, vincular un input, una condición, un estado de variable... con una función. Y luego, en una sola línea, ejecutar la función asociada a dicho estado. En algunos lenguajes como C++ hay que meterse con punteros a función... en otros como Java es muy sencillo, literalmente ya existen Map, Predicate, Function, lambdas...

    • @fullgames926
      @fullgames926 Před 2 lety

      Te refieres a las funciones de órden superior como los callbacks no?

    • @papasdequesoxd3230
      @papasdequesoxd3230 Před 2 lety

      Para bloques de if/else podría aplicarse un patrón de diseño como Strategy

    • @JesusFerVid94
      @JesusFerVid94 Před 2 lety

      @@fullgames926 En JavaScript, por ejemplo, esa sería la forma. La cosa es que cada lenguaje pone su nomenclatura y forma de implementarlo, pero sí.

    • @JesusFerVid94
      @JesusFerVid94 Před 2 lety

      @@papasdequesoxd3230 Siempre que en cada if-else lo que haya sea una implementación (Estrategia) diferente. Si los if-else están puestos para crear objetos de un tipo u otro, igual interesa más un Abstract Factory, por ejemplo.

  • @nikolam-dev
    @nikolam-dev Před 2 lety

    Nice video, por cierto que monitor estas usando? ... se ve precioso

  • @jaimeciriacobeaumont1924

    arc sirve si quieres venderte como programador en c# en Unity para una empresa de videojuegos? Si no es así conocen alguna plataforma para ello?

  • @edeari
    @edeari Před 2 lety +2

    Es curioso cómo el código que me encuentro en la empresa cumple prácticamente todos los code smells... Ojalá poder cambiarlo. Buen vídeo!

  • @batdevilhugo
    @batdevilhugo Před 2 lety

    Sinceramente es el mejor canal, aprendo mucho de esos detalles, saludos desde Bolivia

  • @moisespineda1789
    @moisespineda1789 Před 2 lety

    La verdad eso es algo que me frustra mucho, siempre que hago codigo lo hago siendo muy basico para las funcionalidades sabiendo que hay maneras de ser consiso.... pero nunca se me ocurre la forma de implementar un codigo mejor.

  • @matatabi_exe
    @matatabi_exe Před 2 lety

    Que marca y modelo son las bocinas que tienes en tu pc en el escritorio ?

  • @vetiam
    @vetiam Před 2 lety

    Muy enriquecedor, como siempre excelentes videos en su canal salu2.

  • @Zhiel01
    @Zhiel01 Před 2 lety

    1:07 Que buen detalle de edición!

  • @Jeremaia21
    @Jeremaia21 Před 2 lety

    Excelente video, muy buenas indicaciones para tener en cuenta de ahora en adelante je...

  • @wiedens-justociurlizza7766

    Muy pero muy util informativo, incluso en mis APIS REST paso 02 objetos. Disculpe ingeniero, somonse llama la herramienta en el 7:55 para revisar codigo que apeste ARQUE? nombre exacto por favor, trabajo con visual Code no con github, y hay herramientas para ver que CLASES O Id de elementos o script de css que no se estan usando? Por ejemplo un script que da color a un boton el cual no aparece en todo el sistema?

  • @erickjhormanromero6905

    Gracias por el vídeo y que referencia es tu monitor de atrás?

  • @elturco9573
    @elturco9573 Před 2 lety +12

    Me apiado de los programadores que estan atados a trabajar con lenaguajes dinamicos. Cualquier compilador detecta codigo muerto, funciones o variables sin utilizar. Ademas dado de que los tipos de los parametros deben especificarse es mas facil discernir sobre que hace cada uno (con un buen nombre que ayude), pero en general todos los consejos tambien aplican, claro. Deberias continuar con Rust, al menos 2 veces por semana, que sino la proxima que quieras retomarlo vas a tener que empezar de nuevo, y la proxima empezar de nuevo, y la proxima.

    • @xdneos
      @xdneos Před 2 lety +5

      Para la mayoría de las cosas que mencionaste es por lo que se utilizan linters para que te marque ese tipo de detalles en el editor, especialmente con lenguajes no fuertemente tipados como lo son JS

    • @erickjhormanromero6905
      @erickjhormanromero6905 Před 2 lety +2

      Que comentario sin sentido. Yo creo que eres de los que tira a veces esos code smell

    • @chaseheadquarters
      @chaseheadquarters Před 2 lety

      A lo mejor es por eso que se llama Rust (Óxido en inglés), porque si lo dejas, te oxidas... :P

    • @misterl8129
      @misterl8129 Před 2 lety +1

      pleno 2022 y aun piensas que un lenguaje compilado son mejor, lol

    • @elturco9573
      @elturco9573 Před 2 lety

      @@misterl8129 yo no dije eso xd

  • @maycolpereyra4616
    @maycolpereyra4616 Před 2 lety +1

    Otro gran video para el canal 👌🏻

  • @toniduque4882
    @toniduque4882 Před 2 lety +2

    Nadie sabrá lo que es un código apestoso hasta que vean el mío.

  • @sebastiansuazo2734
    @sebastiansuazo2734 Před 2 lety

    Bueno, ahora entiendo por que mi prueba de selección en TCIT fue rechazada, ese switch me jodio el puntaje de forma astronómica.

  • @dariorey8092
    @dariorey8092 Před 2 lety

    Excelente video, como siempre!

  • @Stephen_2330
    @Stephen_2330 Před 2 lety

    Bienvenido un día más a BettaTech

  • @ChikiLoco172003
    @ChikiLoco172003 Před 2 lety +1

    Que nivel de dificultad tienen las pruebas técnicas en arc?

    • @Arcdotdev
      @Arcdotdev Před 2 lety +1

      Normalmente son creadas para desarrolladores de nivel intermedio a senior :) tú puedes elegir entre una entrevista técnica o un coding challenge!

  • @TheBlackKaiser509
    @TheBlackKaiser509 Před 2 lety

    Tiene BettaTech algún video de lenguaje ensamblador?

  • @elmilitar143
    @elmilitar143 Před 2 lety

    que excelente video muy bueno para tomar apunte

  • @nahuelastor9320
    @nahuelastor9320 Před 2 lety

    Hice un programa para el negocio de mi familia... Contable y de stock. Me quedo muy lindo y facil de usar. Pero cuando lo termine me di cuenta de que pesaba medio giga :S y en si es un programa que solo maneja numeros en una base de datos.
    Mi codigo apesta :(

  • @JesusFerVid94
    @JesusFerVid94 Před 2 lety +1

    4:58 Me ha picado la curiosidad. En ese código, entiendo que 0.1 es 0.1, y 0.2 es 0.2.
    Pero me pierdo en la parte en la que sumas 0.1 + 0.2 y no da _exactamente_ 0.3. Comprendo que después la expresión booleana devuelva _False_ si la operación no da 0.3 exactamente.
    Pero ¿cuál es la explicación? Si fueran variables, lo entendería. Podrían tener diferentes tipos, con sus diferentes precisiones, y no dar justo el mismo valor. Pero estás escribiendo 0.1 y 0.2 en forma de _literales._ Me pierdo en ver la causa de esa pequeña diferencia en el resultado.

    • @BettaTech
      @BettaTech  Před 2 lety +2

      Es por errores pequeños en la representación de valores en coma flotante. Los valores decimales normalmente no se pueden representar de forma _exacta_ en binario, por lo que toda representación va a acumular algunos errores.

    • @NicolasGuerraOficial
      @NicolasGuerraOficial Před 2 lety +1

      Aclarando una cosa, no es que los números con decimales no se puedan expresar en binario de forma exacta, sino que muchas veces se producen números periódicos en los decimales, y el programa debe aproximar el número con una cierta cantidad de bytes. Los números periódicos son por ejemplo 1/3 = 0.3333333333... (el 3 se repite)

    • @JesusFerVid94
      @JesusFerVid94 Před 2 lety

      @@BettaTech Ah, entiendo. Sí, precisamente ahora mismo estoy en un Ciclo Superior de Desarrollo de Aplicaciones Multiplataforma, y en el módulo de Sistemas Informáticos acabamos de pegar un repaso a representación de la información, así que lo tengo reciente.
      Sí, para representar decimales, se usan las potencias de exponente negativo de las bases. Y sí, me imagino que en binario se puede representar cualquier número con parte decimal, pero igual necesitamos tipos de coma flotante de 256 bits jeje.

    • @Shotdie
      @Shotdie Před 2 lety

      @@NicolasGuerraOficial No, no todos los números decimales son representables en IIEE754 que es el estándar de coma flotante, no tiene nada que ver con la periodicidad

    • @NicolasGuerraOficial
      @NicolasGuerraOficial Před 2 lety

      ​@@Shotdie Yo no soy especialista en ese estándar, pero lo que yo quiero decir, es que los decimales no siempre se pueden representar en ese estándar, porque al pasarlos a binario, te pueden quedar con dígitos después de la coma que sean periódicos, es decir, con infinitos dígitos, y ese estándar tal vez no está adaptado para soportarlo. Por ejemplo el número decimal: 0.2 a binario, resulta: 0 . 0011 0011 0011 0011 ..., es decir, el 0011 se repite de forma periódica hasta el infinito.

  • @miguelangelrios3016
    @miguelangelrios3016 Před 2 lety

    Gran video, suscribo!

  • @ThePixelOmega
    @ThePixelOmega Před 2 lety

    Hola, soy un estudiante de ingeniería de telecomunicaciones, estoy aprendiendo por mi parte el lenguaje de programacion C++, una vez que sepa lenguaje C++ en nivel avanzado quiero trabajar de algo para poder solventar algunos gastos en la universidad, no importa si el pago es alto. Alguien con experiencia me podría dar una idea? Se agradecería mucho

    • @slimshady-ec8zq
      @slimshady-ec8zq Před 2 lety +1

      vas por un buen camino. c++ es genial, trabajo actualmente con ese lenguaje, los mejores programadores utilizan ese lenguaje. y gano bien.

  • @valentinarivera8971
    @valentinarivera8971 Před 11 měsíci

    Qué es un parámetro?

  • @lacasadeacero
    @lacasadeacero Před 2 lety

    Yo usaria un array y un for

  • @rubendariohernandezcenteno5259

    Genial eso de enviar un objeto en lugar de muchos params

  • @deerblackzs8419
    @deerblackzs8419 Před 2 lety

    Buenisimo el video, soy yo o el audio va un poco atrasada acorde al moviento de tu boca?

  • @95Ddannyy
    @95Ddannyy Před 2 lety

    Gran video mejor miniatura 😜

  • @lukoppc
    @lukoppc Před 2 lety +1

    Sonarqube hace un gran trabajo reconociéndolos, explicando porque son malos y dando un ejemplo de cómo sería la forma correcta.

  • @Zumito
    @Zumito Před 2 lety +3

    Yo comento las cosas que no se si usaré y despues de ver que definitivamente no las voy a usar, las borro, no uso git porque nunca me llamó la atención y no lo conozco bien, pero intentare probarlo

    • @aresnev9382
      @aresnev9382 Před 2 lety +2

      Git es una tecnología que tenés que saber si o si , básicamente es un conocimiento general

    • @Ni7ram
      @Ni7ram Před 2 lety

      a git lo podes ver como una maquina del tiempo, y de realidades paralelas ramificadas. jaja
      pero tambien es fundamental para trabajar en equipos de programadores.. puede ser q estes acostumbrado a trabajar solo?

    • @misaelpereira9679
      @misaelpereira9679 Před 2 lety +3

      Programar sin usar git, es como vivir en 2022 sin un smartphone.
      Recomendación, aprenderlo cuando puedas que te va ayudar muchísimo

    • @programmingj613
      @programmingj613 Před 2 lety

      es obligatorio saber git si quieres trabajar en equipo. Incluso si trabajas solo es recomendable usarlo.......

  • @rastersoft
    @rastersoft Před 2 lety

    ¿Sólo cuatro? Entonces soy un verdadero profesional 🤣

  • @Jesus-lj3oj
    @Jesus-lj3oj Před 2 lety

    Que son primitivas?

  • @nekosmic
    @nekosmic Před 2 lety

    Yo aquí feliz con mi primer "hola mundo" en phyton x'd

  • @victoravr10
    @victoravr10 Před 2 lety

    Yo tengo una función getDate con switch :(

  • @darkfoxwillie
    @darkfoxwillie Před 2 lety

    Ustedes hacen una clase utils? XD Yo lo que hago es exportar funciones (que serian los metodos de la clase) y ya lol

  • @TGStone560
    @TGStone560 Před 2 lety

    No código?* Megamente.jpg *

  • @Angonca42
    @Angonca42 Před 2 lety

    El código del Yandere Simulator (o como se escriba) directamente era el pie de elefante de la programación

  • @lithiumxp5076
    @lithiumxp5076 Před 2 lety

    Que opinas del abuso de comentarios en el código? Yo siento que cuánto más comentarios tiene se ve más feo xd

  • @matiaswoiciechowski9356

    razon 5: No me da la cabeza para hacerlo más lindo

  • @elcrackent13
    @elcrackent13 Před 2 lety +1

    Todo esto enfocado a Javascript claro

    • @BettaTech
      @BettaTech  Před 2 lety +3

      A cualquier lenguaje en realidad, no creo que sea nada enfocado a ningún lenguaje particular.. todo lo que tenga clases y métodos puede ser susceptible!

    • @lais6611
      @lais6611 Před 2 lety

      @@BettaTech Casi todo lo que comentas te lo detecta el ide solo si es un lenguaje de tipado fuerte y compilado.

    • @BettaTech
      @BettaTech  Před 2 lety

      Pero el ide hace normalmente un análisis previo al compilado, igual se puede añadir una regla de lint en js que detecte si tienes demasiados parametros en una funcion… El compilador no va a fallarte porque tengas 5 parametros (hasta donde sé claro). Quiza un warning dependiendo del compilador

  • @johncerpa3782
    @johncerpa3782 Před 2 lety

    Excelente video

  • @gunnerandersen4634
    @gunnerandersen4634 Před 2 lety

    Cuando pones ese titulo "tu codigo apesta" metes a todo el mundo en el mismo saco, y las cryptomonedas no tienen decimales solo manejan enteros, por eso se definen como una variable, p.e ethereum suele usar 18 como el valor de decimals. Un saludo

  • @misaelpereira9679
    @misaelpereira9679 Před 2 lety

    Me alegra saber que cometo ninguno 😎

  • @epv8986
    @epv8986 Před 2 lety

    Mola ver como estas automatizando el mundo... comida para hoy...hambre para mañana. Pero mientras caiga comidita y euripides a la saca...miramos a otro lado. Apesta la consultoria. Y tener claro que estais destruyendo la sociedad... pero para vosotros es progreso.

  • @edinssonmontoya8186
    @edinssonmontoya8186 Před 2 lety

    Solo 4? XD