Foros del Web » Programación para mayores de 30 ;) » Programación General »

Duda sobre documentación de código

Estas en el tema de Duda sobre documentación de código en el foro de Programación General en Foros del Web. Qué tal gentes!!!!! Tengo una duda respecto a documentar un código que recurre a la estrategia de divide y vencerás . Voy a utilizar un ...
  #1 (permalink)  
Antiguo 16/05/2006, 23:27
 
Fecha de Ingreso: diciembre-2003
Mensajes: 1.583
Antigüedad: 20 años, 4 meses
Puntos: 13
Duda sobre documentación de código

Qué tal gentes!!!!!

Tengo una duda respecto a documentar un código que recurre a la estrategia de divide y vencerás. Voy a utilizar un ejemplo bastante burdo e infantil, pero me sirve para lo que quiero preguntar.

Supongamos que tengo un script para fabricar un teclado de computador, en donde todas las acciones están contenidas en un único método principal:

Código:
function fabricarTeclado(){
    Bloque de codigo para fabricar las teclas;
    Bloque de código para fabricar el armazón;
    Bloque de codigo para fabricar los cables de conexión;
    Bloque de codigo para unir todas las piezas;
}
Si aplico la técnica divide y vencerás podría llegar a esto (y aprovecho de documentar brevemente cada una de las funciones, exepto la principal fabricarTeclado):

Código:
function fabricarTeclado(){
    teclas = fabricarTeclas();
    armazon = fabricarArmazon();
    cables = fabricarCables();
    teclado = armarTeclado(teclas, armazon, cables);
    imprimir teclado;
}

// Rutina: fabricarTeclas()
// Objetivo: Fabricar todas las teclas del teclado
// Devuelve: El grupo de teclas fabricadas
function fabricarTeclas(){
    Bloque de codigo para fabricar teclas;
    return teclas;
}

// Rutina: fabricarArmazon()
// Objetivo: Fabricar el cuerpo base del teclado
// Devuelve: El cuerpo base fabricado
function fabricarArmazon(){
    Bloque de codigo para fabricar armazon;
    return armazon;
}

// Rutina: fabricarCables()
// Objetivo: Fabricar los cables de conexion para el teclado
// Devuelve: El grupo de cables fabricados
function fabricarCables(){
    Bloque de codigo para fabricarlos cables;
    return armazon;
}

// Rutina: armarTeclado()
// Objetivo: Armar el teclado uniendo todas las piezas que se le entregan
// Devuelve: El teclado armado
function armarTeclado(teclas, armazon, cables){
    Bloque de codigo para unir las piezas;
    return teclado;
}
En fin, las acciones del método principal fueron separadas en diversos metodos segun sus caracteristicas. Y cada uno de estos métodos fue documentado entrgeando una breve descripción de qué es lo que hace.

Mi pregunta es: ¿en el caso del método principal -fabricarTeclado()- cómo tendría que describirlo considerando que está compuesto por varias sub-rutinas y que c/u de ellas ya ha sido documentada describiendo lo que hacen?

Perdón si la pregunta es un tanto burra, pero fue el único ejemplo que se me ocurrió
__________________
El conocimiento es libre: Movimiento por la Devolución
  #2 (permalink)  
Antiguo 18/07/2006, 22:54
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
Pues tienes que documentarlo de manera de describir en forma general lo que hace el metodo, por ejemplo:

// Rutina: fabricarTeclado()
// Objetivo: Fabricar el teclado en su totalidad.
// Devuelve: Nada
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux

Última edición por TolaWare; 27/07/2006 a las 22:20
  #3 (permalink)  
Antiguo 24/07/2006, 20:45
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
algo importante tambien va a depende (tal vez) del lenguaje, por ejemplo en c# puedes documentar tu código y medianta el VS Net te genera un XML para despues con otro programa generar los archivos .chm y te ahorras crear el manual porque al mismo tiempo que vas creando tus métodos, clases, interfaces, etc, vas documentando, un ejemplo de como yo documento es de la siguiente forma (para el caso de componentes)

Cita:
/// <summary>
/// Personalize a specific control from database to get settings by module
/// </summary>
/// <param name="moduleID">Module ID to identify current control</param>
/// <returns>A Hashtable</returns>
public static Hashtable mGetModuleSettings(int pnuModuleID) {
Hashtable settings = cBLLSiteSettings.mGetSettings(pnuModuleID);

return settings;
}
ahora que si vas a documentar algun aplicacion compartida lo podrías dejar de la siguiente forma:

Cita:
/// <summary>
/// Objective: Personalize a specific control from database to get settings by module
/// Author: Eduardo Sánchez Almazán
/// Date Created: 07-2006
/// Company S.A
/// </summary>
/// <param name="moduleID">Module ID to identify current control</param>
/// <returns>A Hashtable</returns>
public static Hashtable mGetModuleSettings(int pnuModuleID) {
Hashtable settings = cBLLSiteSettings.mGetSettings(pnuModuleID);
return settings;
}
como te darás cuenta la documentacion puede variar si es orientado a la creacion de algun componente, a una aplicacion donde van a intervenir varios, etc, no hay una regla donde diga que debe ir de cierto modo solo hay recomendaciones y uno establece sus propios estándares

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #4 (permalink)  
Antiguo 17/09/2006, 00:27
 
Fecha de Ingreso: diciembre-2003
Mensajes: 1.583
Antigüedad: 20 años, 4 meses
Puntos: 13
Gracias a los dos...

RootK... en realidad mi pregunta iba dirigida más al "qué decir" que al "cómo decirlo" en la función fabricar_teclado() para que no sonara redundante.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:32.