@@Programador376 hola, si revisas en la descripción del video, aparece un link donde puedes adquirir este curso, te lo recomiendo, he visto varios cursos pero ninguno tan completo como este.
Ahí es cuando entra seguridad, me ha pasado en varias ocasiones que a partir de una vulnerabilidad descubierta en la aplicación, el cambio requiere modificación a nivel de código, por eso es importante que por lo menos el código pase con un análisis estático donde se revise la seguridad del mismo y cumpla con recomendaciones de algunos estándares de seguridad como por ejemplo OWASP top 10. Y bueno, si el negocio asume el riesgo, se arma una carta de riesgo y yo me lavo las manos :P ¡Saludos!
Hola buenos días, soy de Uruapan, Mich me encantan tus videos, la verdad han despertado un interés muy grande en mi sobre la programación cosa que no sabía, yo siempre quise ser contador pero por falta de ingresos tuve que dejar la escuela y ahora me ha sido difícil retomar ese camino, pero al estar viendo tus videos encontré realmente algo que me gusta, algo que se me hace interesante para aprender, quiero tomarme la libertad de pedirte que si me puedes ayudar en convertirme en un gran programador como tú, ya que no encuentro la forma o por dónde empezar, mas que nada quiero que seas mi maestro el día que yo consiga un mejor trabajo te lo recompensare ya que paso por un momento difícil.
Refactorizar cuando la implementación se implemente de manera implementativa por lo implementado en l implementación por los implementadores que implementaron lo ya implementado.... totalmente claro😅😅😅 un saludo desde Colombia. Me encantan tus vídeos, me hicieron enamorar de la programación
Hola Nicolás, muy buen video!... me gustaría que tuvieras este tema para un nuevo video "pruebas automatizadas de software", un Saludo! desde Colombia.
Uhhh excelente tema. No vi el video pero estoy seguro que la info que vas a dar va a ayudar un monton. Mas que nada a los que no somos tan seniors y queremos meterle mano a todo.
Ojalá hubiera visto este video hace 3 años. Me obsesioné con estar actualizando el código a las últimas versiones y con las últimas tendencias de desarrollo. Finalmente entendí que al usuario final no le importa que tecnologías utilices, solo le importa que funcione y que resuelva su necesidad. 👌🏻
Me gustaría que vos dentro de este mundo de la programación con tanto contenido, darme un sentido más completo en el cual me pueda orientar. soy apasionado por la tecnología pero a veces quisiera aprenderlo todo, y como vos sabes pues es imposible y eso interrumpe ser especialista en algún lenguaje y llevar a productividad lo aprendido. Me pasa mucho ya que me gustan muchos temas también como la electrónica, la seguridad informática entre otros. Entonces tengo ese mundo múltiple de aprendizaje. Es como poder aplicarlo eficientemente
Muchas veces en el code Review piden cambios que hacen mucho sentido. El tener pruebas con cobertura del 100% te da la confianza de implementar el cambio sugerido sin romper lo que habías programado.
Cierto! Aunque no consideraría cambios de un code review como refactor ya que aún no está implementada la funcionalidad, un PR sigue siendo una propuesta.
hola! recomiendas aprender colemak o dvorak con vim? como haces cuando tienes que pasar de una maquina a otra. Gracias por tu respuesta! saludos desde Argentina!
Excelente como siempre los videos! Te consulto me podrías guiar estoy recién recibido de Perito Informático quiero saber que me recomendarías para ir profundizando en el mundo de la forencia, que cursos o a que puedo apuntar . Muchas gracias
Hola ! Me parecen muy buenos tus análisis y opiniones, veo qué haces mucho hincapié en el tema del tamaño de los equipos, qué tal suena la idea de un video al respecto ? Diferencias entre un equipo grande y uno pequeño, algunas sugerencias o experiencias que hayas tenido en ambos escenarios, etc; soy tech lead y sería muy padre saber tus impresiones, saludos desde México 😃
@HolaMundo podrías por favor hacer un video explicando mas sobre el mundo del Data Science? Estoy recién conociendo este mundo de la programación gracias a tus videos y me interesa mucho las oportunidades laborales en este campo! Desde ya muchas gracias por los videos tan geniales que nos regalas! Saludos desde Perú!
En mi trabajo me toco un recibir un código ya hecho, me tarde un tiempo entendiéndolo y cualquier cambio era un machetazo al código tratando de arreglar las fallas, al final pedí autorización para hacerlo de nuevo, era tan redundante, daba tantas vueltas y tanto código, props por demasiados hijos, repetitivo y tan demorado de leer todo que me autorizaron volverlo a hacer.
Saludos excelente videos!!!, te tengo una pregunta, has programado alguna vez en: Java, C#, C++, PHP, etc... para el Backend de un proyecto ? pues pregunto por que en los videos que he visto nunca has tocado o hablado sobre estos lenguajes o si te gustan.
Muy importante para el éxito de los ajustes del código mantener los cambios de forma secuencial dentro del control de versiones. excelente vídeo Nicolas
@@deathshootergd585 No necesariamente, no todos se manejan bien en patrones de diseño, por ejemplo y les puede generar confusión en primera instancia, pero está lejos de decir que esté mal. Saludos!
Para hacer software se requiere de metodología, estándares y un montón de cosas estructuradas, el arte no requiere eso. Algunos sistemas son hermosos, son hermosas obras de INGENIERIA, no obras de arte. Por más "hermoso" (estructurado, patrones, eficiente) que sea tu código no es una obra de arte, es de ingeniería.
En caso de refactorizar, en mi opinión, debería abrirse un nueva rama en tu sistema de control de versiones. Así evitas que literalmente la "cagues", ya sea que trabajes en equipo o solo. Así siempre podrás volver al ultimo punto de partida :). Saludos desde Perú.
Se te olvidó mencionar que al re factorizar se debe tomar en cuenta si hay una integración de ramas, a mi me pasó que tuve un proyecto donde un modulo se le agregaría mucha funcionalidad y el equipo quería re factorizar y lo hicimos pero a la hora de integrar las ramas habíamos tocado los otros módulos y aún que nuestra rama funcionaba a la perfección y se optimizó bastante y era la segunda más importante no se realizó la integración por qué había 2 ramas que no quisieron integrar por qué agarraron de pretexto que dañaría la funcionalidad.
Eso es mala planificación, el mismo equipo de la funcionalidad debió refactorizar, pero si pudieron implementar una funcionalidad antes que el mismo redactor habría que evaluar si el redactor valía la pena
Hola Nicolas, me gustaría saber si al nivel en que tu estas es mucho más normal trabajar con estructuras de datos más complejas binary trees, priority queues ... etc
Hola ¿Porqué sugieres que debería tener un equipo? Es cierto que solo avanzo más lento. Y también que me gustaría tener un equipo pero mi empresa aun es pequeña. Gracias por tus videos me motivan a mejorar y seguir aprendiendo!
Ciertamente con un equipo se puede avanzar mas rápido en ocasiones o también retrasarte en otras, el punto es que si tienes una empresa el tener un equipo te ayudara al permitirte delegar tareas, ya sean dirigidas a mantener un proyecto grande o desarrollar diferentes proyectos, también puede servir a la hora de abordar un problema a tener diferentes puntos de vista
Hola hola, está es una pregunta diferente ¿me gustaría saber las medidas de tu escritorio? La verdad es que ando planeando comprar uno para estar más cómodo tanto con mis monitores y brazos. Saludos desde México
Hola Nico !! Muy buenos tus videos Cómo ves una persona en el equipo que en el medio de un sprint solo hablé de refactorizar, existe un puesto específico en ves de devs, un refactor Sr ? Jajaja Que se hace con ese tipo de personas ?
Y bueno, una cosa igual que puede ayudar mucho es que cuando te toque hacer algo nuevo o tocar algo existente, aplica la regla del boy scout. "Deja más limpio que cuando llegaste" y con limpio no es hacer todo a la pinta tuya, estudia los valores y procesos de la empresa o compañía que trabajes y se pulcro.
@@HolaMundoDev lo del boy scout, como entendido se refieren, es sobre lo que tocas (tú tarea solo). Como ir de acampada, limpiar donde uno estaba, no dejar suciedad.
Nicolas, hay un debate muy bueno que trata sobre el uso de Stored Procedures vs ORM, poner la lógica de negocio en los Stored Procedures o dejar la base de datos únicamente para los datos. Sería excelente escuchar tu opinión al respecto. Saludos!
Yo estoy en contra de los stored procs por dos cosas: En todas las empresas que he trabajado donde usan stored procs, ninguna mantiene los stored procs en git. También es difícil mantener las pruebas unitarias de dicha lógica de negocios sincronizada con el resto del código. Sin embargo, con un ORM, la lógica de negocio, como está junto con el código del backend, y el código del backend está (espero) git, es muchísimo más fácil hacer rollbacks si fuera necesario.
TLDR: ORM (es decir como parte del código de la aplicación). La lógica del negocio se modela mejor con POO. Los Stored Procedures son buenos para realizar operaciones sencillas y de uso frecuente, algo así como utilidades. Otro caso de uso son los campos computados. Modelar la logica del negocio solamente en stored procedures es una locura. Por otro lado, tener la lógica de negocio fragmentada en dos o mas lugares diferentes atenta contra la separación de responsabilidades. Por lo tanto, lo más recomendable es implementar la lógica del negocio en la aplicación, ya sea en el mismo Modelo o en una capa de servicio.
@@ecavero1 Se puede hacer, nadie dice que no, pero por lo menos personalmente pienso que no es la mejor alternativa. En mi actual empresa solo para agregar una nueva forma de facturación hay que hacer un montón de cambios en SPs y cruzar los dedos para que no rompas nada de lo que ya funciona, incluso hacer condicionales para comprobar el tipo de facturación que se está haciendo, cosa que está mal porque en POO solo pasas por ejemplo una clase que implemete IFacturacion y listo, no tienes que modificar otras clases...
hola, que consejo me das, actualmente soy el único desarrollador web en la empresa donde trabajo, igual en una startup, consejo para mejorar la productividad, ya que yo me encargo básicamente de todo :/ pero la paga es buena,
Estaría bueno, que grabaras el comercial de Hola Beats con una playera verde limon para que luego con edición pareciera que usas una diferente cada vez.
cuando veo tus videos me motivan un montón para entrar en el mundo de programación, pero a veces me siento completamente estancado y tras horas de tener abierto el IDE, no hacer nada de código, algún consejo para poder de alguna manera hacer que me fluya empezar a escribir código sin parar ?
Gracias por todo el conocimiento que compartes a la comunidad. Y principalmente a mí, ya que soy relativamente nuevo y tus consejos me han ayudado a seguir mejorando como desarrollador. Saludos desde Panamá
Si estás desarrollando y encuentras algún candidato a refactorizar, considera esto: - estás familiarizado con el diseño del software? Sino, consulta a un dev con más experiencia. - existen unit tests? Si no, es mejor agregar unit tests primero y dejar el redactor para después. - el refactor es menos complejo que la tarea que estoy realizando? Si el redactor te va a tomar más tiempo que tu tarea, consulta a tu equipo para refactorizarlo. Saludos y buen tema de discusión 😉
Para mi si la refactorizacion mejora el rendimiento se debe hacer... Por otro lado no solo en codigo de Programacion front y Back sino tambien en Bases de Datos...
Aqui les traigo uno de los primeros pasos para mejorar el rendimiento a la hora de refactorizar, eso si tomen en cuenta la validez en el tiempo de la data.... developer.mozilla.org/es/docs/Learn/JavaScript/Client-side_web_APIs/Client-side_storage
Una refactorización de código se hace por uno de dos motivos. Caso 1: Legibilidad, mantenibilidad y testing: en este caso, el código tras la refactorización debería ser mas fácil de entender ya que debería hacerse para conseguir que sea más legible y autodescriptivo, usando correctamente nombres de funciones, variables, encapsulando comportamiento técnico en funciones, etc. Si tras este tipo de refactorización, el código no fuese más fácil de entender, creo que es posible que la refactorización no haya sido todo lo buena que debería haber sido. Caso 2: Optimización y performance, en este caso es posible que quede mas complejo de entender y puesto que el código siempre debería ser legible y autodescriptivo, solo habría que hacer este tipo de optimización cuando sea estrictamente necesario (en este caso creo que no queda mas opción que mejorar nuestras habilidades técnicas para ser capaces de entenderlo).
@@mecachislamar5 exacto, creo que me sucede el segundo caso (pues involucran procesos que tardan horas en las maquinas virtuales de la empresa, y se busca la optimizan) El problema es que ni siquiera el creador original recuerda bien como interpretar la totalidad del codigo jajaja
@@veritas8122 Jajaja, te entiendo, es complicado cuando se trabaja con procesos masivos. A veces la única solución es buscar un equilibrio, que permita optimizar pero sin perder la legibilidad en lo posible (aunque esto requiera sacrificar un poco de performance) sino se corre ese riesgo que comentas, esto es algo que nos pasa a menudo, porque no es nada sencillo. Al final, si el código es óptimo pero no somos capaces de mantenerlo acabamos teniendo un problema el día que aparece un bug o que tenemos que agregar algún nuevo caso, por eso yo intento siempre buscar ese equilibrio... pero no es fácil y no siempre se consigue.
Buenas noches Master, saludos desde Venezuela, acabo de cer un video que publicaste hace como dos años, se titula: "7 cosas que debes aprender para encontrar trabajo como desarrollador." Mi pregunta es: sigue siendo valido este video 2 años después, o existen nuevas cosas que no están en el video para este 2021? PD: Me gusta tu canal, un gran trabajo!
creo que sigue siendo válido, los lenguajes agregan nuevas funcionalidades y de vez en cuando sale una librería o framework nuevo, pero definitivamente hay mucha menos fatiga que antes.
@@HolaMundoDev Gracias por tomarte el tiempo y responder! Me gustan tus videos y te has ganado un suscriptor y un golpeador del mald*to boton jaja! Por cierto compre tu curso de Phyton, solo lo ojié, y me gusto que pusieras de todo un poco par alguien como yo que esta desde cero! 🤗
Nico, a pesar que hay puntos que pueden ser debatibles y estando de acuerdo con muchas de las cosas que mencionas acá ¿Cuál crees que sería la mejor idea cuando existe una aplicación deprecada, enorme, dependiente de muchos otros sistemas orbitando, una base de datos inentendible, sin ningún tipo de pruebas y además con flujos críticos? Saludos!
Si me permites compartir mi opinión, yo creo que en este caso, es mejor rediseño y re implementacion del sistema ya que, tomando en cuenta todo lo que tienes que reorganizar y actualizar, creo que es más sencillo volver de cero, bueno, no tanto porque ya se tiene la idea y el flujo que debe seguirse, y, dependiendo del tipo de base de datos que manejas, extraer el código SQL y modificar o reescribir lo que no tenga que ver con las entidades principales de tu DB
@@HolaMundoDev Hay un video que habla acerca de cómo refactorizar código legacy con TDD. El tío hace TDD al revés para atacar esos casos; es decir, empieza a implemetar pruebas a una funcionalidad en particular. Luego, refactorizaba y volvía a correr la prueba arrojaba el mismo resultado que antes. EDIT Este es el video: ruclips.net/video/_NnElPO5BU0/видео.html
Una vez me puse a refactorizar un código así porque me dolían los ojos al mirarlo y la experiencia fue algo frustrante. Conseguí compactar y simplificar varios cientos de líneas pero había miles de ellas a modo Spagetti code... cada vez que alguien implementada una nueva funcionalidad se aplicaba la teoría de las ventanas rotas y siempre se enmarañaba... Difícil decisión, hacer la vista gorda si funciona sabiendo que es una bomba de relojeria o frustrarse refactorizando... También se suele hacer la de 'pasar la patata caliente' al último que entre al proyecto...
Algún consejo para un desarrollador Junior, que está comenzando en este mundo y le es nuevo js, react, ts, jest, tdd y no sentirse abrumado con tantas cosas que aprender, tener que dominar en un periodo de tiempo algo corto. Y sentir que no avanzas prácticamente nada. Saludos
Usa el principio de divide y vencerás. No quieras abarcar todo al mismo tiempo. Elegí un solo tema de estudio y seguí con el mismo hasta que tengas un cierto dominio. Implementa ejemplos, no solo estudio teórico. Luego cambia a otro tema o a algo más complejo de ese tema. Y nunca vas a dominar nada en un corto período de tiempo. Nadie lo hace.
Si encuentro funciones que se ejecutan constantemente causando múltiples consultas a base de datos, disminuyó los llamados a funciones usando una variable, y cuando encuentro mismas funciones en distintos segmentos de la aplicación los meto en un solo archivo, lo hago y punto no consulto soy el senior jeje... Me gustaría un video sobre pruebas unitarias, solo para mejorar conocimientos, saludos.
es raro pero siempre en todos los trabajos que eh tenido me han contratan para refactorizar(todo el proyecto)!! 😅😅 No se si es bueno o malo, pero todos mis trabajos los eh conseguido asi.
3 года назад
Trabajo solo, lastima que el "buscar" un equipo ya no depende de mi. Maldito legacy code!!!
Con respeto, se nota que eres más RUclipsr que desarrollador. Mal consejo ese de no refactorizar o hacerlo poco o a destiempo, malo de cojones. El problema es que tienes a muchos seguidores juniors que te harán caso y todo... Compañeros, no le hagan caso.
Al contrario, tengo 10 años de experiencia como desarrollador. No hay que caer en el rabbit hole de andar refactorizando porque si y porque no, hay que tener razones de peso. De lo contrario solo se pierde tiempo.
@@HolaMundoDev hay que refactorizar a menudo, evitando código duplicado y tamaño inadecuado de métodos, porque si no, acabas con un monolito inmantenible, que echa para atrás en el mantenimiento futuro a los que vengan detrás. Obvio si estás en un proyecto un año o menos, te dará igual la calidad del proyecto. Un consejo, para que no te confunda como RUclipsr, enseña más código, crea y mantén repositorios en GitHub. Te servirá para tener más credibilidad. Llevo en esta industria más tiempo que usted, 17 años, más los de la universidad, ya que sacas la carta del tiempo que llevas haciendo esto.
@@aironmanDiver no hay que refactorizar a menudo, hay que construir soluciones e implementar código mucho más que refactorizar. Refactorizar por refactorizar solo te matará la productividad. Y lo del tiempo de experiencia no era para compararme contigo. Era ora contraargumentar que dices que soy más RUclipsr que desarrollador.
Ningún código es perfecto. Por eso en lo personal me gusta la filosofía del TDD. Hacer un test, fallar, implementar la mínima solución que funcione. Pasar el test. Refactorizar o pasar al siguiente test, dependiendo del caso.
El problema es cuando quieren aliviar manias. Sin argumento, solo gustos. O incluso menos modular, falla más, más esfuerzo para lo mismo... Y ya era legible y bueno.
Cada que veo un video que dura poco más de 10 minutos me desuscribo, aprecio la intención pero el clickbait y la monetizacion es perdida de tiempo para mi
Solo quería mencionar que el curso python sin fronteras está excelente !! Muchas gracias y lo estoy disfrutando … 🤓
Bro donde queda ese curso de python sin frontera?
@@Programador376 hola, si revisas en la descripción del video, aparece un link donde puedes adquirir este curso, te lo recomiendo, he visto varios cursos pero ninguno tan completo como este.
la verdad no lo he comprado ya que bastantes reseñas dicen que de python tiene poco, es eso verdad?
Se entiende perfectamente el punto expresado en el minuto 3:56, diría que es una de las situaciones más probables de darse. 🤔
Saludos al prof. Óscar un capo y groso también.
@@tejedordealas ¡Gracias, Humberto! 😉 saludos
Justamente acabo de tener una Reunión con el líder sobre unos refactors que hay que hacer y boom! veo tu video en mi feed xD. Buenos datos!
Ahí es cuando entra seguridad, me ha pasado en varias ocasiones que a partir de una vulnerabilidad descubierta en la aplicación, el cambio requiere modificación a nivel de código, por eso es importante que por lo menos el código pase con un análisis estático donde se revise la seguridad del mismo y cumpla con recomendaciones de algunos estándares de seguridad como por ejemplo OWASP top 10.
Y bueno, si el negocio asume el riesgo, se arma una carta de riesgo y yo me lavo las manos :P
¡Saludos!
Hola buenos días, soy de Uruapan, Mich me encantan tus videos, la verdad han despertado un interés muy grande en mi sobre la programación cosa que no sabía, yo siempre quise ser contador pero por falta de ingresos tuve que dejar la escuela y ahora me ha sido difícil retomar ese camino, pero al estar viendo tus videos encontré realmente algo que me gusta, algo que se me hace interesante para aprender, quiero tomarme la libertad de pedirte que si me puedes ayudar en convertirme en un gran programador como tú, ya que no encuentro la forma o por dónde empezar, mas que nada quiero que seas mi maestro el día que yo consiga un mejor trabajo te lo recompensare ya que paso por un momento difícil.
Si funciona, no lo toques 😆
Lol, yes
Amén
@@HolaMundoDev mejor extenderlo😂
Besto patron de diseño
Mediocridad
Refactorizar cuando la implementación se implemente de manera implementativa por lo implementado en l implementación por los implementadores que implementaron lo ya implementado.... totalmente claro😅😅😅 un saludo desde Colombia. Me encantan tus vídeos, me hicieron enamorar de la programación
Muy claro colega 🤪
Que implementó la implementación
Hola Nicolás, muy buen video!... me gustaría que tuvieras este tema para un nuevo video "pruebas automatizadas de software", un Saludo! desde Colombia.
Uhhh excelente tema. No vi el video pero estoy seguro que la info que vas a dar va a ayudar un monton. Mas que nada a los que no somos tan seniors y queremos meterle mano a todo.
Ojalá hubiera visto este video hace 3 años. Me obsesioné con estar actualizando el código a las últimas versiones y con las últimas tendencias de desarrollo. Finalmente entendí que al usuario final no le importa que tecnologías utilices, solo le importa que funcione y que resuelva su necesidad. 👌🏻
Me gustaría que vos dentro de este mundo de la programación con tanto contenido, darme un sentido más completo en el cual me pueda orientar. soy apasionado por la tecnología pero a veces quisiera aprenderlo todo, y como vos sabes pues es imposible y eso interrumpe ser especialista en algún lenguaje y llevar a productividad lo aprendido. Me pasa mucho ya que me gustan muchos temas también como la electrónica, la seguridad informática entre otros. Entonces tengo ese mundo múltiple de aprendizaje. Es como poder aplicarlo eficientemente
Este es un tema muy importante, gracias por tu aporte que siempre es bienvenido.
Muchas veces en el code Review piden cambios que hacen mucho sentido.
El tener pruebas con cobertura del 100% te da la confianza de implementar el cambio sugerido sin romper lo que habías programado.
Cierto! Aunque no consideraría cambios de un code review como refactor ya que aún no está implementada la funcionalidad, un PR sigue siendo una propuesta.
Excelente video. Desconocía todos los puntos que se deben tomar en cuenta para tomar la decisión de refactorizar. Gracias por la información 👋
hola! recomiendas aprender colemak o dvorak con vim? como haces cuando tienes que pasar de una maquina a otra. Gracias por tu respuesta! saludos desde Argentina!
Excelente como siempre los videos! Te consulto me podrías guiar estoy recién recibido de Perito Informático quiero saber que me recomendarías para ir profundizando en el mundo de la forencia, que cursos o a que puedo apuntar . Muchas gracias
Hola ! Me parecen muy buenos tus análisis y opiniones, veo qué haces mucho hincapié en el tema del tamaño de los equipos, qué tal suena la idea de un video al respecto ? Diferencias entre un equipo grande y uno pequeño, algunas sugerencias o experiencias que hayas tenido en ambos escenarios, etc; soy tech lead y sería muy padre saber tus impresiones, saludos desde México 😃
@HolaMundo podrías por favor hacer un video explicando mas sobre el mundo del Data Science? Estoy recién conociendo este mundo de la programación gracias a tus videos y me interesa mucho las oportunidades laborales en este campo! Desde ya muchas gracias por los videos tan geniales que nos regalas! Saludos desde Perú!
La verdad es que muy útil.
Saludos crack
En mi trabajo me toco un recibir un código ya hecho, me tarde un tiempo entendiéndolo y cualquier cambio era un machetazo al código tratando de arreglar las fallas, al final pedí autorización para hacerlo de nuevo, era tan redundante, daba tantas vueltas y tanto código, props por demasiados hijos, repetitivo y tan demorado de leer todo que me autorizaron volverlo a hacer.
Me siento identificado, refactorizar el código repetitivo
Me gustaría que los vídeos tuviesen ejemplos prácticos, sería genial, muchas gracias, saludos desde Colombia
pero lo expuesto no necesita código para entenderlo
@@xsrpma Lo de este vídeo quizás no, pero lo digo por el contenido del canal en general.
Saludos excelente videos!!!, te tengo una pregunta, has programado alguna vez en: Java, C#, C++, PHP, etc... para el Backend de un proyecto ? pues pregunto por que en los videos que he visto nunca has tocado o hablado sobre estos lenguajes o si te gustan.
si los he utilizado y todos funcionan muy bien!
Muy importante para el éxito de los ajustes del código mantener los cambios de forma secuencial dentro del control de versiones. excelente vídeo Nicolas
Wenna wenna .
Gracias por los vídeos eres unos de mis motivadores soy chileno patiperro que volveré a estudiar. DAM
Saludos y PONELE WENOO !!
Excelente me gusta lo organico pero refactorizar es importante saberlo mas en Big Data 😉
un codigo hermoso es una obra de arte que generalmente solo puede apreciar su creador.
Si solo lo entiende el creador tal vez la refactorización esté mal.
@@deathshootergd585 No necesariamente, no todos se manejan bien en patrones de diseño, por ejemplo y les puede generar confusión en primera instancia, pero está lejos de decir que esté mal. Saludos!
Generalmente después de un tiempo, ni el creador lo puede apreciar 😂😂😂
Cada quien entiende lo que quiere, yo estoy hablando de apreciar la belleza de una obra de arte.
Para hacer software se requiere de metodología, estándares y un montón de cosas estructuradas, el arte no requiere eso. Algunos sistemas son hermosos, son hermosas obras de INGENIERIA, no obras de arte. Por más "hermoso" (estructurado, patrones, eficiente) que sea tu código no es una obra de arte, es de ingeniería.
Hola...antes que todo gracias por los típs...segundo...que gustaría saber tu opinión sobre protocolos de monitoreo como mqtt ,lora entre otros
Cuando veo tus videos me siento más seguro al programar, eres grande
Como desarrollador junior, puedo decir que este video es oro
En caso de refactorizar, en mi opinión, debería abrirse un nueva rama en tu sistema de control de versiones. Así evitas que literalmente la "cagues", ya sea que trabajes en equipo o solo. Así siempre podrás volver al ultimo punto de partida :). Saludos desde Perú.
por eso el dijo pull request a máster, 0 ramas
Se te olvidó mencionar que al re factorizar se debe tomar en cuenta si hay una integración de ramas, a mi me pasó que tuve un proyecto donde un modulo se le agregaría mucha funcionalidad y el equipo quería re factorizar y lo hicimos pero a la hora de integrar las ramas habíamos tocado los otros módulos y aún que nuestra rama funcionaba a la perfección y se optimizó bastante y era la segunda más importante no se realizó la integración por qué había 2 ramas que no quisieron integrar por qué agarraron de pretexto que dañaría la funcionalidad.
Eso es mala planificación, el mismo equipo de la funcionalidad debió refactorizar, pero si pudieron implementar una funcionalidad antes que el mismo redactor habría que evaluar si el redactor valía la pena
Buenas tardes, saludos desde colombia
Me gustan muchos tus videos. Me gustaría que grabaras un video de como usar de forma correcta Git Flow. Saludos.
Hola Nicolas, me gustaría saber si al nivel en que tu estas es mucho más normal trabajar con estructuras de datos más complejas binary trees, priority queues ... etc
no, solo cuando hay que optimizar un algoritmo, priorizamos más que el código sea fácil de entender para nuevos desarrolladores
Y si refactorizas para "generalizar" el código? algo que habías pensado que solo se usaría para un objetivo al final puede ser algo mas grande?
no no, no aporta valor al negocio. A menos que se genere valor no hay que hacerlo porque si.
@@HolaMundoDev si para la nueva feature necesitas que eso sea general para poder enganchar, no? 🤔 O si es una lib para puedan usarla con flexibilidad
Hola ¿Porqué sugieres que debería tener un equipo? Es cierto que solo avanzo más lento. Y también que me gustaría tener un equipo pero mi empresa aun es pequeña. Gracias por tus videos me motivan a mejorar y seguir aprendiendo!
Ciertamente con un equipo se puede avanzar mas rápido en ocasiones o también retrasarte en otras, el punto es que si tienes una empresa el tener un equipo te ayudara al permitirte delegar tareas, ya sean dirigidas a mantener un proyecto grande o desarrollar diferentes proyectos, también puede servir a la hora de abordar un problema a tener diferentes puntos de vista
Que grande Nico, sería buenísimo un vídeo de respondiendo preguntas, saludos
Hola hola, está es una pregunta diferente ¿me gustaría saber las medidas de tu escritorio? La verdad es que ando planeando comprar uno para estar más cómodo tanto con mis monitores y brazos. Saludos desde México
1800 mm de ancho
@@HolaMundoDev :o es super super amplio, que genial, gracias por responder... Me encantan tus videos ♥️
Hola Nico !! Muy buenos tus videos
Cómo ves una persona en el equipo que en el medio de un sprint solo hablé de refactorizar, existe un puesto específico en ves de devs, un refactor Sr ? Jajaja
Que se hace con ese tipo de personas ?
Y bueno, una cosa igual que puede ayudar mucho es que cuando te toque hacer algo nuevo o tocar algo existente, aplica la regla del boy scout. "Deja más limpio que cuando llegaste" y con limpio no es hacer todo a la pinta tuya, estudia los valores y procesos de la empresa o compañía que trabajes y se pulcro.
no no... no lo toques si no es parte de tu tarea.
@@HolaMundoDev lo del boy scout, como entendido se refieren, es sobre lo que tocas (tú tarea solo). Como ir de acampada, limpiar donde uno estaba, no dejar suciedad.
Sería cool Implementaciones con Quickbooks Enterprise..!!!
Nicolas, hay un debate muy bueno que trata sobre el uso de Stored Procedures vs ORM, poner la lógica de negocio en los Stored Procedures o dejar la base de datos únicamente para los datos. Sería excelente escuchar tu opinión al respecto. Saludos!
Yo estoy en contra de los stored procs por dos cosas: En todas las empresas que he trabajado donde usan stored procs, ninguna mantiene los stored procs en git. También es difícil mantener las pruebas unitarias de dicha lógica de negocios sincronizada con el resto del código. Sin embargo, con un ORM, la lógica de negocio, como está junto con el código del backend, y el código del backend está (espero) git, es muchísimo más fácil hacer rollbacks si fuera necesario.
TLDR: ORM (es decir como parte del código de la aplicación).
La lógica del negocio se modela mejor con POO. Los Stored Procedures son buenos para realizar operaciones sencillas y de uso frecuente, algo así como utilidades. Otro caso de uso son los campos computados. Modelar la logica del negocio solamente en stored procedures es una locura. Por otro lado, tener la lógica de negocio fragmentada en dos o mas lugares diferentes atenta contra la separación de responsabilidades.
Por lo tanto, lo más recomendable es implementar la lógica del negocio en la aplicación, ya sea en el mismo Modelo o en una capa de servicio.
@@atscub "Modelar la logica del negocio solamente en stored procedures es una locura." ¿Puedes decirle eso a mis ex compañeros de trabajo?
@@ecavero1 No había leído tu comentario. Excelente explicación.
@@ecavero1 Se puede hacer, nadie dice que no, pero por lo menos personalmente pienso que no es la mejor alternativa. En mi actual empresa solo para agregar una nueva forma de facturación hay que hacer un montón de cambios en SPs y cruzar los dedos para que no rompas nada de lo que ya funciona, incluso hacer condicionales para comprobar el tipo de facturación que se está haciendo, cosa que está mal porque en POO solo pasas por ejemplo una clase que implemete IFacturacion y listo, no tienes que modificar otras clases...
hola, que consejo me das, actualmente soy el único desarrollador web en la empresa donde trabajo, igual en una startup, consejo para mejorar la productividad, ya que yo me encargo básicamente de todo :/ pero la paga es buena,
Eres el puto amo! Gracias
Estaría bueno, que grabaras el comercial de Hola Beats con una playera verde limon para que luego con edición pareciera que usas una diferente cada vez.
Y recuerden amigos: refactorizar si el código está respaldado por test.
Sino; pues, no lo toques
Deberías de hacer un curso de TDD y BDD
cuando veo tus videos me motivan un montón para entrar en el mundo de programación, pero a veces me siento completamente estancado y tras horas de tener abierto el IDE, no hacer nada de código, algún consejo para poder de alguna manera hacer que me fluya empezar a escribir código sin parar ?
Excelente video! Un saludo.
Thanks!
Gracias por todo el conocimiento que compartes a la comunidad. Y principalmente a mí, ya que soy relativamente nuevo y tus consejos me han ayudado a seguir mejorando como desarrollador.
Saludos desde Panamá
Si estás desarrollando y encuentras algún candidato a refactorizar, considera esto:
- estás familiarizado con el diseño del software? Sino, consulta a un dev con más experiencia.
- existen unit tests? Si no, es mejor agregar unit tests primero y dejar el redactor para después.
- el refactor es menos complejo que la tarea que estoy realizando? Si el redactor te va a tomar más tiempo que tu tarea, consulta a tu equipo para refactorizarlo.
Saludos y buen tema de discusión 😉
Refactor sin test = muchos dolores de cabeza 😉Si no hay test, hacerlos, como dice Braulio!!!
Cual es la diferencia entre refactorizar y reimplementar???
Refactorizar es ordenar lo que ya está, re-implementar es borrarlo y hacerlo de nuevo.
Si funciona, no lo toques" jajajaj muy comun!!
Para mi si la refactorizacion mejora el rendimiento se debe hacer... Por otro lado no solo en codigo de Programacion front y Back sino tambien en Bases de Datos...
Los Programadores Full Stack con que me he encontrado olvidan las BD en temas de Refactorizacion...
Aqui les traigo uno de los primeros pasos para mejorar el rendimiento a la hora de refactorizar, eso si tomen en cuenta la validez en el tiempo de la data.... developer.mozilla.org/es/docs/Learn/JavaScript/Client-side_web_APIs/Client-side_storage
Muy buen video
Podrías hacer videos en inglés también 😅😁
Quizás un canal secundario xD
A veces por refactorizar, el codigo puede quedar mas dificil de entender para los nuevos :c
(me paso a mi recientemente con un código ajeno)
Una refactorización de código se hace por uno de dos motivos. Caso 1: Legibilidad, mantenibilidad y testing: en este caso, el código tras la refactorización debería ser mas fácil de entender ya que debería hacerse para conseguir que sea más legible y autodescriptivo, usando correctamente nombres de funciones, variables, encapsulando comportamiento técnico en funciones, etc. Si tras este tipo de refactorización, el código no fuese más fácil de entender, creo que es posible que la refactorización no haya sido todo lo buena que debería haber sido. Caso 2: Optimización y performance, en este caso es posible que quede mas complejo de entender y puesto que el código siempre debería ser legible y autodescriptivo, solo habría que hacer este tipo de optimización cuando sea estrictamente necesario (en este caso creo que no queda mas opción que mejorar nuestras habilidades técnicas para ser capaces de entenderlo).
@@mecachislamar5 exacto, creo que me sucede el segundo caso (pues involucran procesos que tardan horas en las maquinas virtuales de la empresa, y se busca la optimizan)
El problema es que ni siquiera el creador original recuerda bien como interpretar la totalidad del codigo jajaja
@@veritas8122 Jajaja, te entiendo, es complicado cuando se trabaja con procesos masivos. A veces la única solución es buscar un equilibrio, que permita optimizar pero sin perder la legibilidad en lo posible (aunque esto requiera sacrificar un poco de performance) sino se corre ese riesgo que comentas, esto es algo que nos pasa a menudo, porque no es nada sencillo. Al final, si el código es óptimo pero no somos capaces de mantenerlo acabamos teniendo un problema el día que aparece un bug o que tenemos que agregar algún nuevo caso, por eso yo intento siempre buscar ese equilibrio... pero no es fácil y no siempre se consigue.
Buenas noches Master, saludos desde Venezuela, acabo de cer un video que publicaste hace como dos años, se titula: "7 cosas que debes aprender para encontrar trabajo como desarrollador." Mi pregunta es: sigue siendo valido este video 2 años después, o existen nuevas cosas que no están en el video para este 2021?
PD: Me gusta tu canal, un gran trabajo!
creo que sigue siendo válido, los lenguajes agregan nuevas funcionalidades y de vez en cuando sale una librería o framework nuevo, pero definitivamente hay mucha menos fatiga que antes.
@@HolaMundoDev Gracias por tomarte el tiempo y responder! Me gustan tus videos y te has ganado un suscriptor y un golpeador del mald*to boton jaja! Por cierto compre tu curso de Phyton, solo lo ojié, y me gusto que pusieras de todo un poco par alguien como yo que esta desde cero! 🤗
Nico, a pesar que hay puntos que pueden ser debatibles y estando de acuerdo con muchas de las cosas que mencionas acá ¿Cuál crees que sería la mejor idea cuando existe una aplicación deprecada, enorme, dependiente de muchos otros sistemas orbitando, una base de datos inentendible, sin ningún tipo de pruebas y además con flujos críticos?
Saludos!
Si me permites compartir mi opinión, yo creo que en este caso, es mejor rediseño y re implementacion del sistema ya que, tomando en cuenta todo lo que tienes que reorganizar y actualizar, creo que es más sencillo volver de cero, bueno, no tanto porque ya se tiene la idea y el flujo que debe seguirse, y, dependiendo del tipo de base de datos que manejas, extraer el código SQL y modificar o reescribir lo que no tenga que ver con las entidades principales de tu DB
si funciona no lo toques. Si debes hacerle mantenimiento escríbele test de integración. Luego refactor, luego modificar el funcionamiento.
@@HolaMundoDev Valoro mucho sus opiniones! Muchas gracias!
@@HolaMundoDev Hay un video que habla acerca de cómo refactorizar código legacy con TDD. El tío hace TDD al revés para atacar esos casos; es decir, empieza a implemetar pruebas a una funcionalidad en particular. Luego, refactorizaba y volvía a correr la prueba arrojaba el mismo resultado que antes.
EDIT
Este es el video: ruclips.net/video/_NnElPO5BU0/видео.html
Una vez me puse a refactorizar un código así porque me dolían los ojos al mirarlo y la experiencia fue algo frustrante. Conseguí compactar y simplificar varios cientos de líneas pero había miles de ellas a modo Spagetti code... cada vez que alguien implementada una nueva funcionalidad se aplicaba la teoría de las ventanas rotas y siempre se enmarañaba... Difícil decisión, hacer la vista gorda si funciona sabiendo que es una bomba de relojeria o frustrarse refactorizando... También se suele hacer la de 'pasar la patata caliente' al último que entre al proyecto...
Algún consejo para un desarrollador Junior, que está comenzando en este mundo y le es nuevo js, react, ts, jest, tdd y no sentirse abrumado con tantas cosas que aprender, tener que dominar en un periodo de tiempo algo corto. Y sentir que no avanzas prácticamente nada. Saludos
Usa el principio de divide y vencerás. No quieras abarcar todo al mismo tiempo. Elegí un solo tema de estudio y seguí con el mismo hasta que tengas un cierto dominio. Implementa ejemplos, no solo estudio teórico. Luego cambia a otro tema o a algo más complejo de ese tema. Y nunca vas a dominar nada en un corto período de tiempo. Nadie lo hace.
Si encuentro funciones que se ejecutan constantemente causando múltiples consultas a base de datos, disminuyó los llamados a funciones usando una variable, y cuando encuentro mismas funciones en distintos segmentos de la aplicación los meto en un solo archivo, lo hago y punto no consulto soy el senior jeje... Me gustaría un video sobre pruebas unitarias, solo para mejorar conocimientos, saludos.
¿Cómo refactorizar de manera segura, sin romper la funcionalidad?
R/ Test unitarios.
No se puede hacer refactor sin test, es suicidio.
Como hacer que el resto de los compañeros estén contentos con el cambio, Pair programming
agregaría dos más: ¿ sientes que pronto serás despedido? R: no refactorizar. ¿Te pagan poco? R: No refactorizar
Refactorizar cuando va a haber un cambio grande de interfaz. Ahí todo el mundo va a estar esperando errores y dispuestos a arreglarlos.
Muy interesante, aunque encuentro a faltar ejemplos prácticos o bien un video de refactorización practico, seria genial!!!
Quizás una refactorización del video
Yo procuro hacerlo desde que lo estoy pensando, pero si es muy complicado lo refactorizo una vez que funciona
Alguien me puede dejar el link de compra del teclado de el por favor 🙏
Buen vídeo, saludos❤
Si pero con el tiempo vos mismo te superas
Nashi video
Saludos
hola mundo, en el canal de discord no tengo permiso para hablar en ningun canal!! porque??
Quien es el beatmaker de Holabeats ? ¿Sera chanchito Feliz ?
es raro pero siempre en todos los trabajos que eh tenido me han contratan para refactorizar(todo el proyecto)!! 😅😅 No se si es bueno o malo, pero todos mis trabajos los eh conseguido asi.
Trabajo solo, lastima que el "buscar" un equipo ya no depende de mi. Maldito legacy code!!!
F optimización de código
Refactorizar siempre
Cuando se te de la gana.
Yo soy Test Automation Engineer y muchas cosas de las que enseñas tambien me aplican...
*Me la suda lo que prefieran otros devs, si las cosas estam mal hechas se refactorizan y punto.*
"Si una solution fue implementada*
Pero me gusta refactorizar
Alguien por favor, podría decir que base indica en ruclips.net/video/Cd-tw8xxMu8/видео.html ??? No logro entenderlo, gracias.
Dead simple code.
Gracias @@HolaMundoDev !!!
Robert C Martin reventó el estupido del botón de dislike hhahha
Alguno sabe que edad tiene NIcolas?
35
Si funciona.. no lo toquen!!!!
Con respeto, se nota que eres más RUclipsr que desarrollador. Mal consejo ese de no refactorizar o hacerlo poco o a destiempo, malo de cojones. El problema es que tienes a muchos seguidores juniors que te harán caso y todo...
Compañeros, no le hagan caso.
Al contrario, tengo 10 años de experiencia como desarrollador. No hay que caer en el rabbit hole de andar refactorizando porque si y porque no, hay que tener razones de peso. De lo contrario solo se pierde tiempo.
@@HolaMundoDev hay que refactorizar a menudo, evitando código duplicado y tamaño inadecuado de métodos, porque si no, acabas con un monolito inmantenible, que echa para atrás en el mantenimiento futuro a los que vengan detrás. Obvio si estás en un proyecto un año o menos, te dará igual la calidad del proyecto. Un consejo, para que no te confunda como RUclipsr, enseña más código, crea y mantén repositorios en GitHub. Te servirá para tener más credibilidad. Llevo en esta industria más tiempo que usted, 17 años, más los de la universidad, ya que sacas la carta del tiempo que llevas haciendo esto.
@@aironmanDiver no hay que refactorizar a menudo, hay que construir soluciones e implementar código mucho más que refactorizar. Refactorizar por refactorizar solo te matará la productividad. Y lo del tiempo de experiencia no era para compararme contigo. Era ora contraargumentar que dices que soy más RUclipsr que desarrollador.
@@HolaMundoDev mira, pareces buen tipo, no quiero polémicas. Entiendo por qué dices lo que dices, no estoy de acuerdo, pero no pasa nada. Paz.
@@aironmanDiver todo bien! 👍
hola ,hoy es mi cumple ,porfa quisiera un saludo
Felicidades
Felicidades 🎉
@@HolaMundoDev gracias :>
Dudo que una cobertura al 100% sea algo realista
hoy muchos proyectos con cobertura del 100%, y con eso estoy de acuerdo con el tío bob (el no sugiere cobertura del 100%.. la exige).
Muchas veces como soy aprendiz quiero que mi código sea perfecto me desmotiva mucho cuando no lo es. :'(
Ningún código es perfecto. Por eso en lo personal me gusta la filosofía del TDD. Hacer un test, fallar, implementar la mínima solución que funcione. Pasar el test. Refactorizar o pasar al siguiente test, dependiendo del caso.
El problema es cuando quieren aliviar manias. Sin argumento, solo gustos. O incluso menos modular, falla más, más esfuerzo para lo mismo... Y ya era legible y bueno.
Cada que veo un video que dura poco más de 10 minutos me desuscribo, aprecio la intención pero el clickbait y la monetizacion es perdida de tiempo para mi
que te vaya bien en tu camino 🤘
Saludos