Como programador, su función es escribir código que funcione correctamente y proporcione el resultado deseado. Sin embargo, el código también debe ser fácil de entender, mantener y ampliar. Para enfrentar este desafío, debe combinar los conceptos clave de la programación con los principios de una buena codificación.
En esta publicación, compartiré mis 10 principios de programación principales para ayudarlo a mejorar la forma en que escribe código, haciéndole la vida más fácil a usted, a sus compañeros desarrolladores y a sus usuarios finales.
¿Por qué son importantes los principios de programación?
Al aprender algunos principios de programación y usarlos en su código, se convertirá en un mejor desarrollador. Seguir estas prácticas mejora la calidad general del código y hace que sea más fácil para usted o para otra persona realizar cambios o agregar funciones en el futuro.
Fuente de la imagen: generoso
Los principios de programación lo ayudan a evitar problemas como código desordenado o demasiado complejo, programas que se rompen con un solo ajuste y variables que no tienen sentido. Cumplir con ellos también le permitirá colaborar con más éxito al garantizar que los demás programadores puedan entender su código.
Ya sea que esté creando un programa básico o una aplicación de nivel empresarial, vale la pena familiarizarse con estos 10 principios.
Diez principios de programación a seguir:
1. KISS (¡Mantenlo simple, estúpido!)
Mantener su código simple y limpio es uno de los principios de programación más importantes. enterprisA algunos desarrolladores les gusta presumir escribiendo código demasiado largo o avanzado, pero aunque parezca inteligente, el código puede no ser particularmente claro.
Siempre debe esforzarse por hacer que su código sea fácil de entender: si puede escribir un script en una línea, ¡entonces hágalo! Podría dividir un problema complejo en partes más pequeñas o eliminar algún código innecesario. El objetivo es reducir la complejidad y resolver problemas, no impresionar a la gente.
El uso de nombres de variables claros es otra forma de simplificar las cosas. Recuerde aprovechar las bibliotecas de codificación y las herramientas existentes.
2. No te repitas (SECO)
A los programadores les encantan las siglas, ¿verdad? Este es fácil de recordar: le dice que no repita el código. La repetición es un error común porque si duplica datos, lógica o función, su código será extenso y llevará más tiempo mantenerlo, depurarlo o modificarlo.
Repetirse incluye copiar y pegar código dentro de su programa. En lugar de duplicar líneas, es mejor encontrar un algoritmo que use un bucle, ya que es mucho más fácil depurar un bucle que maneja 20 repeticiones que 20 bloques de código que manejan una repetición cada uno.
Lo contrario del principio DRY es WET (por supuesto), que significa Write Everything Twice or Waste Everyone’s Time. Ninguno de los cuales es una buena idea.
Fuente de la imagen: TechTarget
3. No lo vas a necesitar (YAGNI)
En un tema similar, no debería estar escribiendo código simplemente por la posibilidad de que lo necesite en el futuro. En otras palabras, el principio YAGNI le dice que escriba código solo para la situación actual en lugar de tratar de resolver un problema que no existe.
Las características y la funcionalidad solo deben agregarse cuando sea necesario. De lo contrario, su software o programa se volverá más grande y complejo de lo que debe ser. YAGNI proviene de la metodología de desarrollo de software de Programación Extrema (XP), que se trata de reducir la ineficiencia.
Los programadores a veces violan este principio al intentar adherirse a las prácticas de codificación DRY, así que tenga ambas en cuenta.
4. Documenta tu código
Bien, entonces has escrito tu código y lo entiendes (¡espero!). Pero el hecho de que tenga sentido para usted no significa que será claro para otra persona. Puede ayudar a sus compañeros desarrolladores documentando su código con comentarios y mejorando la denominación de sus variables y funciones.
Por ejemplo, si estuviera diseñando un algoritmo de enrutamiento de llamadas para usar en soluciones de centros de llamadas de VoIP, podría dejar comentarios para explicar las diversas funciones y facilitar su comprensión para otros desarrolladores o evaluadores.
Todos los lenguajes de programación le permiten adjuntar comentarios a su código, por lo que debe acostumbrarse a hacerlo. Sí, es un poco de trabajo extra, pero es importante cuando se colabora con otros. Además, si vuelve a modificar el código en unos meses, ¡se alegrará de haberlo hecho!
Fuente de la imagen: SheCanCode
5. Composición sobre herencia
Si está reutilizando código que ya ha escrito, hay dos formas de hacerlo: herencia y composición. La mayoría de los programadores favorecen la composición (aunque la herencia tiene sus ventajas, así que no la ignore por completo).
El principio de composición sobre herencia es especialmente útil si está utilizando programación orientada a objetos u OOP (que en realidad tiene su propio conjunto de principios). Establece que los objetos con comportamientos complejos deben contener instancias de objetos con comportamientos individuales; no deben heredar una clase y agregar nuevos comportamientos.
Con la herencia, los marcos de clase se vuelven rápidamente difíciles de manejar, lo que lleva a una miríada de clases que pueden o no satisfacer sus necesidades. Las jerarquías de clases son difíciles de cambiar una vez que se han implementado, ya que no se puede cambiar una superclase sin correr el riesgo de romper la subclase de un usuario. Y hay menos flexibilidad para definir comportamientos de casos especiales.
La programación de composición es más limpia de escribir y más fácil de mantener, proporcionando una base de código más simple y comprobable. Permite comportamientos que definen la flexibilidad: puede diseñar clases para adiciones o cambios fáciles y retrasar la creación de componentes hasta que se necesiten.
6. Abierto/Cerrado
Si está lanzando una biblioteca o marco que otros usarán, Abierto/Cerrado es un principio importante. Significa que los artefactos de software, como las clases y los módulos, están abiertos a la extensión pero cerrados a la modificación. Esto hace que el código sea más estable y fácil de mantener.
Supongamos que se le pide que escriba código para una plantilla de acuerdo de agencia de una empresa de software de firma electrónica>. Publica una versión de marco para que los codificadores modifiquen directamente e integren su código publicado. Pero si lanza una actualización importante en el futuro, el código se romperá. Es mejor publicar código que fomente la extensión y evite la modificación directa, lo que minimiza el riesgo de introducir nuevos errores.
7. Responsabilidad única
Este principio establece que cada clase o módulo en un programa solo debe proporcionar una funcionalidad específica y no debe haber más de una razón para cambiar una clase. El objetivo es evitar la multiplicación de efectos secundarios o responsabilidades en un solo método o clase.
Fuente de la imagen: Medio
Las clases se vuelven más complicadas si agrega demasiadas responsabilidades y es más difícil crear funcionalidades adicionales para un módulo específico. Es mejor dividirlos en clases y módulos más pequeños, lo que facilita aislar un determinado módulo para solucionar problemas.
Responsabilidad única y Abierto/Cerrado son parte de los principios SOLID establecidos por Robert C Martin (los otros son Sustitución de Liskov, Segregación de interfaz e Inversión de dependencia).
8. SoC – Separación de preocupaciones
Este principio de programación es una versión abstracta de responsabilidad única. SoC establece que un programa debe diseñarse con diferentes contenedores, que no deben tener acceso entre sí. Cada pieza de código es completamente independiente.
Es una forma de separar una aplicación complicada en diferentes secciones o dominios, cada uno de los cuales hace un trabajo específico o aborda una inquietud diferente. Esto facilita el mantenimiento, la actualización, la reutilización y la depuración del código.
Un ejemplo bien conocido es el diseño modelo-vista-controlador (MVC), actualmente utilizado en marcos web populares. Un programa se divide en tres secciones distintas: datos (modelo), lógica (controlador) y lo que ve el usuario final (vista), y cada sección se maneja de forma independiente.
9. Minimice el acoplamiento
El acoplamiento de código es cuando dos módulos o dos capas tienen un grado de interdependencia, como compartir un código o tener acceso a los mismos datos. Esto puede crear problemas, incluido el código que es difícil de seguir y mantener.
Por ejemplo, si un desarrollador combina sus puntos finales de API con una vista específica en una aplicación frontend, como un sistema telefónico multilínea, el punto final no se puede reutilizar para una vista diferente, como una aplicación móvil. (Quizás te estés preguntando: ¿qué es un sistema telefónico multilínea>?)
Los programadores deben comprender cómo se acopla un código para minimizar el acoplamiento, lo que implica comprender las responsabilidades de cada capa. La responsabilidad única también reduce el acoplamiento entre los componentes individuales del software y código.
Fuente de la imagen: Manning
10. Refactorizar
Las bases de código siempre están evolucionando, por lo que habrá ocasiones en las que necesite revisar, reescribir o rediseñar fragmentos completos de código. En lugar de ver esto como un fracaso de su primer intento, piense en ello como una oportunidad de aprendizaje.
Refactorizar código significa revisarlo y buscar formas de optimizarlo, haciéndolo más eficiente y manteniendo los resultados exactamente iguales. Sin embargo, debe evitar la optimización prematura. No optimice su algoritmo en la etapa inicial de desarrollo porque no puede predecir cuellos de botella y los requisitos pueden cambiar.
Pensamientos finales
Si tuviéramos que resumir esta lista en un principio clave, sería este: haga que su código sea fácil de entender y mantener. Varios de los principios de programación de nuestra lista tienen este propósito en mente, desde KISS y DRY hasta responsabilidad única y documentación de su código.
Si sigue estos principios, podrá crear un código simple que haga lo que se supone que debe hacer y que sea comprensible para los demás. Y sabrás el momento adecuado para optimizarlo. Un último consejo: sigue aprendiendo para seguir mejorando.