10 principios básicos de programación que todo programador debe seguir

  • Peter Holmes
  • 0
  • 3268
  • 486
Anuncio

Cualquiera puede escribir código. Pero buen código? Ahí es donde se pone difícil.

Todos hemos escuchado historias de horror sobre el código de espagueti, cadenas masivas de if-else, programas completos que pueden romperse simplemente cambiando una variable, funciones que parecen ofuscadas, y así sucesivamente. Eso es lo que sucede cuando intentas hacer un producto que se puede enviar con solo un semestre de experiencia en programación..

No se conforme con escribir código que trabajos. Apunta a escribir código que pueda ser mantenido - no solo por usted mismo, sino por cualquier otra persona que pueda terminar trabajando en el software en algún momento en el futuro. Con ese fin, aquí hay varios principios para ayudarlo a limpiar su acto.

1. BESO

los “mantenlo simple, estúpido” principio se aplica a casi toda la vida, pero es especialmente necesario en proyectos de programación de medianos a grandes.

Comienza desde el principio cuando estás definiendo el alcance de lo que quieres crear. El hecho de que te apasione el desarrollo de juegos no significa que puedas crear el próximo Mundo de Warcraft o Grand Theft Auto. Cuando creas que has simplificado lo suficiente, simplifícalo un nivel más: el arrastre de características es inevitable, así que comienza con poco.

Pero incluso después de que la codificación haya comenzado, manténgalo simple. El diseño y la escritura de códigos complejos requieren más tiempo, son más propensos a errores y errores, y es más difícil modificarlos más adelante. En las sabias palabras de Antoine de Saint-Exupery, “La perfección se logra, no cuando no hay nada más que agregar, sino cuando no hay nada más que quitar.”

2. SECO

los “no te repitas” principio es crucial para un código limpio y fácil de modificar. Al escribir código, desea evitar la duplicación de datos y la duplicación de la lógica. Si nota que el mismo fragmento de código se escribe una y otra vez, está rompiendo este principio.

Lo opuesto al código DRY es el código WET: “escribe todo dos veces” (o “perder el tiempo de todos”) Una de las mejores formas de diagnosticar el código WET es preguntarse: para modificar el comportamiento del programa de alguna manera, ¿cuántas áreas de código necesitaría modificar??

Supongamos que está escribiendo una aplicación de directorio de podcast. En la página de búsqueda, tiene un código para recuperar los detalles de un podcast. En la página del podcast, tiene un código para recuperar los detalles de ese podcast. En la página de favoritos, el mismo código de recuperación. Considere abstraer todo eso en una función para que si necesita editarlo más tarde, puede hacerlo todo en un solo lugar.

3. Abierto / Cerrado

Si está escribiendo objetos ¿Qué es la programación orientada a objetos? Los fundamentos explicados en términos simples ¿Qué es la programación orientada a objetos? Los conceptos básicos explicados en términos simples La mayoría de los lenguajes de programación modernos admiten el paradigma de "programación orientada a objetos" (OOP). Pero, ¿qué es exactamente OOP y por qué es tan útil? en Java o módulos en Python, debe intentar hacer su código abierto a extensión pero cerrado a modificación. Esto se aplica a todo tipo de proyectos, pero es especialmente importante cuando se lanza una biblioteca o marco destinado a que otros lo usen.

Por ejemplo, suponga que mantiene un marco de GUI. Puede lanzarlo tal cual, esperando que los usuarios finales modifiquen e integren directamente su código publicado. ¿Pero qué sucede cuando lanzas una actualización importante cuatro meses después? ¿Cómo implementan todas sus adiciones sin tirar todo el trabajo que han hecho??

En su lugar, suelte el código que evita modificación directa y alienta extensión. Esto separa el comportamiento central del comportamiento modificado. ¿Los beneficios? Mayor estabilidad (los usuarios no pueden romper accidentalmente el comportamiento central) y mayor capacidad de mantenimiento (los usuarios solo se preocupan por el código extendido). El principio abierto / cerrado es clave para hacer una buena API ¿Qué son las API y cómo las API abiertas están cambiando Internet? ¿Qué son las API y cómo las API abiertas están cambiando Internet? ¿Alguna vez te has preguntado cómo funcionan los programas en tu computadora y los sitios web que visitas? "hablar entre sí? .

