Saltar al contenido principal

Comentarios y Documentación

Cada lenguaje tiene su propia sintaxis para comentarios y documentación. Aquí se muestra cómo los diferentes lenguajes manejan los comentarios de código y la generación de documentación.

Comentarios​

// Single-line comment

/* Multi-line
comment */

/**
* JSDoc documentation comment
* @param {string} name - The user's name
* @param {number} age - The user's age
* @returns {string} A greeting message
* @throws {Error} If name is empty
* @example
* greet("John", 30); // "Hello, John!"
*/
function greet(name, age) {
return "Hello, " + name + "!";
}

// TODO: Implement this feature
// FIXME: This has a bug
// NOTE: Important detail

Puntos Clave​

  • Herramientas de generación de documentación -- Cada ecosistema tiene herramientas estándar: JSDoc para JavaScript, PHPDoc para PHP, cargo doc para Rust, go doc para Go, Sphinx o pydoc para Python, Doxygen para C/C++, Javadoc para Java, YARD para Ruby y swift-docc para Swift. Estas herramientas escanean los comentarios de documentación y producen HTML u otros formatos. Por ejemplo, cargo doc --open en Rust genera y abre la documentación de la API; javadoc -d docs src/*.java hace lo mismo para Java. Al iniciar un proyecto, adopta la herramienta predeterminada del ecosistema temprano para que la documentación se mantenga sincronizada con el código.

  • Convenciones de comentarios de documentación -- La triple barra (///) se usa en Rust, Zig, C# y Swift para documentación que precede funciones o tipos. JavaScript, PHP, Java y C/C++ usan bloques /** */ con etiquetas como @param, @returns y @throws. C# también soporta etiquetas XML como <summary>, <param> y <returns>. Python usa docstrings (cadenas entre comillas triples) como formato principal de documentación. Elige la convención que coincida con las herramientas de tu lenguaje; mezclar estilos en un proyecto causa confusión.

  • Sintaxis y etiquetas de comentarios de documentación -- Las etiquetas comunes entre lenguajes incluyen descripciones de parámetros (@param name), valores de retorno (@returns o @return), excepciones (@throws) y ejemplos (@example o # Examples). Rust y Zig soportan Markdown dentro de los comentarios de documentación; C# usa XML. Para máxima claridad, documenta los parámetros y valores de retorno de cada función pública, y agrega un ejemplo breve donde sea útil. La documentación escasa o inconsistente perjudica la mantenibilidad.

  • Testing de ejemplos de código -- El cargo test de Rust puede ejecutar bloques de código en comentarios de documentación, por lo que los ejemplos permanecen ejecutables y correctos. El doctest de Python ejecuta fragmentos >>> en docstrings como tests. Java y Javadoc soportan bloques {@code} para visualización pero no ejecución automática. Invertir en ejemplos ejecutables (Rust, Python) reduce la documentación obsoleta o incorrecta. Cuando tu lenguaje lo soporte, agrega ejemplos ejecutables y ejecútalos en CI.