No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Buenas Prácticas y Código Limpio en Desarrollo de Software

3/14
Recursos

¿Por qué son importantes las buenas prácticas en la programación?

Las buenas prácticas, conocidas en inglés como best practices, son estándares verificados y comprobados que permiten resolver desafíos comunes en la programación de la manera más eficiente y eficaz posible. Nos brindan guías fáciles de aprender y comprender, lo que hace que podamos aplicarlas en proyectos de manera consistente, generando estructuras similares y homogéneas para nuestros sistemas. Más allá de cuál sea el lenguaje de programación o framework que estés utilizando, estas prácticas son aplicables a un amplio espectro de tecnologías, no solo a C-Sharp. Así, pueden mejorar nuestros proyectos y flujos de trabajo en distintos entornos.

¿Cómo nos ayuda el concepto de código limpio?

El Clean Code, o código limpio, se refiere a un código que sigue las mejores prácticas y técnicas para hacerlo legible y mantenible. Un código limpio permite que, incluso después de mucho tiempo, las actualizaciones y cambios sean sencillos, ya se traten de librerías, frameworks o nuevas funcionalidades. Este tipo de código es crucial para escalar aplicaciones con facilidad, facilitando la adición de características o el aumento de capacidad para soportar más usuarios. Además, algunas de las técnicas esenciales para un código limpio son:

  • Mantener un bajo acoplamiento mediante el uso de clases abstractas e interfaces.
  • Usar una sintaxis moderna y actualizada.
  • Evitar dependencias excesivas de librerías de terceros.
  • Distribuir las responsabilidades de manera efectiva utilizando principios SOLID.
  • Diseñar componentes pequeños y entendibles.

¿Qué es la deuda técnica y cómo afecta al desarrollo?

La deuda técnica representa los problemas técnicos que surgen durante el desarrollo y que deberán solucionarse eventualmente, ya sea en un futuro cercano o lejano. Al igual que una deuda financiera, esta hace que, tarde o temprano, debamos enfrentarnos a esos problemas, lo que puede ser costoso. La deuda técnica puede originarse por la falta de seguridad en aplicaciones, mal rendimiento bajo cargas inesperadas de usuarios, o la utilización de tecnologías inadecuadas. Un código mal diseñado, sin estándares ni buenas prácticas, puede requerir un refactor completo para evitar problemas significativos.

¿Cuál es el papel del refactoring en el desarrollo de software?

El refactoring es el proceso de ajustar y mejorar el código para hacerlo más legible, fácil de entender, o para mejorar su rendimiento, sin alterar la lógica de negocio. Es esencial que, incluso después de una mejora, el funcionamiento de la aplicación permanezca intacto para los usuarios. Esta práctica recurrente no solo facilita la mejora continua del código, sino que también es una de las herramientas más efectivas para disminuir la deuda técnica.

¿Cómo implementar refactoring eficazmente?

  • Revisar y actualizar regularmente las librerías y frameworks utilizados.
  • Adaptar componentes mal diseñados por desarrolladores menos experimentados.
  • Mantener la atención en el rendimiento y escalabilidad del código.
  • Aplicar mejoras regulares, cada seis meses por ejemplo, para mantener el código optimizado.

En resumen, tanto las buenas prácticas como la adopción de Clean Code son cruciales para el desarrollo de software mantenible, escalable y eficiente. La deuda técnica y el refactoring son conceptos esenciales que todo desarrollador debe manejar para asegurar la calidad y longevidad de sus aplicaciones. ¡Sigue perfeccionando tus habilidades y aprovecha cada oportunidad para aprender y aplicar estos principios en tus proyectos!

Aportes 16

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Resumen:

Buenas Prácticas

  • Estándares comprobados y verificados
  • Resuelven desafíos de escenarios comunes
  • Brindan guías fáciles de aprender y comprender
  • Permiten tener una estructura similar para múltiples proyectos

Código Limpio

  • Un código que sigue las buenas prácticas
  • Código fácil de entender y analizar
  • Código fácil de mantener
  • Código fácil de actualizar
  • Código fácil de escalar

Cómo lo logramos

  • Mantener bajo acoplamiento
  • Utilizar sintaxis simple y moderna
  • Evitar incorporar muchas librerías de terceros
  • Distribución de responsabilidades
  • Creación de componentes pequeños

