¡Tú no sabes programar!

En el fabuloso mundo de los makers, es decir de aquellos que hacen que cosas nuevas sucedan, es común encontrarse personas de mente brillante y de sueños amplios, que se tienden a limitar de una u otra forma bajo la frase “no sé programar“.

Cuando escucho esa frase se despierta un ángel que me regaló mi padre don Misael Núñez y me “cachetea”… durante mi infancia mi padre solía preguntarme: “¿y quién enseñó al primero que lo hizo?

Dicho esto, preguntémonos: ¿Qué es saber programar? – Después de todo, un programa no es otra cosa que una serie de pasos ¿o no?

Pienso que programar de la forma correcta tiene dos objetivos primordiales:

  1. Que el computador haga lo que se pretende con un desempeño apropiado.
  2. Que cualquier ser humano que lea el programa lo pueda entender y mejorar y darle mantenimiento.

Para el primer  objetivo debemos enfocarnos no solo en endender de lenguajes de programación y tecnologías, sino también en entender “el negocio”, lo que se espera lograr con el programa.

El segundo objetivo es casi más un arte que una ciencia: Es programar de forma que otras personas (o uno mismo tiempo después) puedan leer el programa y entender de qué se trata.

Seguidamente les presento un par de listas para explorar ambos objetivos. Espero ir profundizando cada lista en publicaciones posteriores.

Consideraciones para que el computador haga lo que se pretende:

  1. Conozca el negocio; qué es lo que se espera lograr con su programa.
  2. Las soluciones más simples son siempre mejores.
  3. Considere las limitaciones del computador en su diseño.
  4. El registro de actividad de un programa es indispensable. Sepa diferenciar entre información, advertencia, error y excepción.
  5. Las validaciones de datos son imprescindibles.

Consideraciones para una programación legible:

  1. Que cada clase u objeto se dedique a hacer una sola cosa o tratar un solo tema.
  2. Estructure su programa como un mapa mental al que pueda regresar en el futuro. Evidencie una estructura simple que absorba la complejidad en cada nivel de profundidad.
  3. Use nombres significativos para variables, métodos, clases y archivos. Es mejor llamar una variable idx que llamarla i.
  4. Evite demasiadas anidaciones condicionales o bucles.
  5. Mantenga sus métodos y funciones de un tamaño razonable (menos de 30 líneas)
  6. Evite el uso de variables globales.
  7. Es preferible recibir parámetros y devolver resultados que intercambiar valores por referencia.

Como párrafo final, pienso que esta publicación no es tan buena como el conocido “Zen de Python” el cual puedes leer en 20 segundos acá: https://es.wikipedia.org/wiki/Zen_de_Python

Happy Coding!

138 total views, 4 views today

3Shares

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

This site uses Akismet to reduce spam. Learn how your comment data is processed.