4. Composición> Herencia

los “composición sobre herencia” principio establece que los objetos con comportamientos complejos deberían hacerlo al contener instancias de objetos con comportamientos individuales en lugar de heredar una clase y agregar nuevos comportamientos.

La dependencia excesiva de la herencia puede conducir a dos problemas principales. Primero, la jerarquía de herencia puede volverse desordenada en un abrir y cerrar de ojos. En segundo lugar, tiene menos flexibilidad para definir comportamientos de casos especiales, particularmente cuando desea implementar el comportamiento de una rama de herencia en otra rama de herencia:

La composición es mucho más limpia de escribir, más fácil de mantener y permite una flexibilidad casi infinita en cuanto a qué tipos de comportamientos puede definir. Cada comportamiento individual es su propia clase, y usted crea comportamientos complejos combinando comportamientos individuales..

5. Responsabilidad individual

los principio de responsabilidad única dice que cada clase o módulo en un programa solo debe preocuparse por proporcionar un bit de funcionalidad específica. Como dice Robert C. Martin, “Una clase debe tener solo una razón para cambiar.”

Las clases y los módulos a menudo comienzan de esta manera, pero a medida que agrega características y nuevos comportamientos, es fácil para ellos evolucionar hacia clases de Dios y módulos de Dios que ocupan cientos, o incluso miles, de líneas de código. En este punto, debe dividirlos en clases y módulos más pequeños..

6. Separación de preocupaciones

los principio de separación de preocupaciones es como el principio de responsabilidad única pero en un nivel más abstracto. En esencia, un programa debe estar diseñado de modo que tenga muchas encapsulaciones no superpuestas diferentes, y estas encapsulaciones no deben conocerse entre sí.

Un ejemplo bien conocido de esto es el paradigma modelo-vista-controlador (MVC), que separa un programa en tres áreas distintas: los datos (“modelo”), la lógica (“controlador”) y lo que ve el usuario final (“ver”) Las variaciones de MVC son comunes en los marcos web más populares de la actualidad..

Crédito de imagen: Wikimedia

Por ejemplo, el código que maneja la carga y el almacenamiento de datos en una base de datos no necesita saber cómo representar esos datos en la web. El código de representación puede recibir información del usuario final, pero luego pasa esa información al código lógico para su procesamiento. Cada parte se maneja sola.

Esto da como resultado un código modular, que facilita mucho el mantenimiento. Y en el futuro, si alguna vez necesita reescribir todo el código de representación, puede hacerlo sin preocuparse de cómo se guardan los datos o se procesa la lógica..

7. YAGNI

los “no lo vas a necesitar” principio es la idea de que nunca debes codificar la funcionalidad que mayo Necesidad en el futuro. Lo más probable es que tú no lo hará lo necesita y será una pérdida de tiempo, y no solo eso, sino que aumentará innecesariamente la complejidad de su código.

Puede ver esto como una aplicación específica del principio KISS y una respuesta a aquellos que toman el principio DRY demasiado en serio. A menudo, los programadores inexpertos intentan escribir el código más abstracto y genérico posible para evitar el código WET, pero demasiada abstracción termina en un código inflado imposible de mantener.

El truco consiste en aplicar el principio DRY solo cuando sea necesario. Si observa que se escriben trozos de código una y otra vez, resúmalos, pero nunca cuando pensar se escribirá una pieza de código una y otra vez. Más veces que no, no será.

8. Evite la optimización prematura

los sin principio de optimización prematura es similar al principio YAGNI. La diferencia es que YAGNI aborda la tendencia a implementar comportamientos antes de que sean necesarios, mientras que este principio aborda la tendencia a acelerar algoritmos antes de que sea necesario.