Deuda técnica

  • Se refiere a los problemas técnicos que puede tener un software que son adquiridos durante la fase de desarrollo y que deben ser solucionados en el futuro.
  • Puede estar presente en cualquier aspecto de una aplicación como: Seguridad, rendimiento, escalabilidad, etc.
  • A veces puede resultar más costosa que el mismo desarrollo.

Refactoring

  • Proceso de cambios sobre un código para el mejoramiento en cualquier aspecto (rendimiento, seguridad, legibilidad, etc.)
  • Lo más importante es hacer cambios manteniendo la lógica de negocio sin afectaciones.
  • Debe ser recurrente.
  • Disminuye la deuda técnica a futuro.

“Seguridad” no solo es autenticación (eg login) y autorización (eg accesos), sino también controlar todo input, evitar problemas de logica de negocio, etc.

Sería interesante cursos sobre código seguro porque es más fácil y hasta trivial atacar que defender.

TERMINOLOGIA

- Buenas practicas

Conjunto de estandares comprobados y verificados que brindan guias faciles de aprender y comprender , permitiendo tener una estructura similar para multiples proyesctos.


- Codigo Limpio

Es un codigo que sigue buenas practicas, es facil de entender, analizar, mantener, actualizar y escalar.

  • ¿Como se logra?

    • Utilizar una sintaxis simple y moderna.
    • Mantener bajo acoplamiento.
    • Evitar el uso de muchas librerias de terceros.
    • Distribuir las responsabilidades.
    • Crear componentes pequeños.

- Deuda tecnica

Son problemas tecnicos que ocurren durante la fase de desarrollo del software, dichos problemas deben ser arreglados si o si en el futuro.

  • Ejemplos:

    • Mejorar la seguridad
    • Mejorar el rendimiento

- Refactoring

Proceso que se realiza al codigo para mejorar cualquier aspecto ya sea de seguridad, rendimiento, legibilidad, soporte, etc…

Los cambios que se realizen deben ser recurrentes disminuyendo la deuda tecnica, ademas, no deben afectar al cliente/negocio, puesto que el objetivo de esto no es hacer un cambio radical en el software.

https://platzi.com/cursos/solid-csharp-net/ => lanzamiento en 5 días a partir de la fecha de hoy 17/01/2023…

Un codigo siempre debe estar listo para pode escalarlo

here we go

Escuchar “tecnologías no comprobadas” me hace acordar de Ports & Adapters (Hexagonal) que ayuda a no depender de tecnologías especificas (frameworks, db, orm, etc.)

Buenas prácticas.

Utilizar los estándares comprobados y verificados que nos permiten resolver desafíos comunes en los proyectos de la mejor forma posible. A pesar de todas las alternativas por las que se pueden optar, la diferencia con la buena práctica, es la guía que nos proporciona para solucionar el problema de la mejor manera.

Una de las ventajas de las buenas prácticas es su facilidad de adopción, tanto como para comprender y aprender, por lo tanto replicables en todo los proyectos.

Código Limpio.

Podríamos denominar código limpio, al base de código que sigue las mejores prácticas que se utilizan actualmente en el mercado para dejar un proyecto que:
- Es legible,
- Tiene facilidad para escalar (Se extiende el código con más funcionalidades),
- Se mantiene con facilidad (Por ello tiene una vigencia prolongada),
- Puede actualizar sus dependencias,

¿Cómo logramos código limpio?

- Sostener un bajo acoplamiento, utilizando clases abstractas e interfaces, para no tener un dependencia directa entre los diferentes componentes del sistema.
- Utilizar un sintaxis simple y moderna.
- Evitar incorporar muchas librerías de terceros, que puedan dificultar su actualización.
- Crear una buena distribución de responsabilidades, asignando a cada clase una sola responsabilidad.
- Creación de componentes pequeños, para que puedan leerse fácilmente y también en futuro, ampliar sus funcionalidades.
- Evitar hacer pocos componentes con muchas funcionalidades, será difícil acercase al proyecto por su poca legibilidad.

Deuda técnica.(Technical debt)

Ésta, representa los problemas técnicos que puede tener un software, los que son adquiridos durante la fase de desarrollo y que al final se van a solucionar en el futuro, queramos o no queramos, vamos a tener que solucionarlo. Pueden ser los aspectos de seguridad, rendimiento, escalabilidad, etc… Que no se tuvieron en cuenta, que causen posterior al lanzamiento de la aplicación, fallas críticas. El mantenimiento de estos errores, podría costar aún más que la creación de la aplicación.

