La única cosa realmente valiosa es la intuición.
Albert Einstein

ACERCA DEL ESTILO EN PROGRAMACION
José Enrique González Cornejo
18 de abril 2009

Resumen:

El artículo trata de aproximar una respuesta a la pregunta ¿Cuál es la importancia del estilo de un programador de computadoras? . La respuesta se formula desde el punto de vista de la experiencia de DocIRS, desde la investigación que demuestra que las buenas prácticas estilísticas sirven  para reducir el número de errores en el desarrollo de las aplicaciones, la economía a escala de tener códigos socializados y acerca del rol que significa el mantenimiento de programas.

 

El siguiente artículo está referido al estilo de los códigos fuentes, componentes, funciones y rutinas que desarrolla un programador o equipo de desarrollo en la construcción de sistemas.1(Ver Nomenclatura de DocIRS para la Programación)

No existen reglas fijas para construir programas claros, comprensibles y comprobables. Hay, por supuesto, guías muy generales y muy buenas además; pero el estilo individual del programador (o la ausencia de él), la claridad de su pensamiento (o la oscuridad de él), su creatividad (o falta de ella), podrán contribuir significativamente al éxito de esa tarea2.

El programador es el encargado de diseñar soluciones a los problemas y de escribirlos como programas de computadora. Es muy importante que un programador inexperto reconozca la importancia del estilo en la práctica de su oficio y que desarrolle hábitos de estilo que le permiten desenvolverse adecuadamente en su vida profesional, y exactamente lo mismo a nivel grupal en un equipo de desarrollo. Así como un buen estilo de escritura no se adquiere sólo a partir del conocimiento de las reglas de la gramática, ningún buen estilo de programación puede adquirirse solamente a partir del conocimiento de la sintaxis de algún lenguaje de programación.

La idea de que el formato y la apariencia de los códigos fuentes de un programa no son un incidente en la calidad del programa, es errónea. Precisamente aquí es donde más puede hacerse para mejorar la legibilidad de las fuentes. Los manuales técnicos de la aplicación son sólo complementos de esta documentación.

Al interior de los códigos fuentes de una rutina, se pueden distinguir dos partes documentales:  los comentarios y los párrafos. Los comentarios constituyen el principal componente de la documentación interna de los programas. Éstos sirven de ayuda al lector u otro programador para comprender las intenciones o los propósitos de las porciones del código, y también pueden servir para explicar las secciones lógicas o difíciles. Evidentemente la escritura de buenos comentarios es quizá tan importante, y tal vez tan difícil de aprender, como la escritura de buenos programas. Los buenos comentarios no pueden hacer mucho para mejorar una mala codificación, pero los malos comentarios pueden deteriorar muchísimo un buen código.

En general es relevante, declarar un comentario breve y descriptivo, previo a cualquier función, o conjunto de funciones que juegan un rol especifico, también poner la fecha de actualización.

 

La mayor parte de los programas permiten al programador utilizar varias líneas  como comentario. Esta característica hace posible el uso de la longitud precisa en un comentario de varios renglones para explicar el propósito y la interacción con un determinado componente del programa o módulo. Por ejemplo, cada subprograma debería comenzar con comentarios de este tipo para explicar su propósito, la manera en que se llama (incluyendo el significado de los parámetros) y cualquier situación especial que pueda presentarse.

Como un punto final sobre los comentarios, debe asegurarse siempre que los comentarios y el código estén en correlación. Cuando se realiza una modificación en el código, debe tenerse cuidado de que se realice un cambio similar en cualquier comentario que se le relacione. Esto se pasa por alto con mucha frecuencia.

El valor de los párrafos o sangrías controladas de secciones del listado de un programa es también una forma de mejorar la legibilidad. En cualquier texto escrito tienen dos propósitos principales: identificar las unidades de la estructura del texto y mitigar el tedio del proceso de lectura. Ambos objetivos se aplican perfectamente a los programas.

Muchos programadores caen en categorías extremas de comentarios: los que escriben pocos comentarios o ninguno y los que sobrevaloran los comentarios. Cada uno de estos extremos disminuye la legibilidad del programa en forma diferente; la escasez o ausencia fallan porque no proporcionan la adecuada información de apoyo, y la abundancia de comentarios aumenta la confusión. Los comentarios no deberían generar ruido en el código, sino explicarlo y apoyarlo.

Las sangrías pueden servir de gran ayuda al revelar la estructura lógica del programa (o del algoritmo).

<%
'*******************
Rutina TEST.ASP que recibe mediante el método GET un parámetro como cadena de texto,
con el cual crea un archivo llamado "Informe.asp " sobre el directorio en uso.
'*******************

Dim strInfo
Dim Dir
Dim HitsFile

strInfo=request("strInforme")

''Captura el path de la carpeta en uso
Dir = Request.ServerVariables("SCRIPT_NAME")
Dir = StrReverse(Dir)
Dir = Mid(Dir, InStr(1, Dir, "/"))
Dir = StrReverse(Dir)

Set obj =Server.CreateObject("Scripting.FileSystemObject")
   HitsFile = Server.MapPath(Dir) & "\Informe.asp"
   Set OutStream= obj.CreateTextFile(HitsFile, True)
   OutStream.WriteLine(strInfo)