El problema con la optimización prematura es que nunca se puede saber realmente dónde estarán los cuellos de botella de un programa hasta después del hecho. Puedes adivinar, por supuesto, y a veces incluso puedes tener razón. Pero la mayoría de las veces, perderá un tiempo valioso tratando de acelerar una función que no es tan lenta como cree o que no se le llama con la frecuencia que espera.

Alcanza tus hitos tan simple como puedas, luego perfila tu código identificar verdaderos cuellos de botella.

9. Refactor, Refactor, Refactor

Una de las verdades más difíciles de aceptar como programador sin experiencia es que el código rara vez sale bien la primera vez. Puede sensación justo cuando implementa esa nueva característica brillante, pero a medida que su programa crece en complejidad, las características futuras pueden verse obstaculizadas por la forma en que escribió esa primera..

Las bases de código están en constante evolución. Es completamente normal volver a visitar, reescribir o incluso rediseñar fragmentos enteros de código, y no solo normal, sino saludable. Sabes más sobre las necesidades de tu proyecto ahora que cuando lo hiciste en el comienzo, y debe usar regularmente este conocimiento recién adquirido para refactorizar el código antiguo.

Tenga en cuenta que no siempre tiene que ser un gran proceso. Tome una página de los Boy Scouts of America, que viven con estas palabras: “Deje el campamento más limpio de lo que lo encontró.” Si alguna vez necesita verificar o modificar el código antiguo, límpielo y déjelo en un mejor estado..

10. Código limpio> Código inteligente

Hablando de código limpio, deja tu ego en la puerta y olvídate de escribir código inteligente. Sabes de lo que estoy hablando: el tipo de código que se parece más a un acertijo que a una solución y existe únicamente para mostrar cuán inteligente eres. La verdad es que a nadie le importa.

Un ejemplo de código inteligente es empaquetar tanta lógica en una línea como sea posible. Otro ejemplo es explotar las complejidades de un lenguaje para escribir declaraciones extrañas pero funcionales. Cualquier cosa que pueda hacer que alguien diga “Esperar lo?” al leer detenidamente tu código.

Los buenos programadores y el código legible van de la mano. Deja comentarios cuando sea necesario. Adhiérase a las guías de estilo, ya sea dictadas por un lenguaje (como Python) o una empresa (como Google). Observe modismos por idioma y deje de escribir código Java en Python o viceversa. Vea nuestro artículo sobre consejos para escribir código más limpio 10 consejos para escribir código más limpio y mejor 10 consejos para escribir código más limpio y mejor Escribir código limpio parece más fácil de lo que realmente es, pero los beneficios valen la pena. Así es como puede comenzar a escribir código más limpio hoy. .

Lo que hace a un buen programador?

Pregunta a cinco personas y obtendrás 10 respuestas diferentes. Para mí, un buen programador es aquel que entiende que la codificación debería servir al usuario final, con quien es fácil trabajar en equipo y que finaliza sus proyectos según las especificaciones y a tiempo..

Si se siente atrapado, vea nuestro artículo sobre cómo superar el bloqueo del programador. Y si no está contento escribiendo código, lea nuestro artículo sobre signos de que no debe ser un programador.

Si recién comienza, concéntrese en aprender a codificar sin estrés. ¿No estás seguro de en qué lenguaje de programación sumergirte primero? C # es un buen lugar para comenzar por razones prácticas 7 Razones prácticas para aprender Programación en C # 7 Razones prácticas para aprender Programación en C # Hay muchos lenguajes de programación, ¿cuál debería elegir para aprender? Aquí hay varias razones para aprender C #. . Y si lo elige, también tenga en cuenta estos consejos de programación C 5 Consejos de programación C que debe aprender para comenzar 5 Consejos de programación C que debe aprender para comenzar El lenguaje de programación C tiene una reputación muy dura. Pero si lo maneja, puede programar cualquier cosa, como muestran estos consejos. .




Nadie ha comentado sobre este artículo todavía.

Sobre tecnología moderna, simple y asequible.
Tu guía en el mundo de la tecnología moderna. Aprenda a usar las tecnologías y los dispositivos que nos rodean todos los días y aprenda a descubrir cosas interesantes en Internet.