Refactoring

Modificación del código para el mejoramiento en cualquier aspecto como (rendimiento, seguridad, legibilidad, soporte, entre otros) sin alterar la lógica del negocio y funcionamiento de la aplicación. Los beneficios de hacer refactoring promueven los pasos para lograr el código limpio, disminuyendo la deuda técnica del proyecto. La recurrencia en estas estrategias siempre mantiene una base limpia de trabajo.

🤔Resumen 🤔

✍️Mientras que las buenas prácticas establecen las reglas generales, el refactoring y el código limpio son acciones específicas para mejorar el código existente, y la gestión de la duda técnica es la consideración importante para evitar problemas a largo plazo.

por nosotros mismos es importante un código limpio, el día de mañana nosotros mismos debemos dar mantenimiento a nuestro desarrollo, y no sabemos que hemos escrito.
Estos conceptos son verdaderamente fundamentales. Llevaba tiempo sin ver que alguien lo explicara de forma tan clara.

Resumen:

Buenas Prácticas

Estándares comprobados y verificados
Resuelven desafíos de escenarios comunes
Brindan guías fáciles de aprender y comprender
Permiten tener una estructura similar para múltiples proyectos
Código Limpio

Un código que sigue las buenas prácticas
Código fácil de entender y analizar
Código fácil de mantener
Código fácil de actualizar
Código fácil de escalar
Cómo lo logramos

Mantener bajo acoplamiento
Utilizar sintaxis simple y moderna
Evitar incorporar muchas librerías de terceros
Distribución de responsabilidades
Creación de componentes pequeños
Deuda técnica

Se refiere a los problemas técnicos que puede tener un software que son adquiridos durante la fase de desarrollo y que deben ser solucionados en el futuro.
Puede estar presente en cualquier aspecto de una aplicación como: Seguridad, rendimiento, escalabilidad, etc.
A veces puede resultar más costosa que el mismo desarrollo.
Refactoring

Proceso de cambios sobre un código para el mejoramiento en cualquier aspecto (rendimiento, seguridad, legibilidad, etc.)
Lo más importante es hacer cambios manteniendo la lógica de negocio sin afectaciones.
Debe ser recurrente.
Disminuye la deuda técnica a futuro.

## Terminología clave en C#: **Buenas prácticas:** Normas y principios para escribir código legible, mantenible y eficiente. Ejemplos: * **Nombramiento significativo:** Usar nombres descriptivos para variables, métodos y clases. * **Formato consistente:** Indentación, espacios en blanco y organización del código. * **Comentarios claros:** Explicar el propósito del código y las decisiones tomadas. **Refactoring:** Reorganizar y mejorar el código sin modificar su comportamiento. Se busca: * Eliminar código duplicado. * Mejorar la estructura del código. * Hacer el código más flexible y adaptable. **Código limpio:** Código que es fácil de entender, modificar y mantener. Se caracteriza por: * Ser legible y comprensible. * Ser modular y reutilizable. * Estar libre de errores y código muerto. **Deuda técnica:** Costo de mantener y mejorar un código que no se ha escrito siguiendo buenas prácticas. Se genera por: * Código apresurado o sin planificación. * Falta de refactorización. * Cambios en los requisitos del proyecto. **En resumen:** * **Buenas prácticas:** Pautas para escribir buen código desde el principio. * **Refactoring:** Mejorar el código existente sin cambiar su comportamiento. * **Código limpio:** Código fácil de entender, modificar y mantener. * **Deuda técnica:** Costo de mantener código con malas prácticas. **Consejos:** * Adoptar buenas prácticas desde el inicio del proyecto. * Refactorizar el código regularmente para evitar la deuda técnica. * Escribir código limpio para facilitar el trabajo en equipo.
Hello everyone! I share my repository where you can find the summary of this course! <https://github.com/mathiascabrera/good_practices_and_clean_code_in_csharp.git> Never stop learning!😃

Huy eso si lo hace las empresas de revisar código viejo ya en producción sin haber la necesidad, lo he escuchado varias veces, hasta en el libro de Robert C Martin, pero sera q existen esos espacios en las empresas??

Creo que se puede depender de librerias de 3ros. Si se vuelven obsoletas se deberian cambiar por otras. Un adaptador podria usarse para que no se acople demasiado