Set OutStream= nothing

%>

 

LA IMPORTANCIA DEL ESTILO

Las personas creativas, como los artistas, escritores (Poema de Nicanor Parra, poeta que es ejemplo de estilo propio) y arquitectos, trabajan con mucha intensidad durante el período de estudios para llegar a manejar los secretos de su oficio. Al mismo tiempo, desarrollan un estilo que es único e identificable para cada uno de ellos. Este estilo no es accidental para llegar a triunfar en su trabajo; para que tengan éxito, es preciso que su estilo sea preferido en el mercado por encima de sus demás colegas.

Se está comenzando a ver un rompimiento en la programación como proceso mental. Este rompimiento se basa más en consideraciones de estilo que en los detalles. Implica tomar el estilo en serio, no sólo atender a cómo aparecen los programas una vez que están terminados, sino observar el proceso mental mismo que permite crearlos. En programación, no basta con tener inventiva y ser ingenioso; también se necesita ser disciplinado y ordenado, con el fin de no perderse en las propias complejidades3

Miró Van Gogh Rembrandt

En cualquier campo, ciertos estilos tienen ventajas definidas. Por ejemplo, ciertos estilos de música o de arte tienen más aceptación que otros. Existen estilos definidos de escribir que pueden comunicar las ideas con más efectividad; otros pueden ser mejores para comunicar detalles técnicos. Ciertos estilos de arquitectura son más apropiados que otros para soportar determinadas condiciones climáticas.

El estilo también tiene importantes consecuencias en programación, algunas de las cuales intentamos aproximar. Además de las cuestiones relativas a los estándares profesionales, algunas consideraciones sobre el estilo pueden ayudar a mejorar la calidad de los programas; por ejemplo, la investigación ha demostrado que ciertas prácticas estilísticas pueden servir para reducir el número de errores que se presentan durante el desarrollo del programa.

Estilos en disposición, en notación en utilización de los lenguajes...

public class Example {

  public static void main(String[] args) {

    Other otherInstance = new Other();

    otherInstance.instanceMethod();

    Other.staticMethod();
  }
}
 

<html>
 <META NAME='Generator' CONTENT='RobotPrototipDocIRS'>
  <
META NAME='Generator' CONTENT='Diciembre2006-DocIRS'>
   <META NAME='DocIRS' CONTENT='Prototipo PTPE 4.0'>
     <!-- InsumoRobot:c:\Inetpub\wwwroot\robot10\bruno25012007-->
      <!-- Modulo:Ficha Cliente-->
       <!-- Formulario: 6 / 53 (FrmCondicionesVigentesCliente Código:6)-->
      <!-- Actualización:25/01/2007 13:38:07 -->
    <head>
     <title>Condiciones Vigentes Cliente~Ficha Cliente</title>
      <script language='javascript' src='js/xp_progress.js'></script>
        <script language='javascript' src='js/calendarDateInput.js'></script>
          <script language='javascript' src='js/utilidades.js'></script>
            <script language='VBScript' src='js/Validacion.js'></script>
              <script type='text/javascript'>

Al mismo tiempo, el programa mismo resulta más fácil de leer y de comprender por otros programadores, quienes pueden en algún momento ser llamados para realizar modificaciones del mismo. El mantenimiento del programa, es decir, el "ajuste" de los programas que existen para reunir requerimientos siempre cambiantes, consume gran parte del tiempo del trabajo de los programadores profesionales; es muy común, de hecho, que se emplee más tiempo en el mantenimiento de un programa que en su desarrollo original.

No debe sorprender, entonces, que tanto los programadores como quienes los dirigen estén muy interesados en que la actividad de mantenimiento consuma menos tiempo y que, por tanto, el programador quede libre para desarrollar un trabajo más original y creativo. El buen estilo de programación puede ser una importante contribución al éxito del programador. Las recompensas son muy tangibles, pero se requiere un esfuerzo consciente por parte del programador.

Es aconsejable que las empresas que desarrollan aplicaciones establezcan estándares de notación, nomenclatura, generen librerías de rutinas, funciones, scripts y lógicas de solución de modo que los equipos de desarrollo se guíen por estas normas.(Ver Nomenclatura de DocIRS para la Programación)

(ver continuación de la idea en Acerca de la Calidad de una Aplicación)


2Nota: Es decir, el presente artículo no dice relación al estilo de diseño gráfico de una aplicación, multimedia, adornos, efectos especiales, colores, sombras, estructura visual de los formularios, distribución de campos, etc.. El estilo del diseño gráfico en las aplicaciones también constituye una componente fundamental en la calidad de una aplicación. De ahí que, actualmente se recurre a Diseñadores Gráficos que definan un estilo propio sobre todas las aplicaciones que se construyen actualmente por DocIRS. Este aspecto esencial de la construcción de sistemas, especialmente sobre la Web (con CSS), debería ser profundizado dentro del Cambio para el Mejoramiento en la Calidad que está llevando a cabo DocIRS durante el año 2009, con ISO 9001.)

3. Harlan Mills, foreword to Programming Proverbs, by Henry E Ledgard,Hayden Book Company

Bibliografía: