Imagen de un animado espacio de trabajo con una persona escribiendo en una nota adhesiva amarilla, rodeada de material de papelería de colores, como rotuladores, marcadores, lápices y notas adhesivas.

¿Qué es la documentación del código?

Definición de documentación del código

La documentación del código es el proceso de describir y explicar el código fuente de un proyecto de software. Es una parte integral del desarrollo de software y puede tomar diferentes formas, incluyendo comentarios de código, archivos compartidos o una base de conocimiento central.

La documentación del código actúa como un mapa para quienes interactúan con una base de código, ayudándoles a navegar por lo que hace cada fragmento de código, cómo funciona, cómo usarlo y cómo encajan todos los fragmentos de código. Documentar el código ayuda a los equipos de desarrollo a mantener mejor el código fuente y, al mismo tiempo, guiar a otros stakeholders que podrían necesitar comprender y trabajar con el código, como analistas de ciberseguridad, científicos de datos, ingenieros de DevOps, gerentes de productos y proyectos, ingenieros de control de calidad y redactores técnicos.

Documentación de código frente a documentación como código

La documentación como código trata la documentación como código de software. Este enfoque gestiona la documentación utilizando las mismas herramientas que el código fuente, incluidos los sistemas de control de versiones para revisar y realizar un seguimiento de los cambios, las pruebas automatizadas para identificar problemas de formato y estilo, y la integración continua/entrega continua (CI/CD) para actualizar y desplegar la documentación.

Si bien la documentación del código abarca la práctica más amplia de documentar el código, la documentación como código es una estrategia específica y un enfoque más técnico para escribir documentación.

Tipos de documentación del código

La estructura de la documentación del código dependerá de la audiencia a la que vaya dirigida y del uso que se le vaya a dar. Estos son algunos tipos comunes de documentación:

  • Documentación de bajo nivel

  • Documentación de alto nivel

  • Documentación interna

  • Documentación externa

Documentación de bajo nivel

La documentación de bajo nivel generalmente se refiere a comentarios en línea dentro del código. Como uno de los métodos más básicos para escribir documentación, estas anotaciones explican líneas o bloques de código particulares.

def multiply(x, y):
    # Returns the product of two numbers
    return x * y

Las cadenas de documentación o docstrings son otra técnica de documentación de bajo nivel. Aparecen antes de la definición de una clase, función, método o módulo. Las docstrings tienen un formato estructurado que declara propósito, ejemplos de uso, funcionalidad, parámetros y valores de retorno.

def reverse_string(s):
    ‘’’
    Returns the reverse of a string value
    Parameters:
        s (str): The string to be reversed
    Returns:
        rev (str): The string value in reverse
    ‘’’

    rev = ‘’
    x = len(s)

    while x > 0:
        rev += s[x - 1]
        x = x - 1

    return rev

Los comentarios en línea son más adecuados para especificar la lógica cuando no se puede obtener examinando el código en sí o para código basado en algoritmos más complejos. Mientras tanto, los docstrings pueden extraerse para la documentación de interfaces de programación de aplicaciones (API) y proporcionar ayuda contextual dentro de entornos de desarrollo integrados (IDE).

Documentación de alto nivel

A diferencia de la documentación de bajo nivel, que describe fragmentos de código como entidades independientes, la documentación de alto nivel incluye detalles sobre su función dentro del flujo de trabajo arquitectónico general. Este tipo de documentación de software abarca diagramas de flujo y del Unified Modeling Language (UML) que ilustran la arquitectura de código, documentos de diseño que esbozan la lógica del negocio y cómo el código se alinea con los requisitos del producto, y especificaciones de la estructura de bases de códigos o repositorios de código.

Documentación interna

Esta documentación técnica es para uso interno dentro de una empresa. Algunos ejemplos son las convenciones y normas de programación, así como los documentos de procesos que describen cómo los equipos desarrollan software. Las guías para configurar entornos de desarrollo también forman parte de la documentación interna.

Documentación externa

Esta documentación orientada al usuario está dirigida a desarrolladores y otros usuarios fuera de la empresa. Por ejemplo, la documentación de API establece las clases, funciones, métodos y módulos disponibles de las API públicas de un proyecto de software. La documentación externa también puede consistir en archivos de configuración, notas de integración y un archivo README.

El archivo README está escrito en Markdown, un lenguaje de marcado ligero para formatear texto sin formato. Contiene información sobre las características del proyecto, las dependencias, las instrucciones de instalación, los comandos de la interfaz de línea de comandos (CLI) y las opciones para obtener ayuda y soporte. Los proyectos de código abierto también agregan detalles de licencia y pautas para colaboradores para enviar solicitudes de extracción para combinar arreglos de errores o cambios de código en la rama principal del repositorio de código.

Beneficios de la documentación del código

Escribir código de una manera limpia y clara puede ser su propia forma de documentación. Sin embargo, una buena documentación sigue siendo esencial y ofrece estos beneficios:

  • Mejora la colaboración

  • Mejora la mantenibilidad

  • Acelera el desarrollo de software

  • Agiliza la incorporación

Mejora la colaboración

El código bien documentado promueve una mejor colaboración y comunicación dentro de los equipos de desarrollo. Los miembros pueden utilizar la documentación como un lenguaje común para realizar revisiones de código, discutir los cambios en el código y tomar decisiones en equipo.

Mejora la capacidad de mantenimiento

La documentación facilita la refactorización de código, el mantenimiento y la optimización del rendimiento. Durante la depuración, los desarrolladores pueden utilizar la documentación como punto de referencia para detectar errores de programación e identificar la causa principal.

Acelera el desarrollo de software

Una buena documentación sienta las bases para un desarrollo rápido, ahorrando tiempo en descubrir la funcionalidad del código y redirigiendo el enfoque para aplicar las actualizaciones de código adecuadas. Además, ayuda a realizar un seguimiento de los cambios, lo que garantiza que los equipos puedan mantenerse al día con un código que evoluciona constantemente.

Agiliza la incorporación

La documentación del código ayuda a los nuevos miembros del equipo a aprender el funcionamiento interno de una base de código. Así podrán familiarizarse más rápido con el diseño y la estructura del código, lo que les permitirá contribuir rápidamente al proyecto.

Consejos para escribir documentación de código eficaz

El código y la documentación van de la mano, por lo que también deben evolucionar juntos. Y algunas pautas para escribir código se aplican igualmente a la documentación. Estos son algunos consejos que pueden ayudar:

  • Establecer estándares de documentación de código

  • Integrar la documentación con la programación

  • La claridad y la concisión son clave

  • Documentar las decisiones de programación 

  • Manténgalo actualizado

Establecer estándares de documentación de código

Al igual que con las convenciones de programación, también hay que seguir las normas para la documentación del código. Estos estándares incluyen un formato coherente, como sangría, saltos de línea y espaciado para documentación de bajo nivel. Por otra parte, las plantillas y las herramientas de documentación de código pueden ayudar a definir el estilo y la estructura de la documentación de la API y de otros tipos de documentación de alto nivel y externa.

Integrar la documentación con la programación

Esto podría implicar agregar cadenas de documentación al completar una función o insertar comentarios en línea mientras se implementan algoritmos o lógica intrincados. Escribir documentación mientras se programa puede ayudar a los desarrolladores a articular su proceso de pensamiento y toma de decisiones, asegurándose de que los detalles cruciales no se pierdan en el camino. Aunque al principio pueda llevar algo más de tiempo, puede llegar a convertirse en una parte natural del proceso de programación y acelerar la depuración, la optimización y la refactorización en el futuro.

La claridad y la concisión son clave

El exceso de documentación puede dificultar la legibilidad del código. Los desarrolladores deben priorizar la escritura de código limpio y claro, y luego agregar la documentación necesaria que se ajuste perfectamente a ese código.

Cuando se trata de concisión, es vital encontrar el equilibrio adecuado. Por ejemplo, es posible que los fragmentos de código cortos y simples no necesiten documentación. Por otro lado, los algoritmos más sofisticados requieren documentación que explique la lógica subyacente de una manera que los desarrolladores con diferentes niveles de experiencia puedan entender.

Documentar las decisiones de programación

Esto incluye el diseño, la arquitectura, la lógica y las decisiones algorítmicas. Documentar estas decisiones de programación, ya sea mediante un documento interno de alto nivel o una base de conocimientos compartida, proporciona el contexto necesario para cualquier cambio que se realice en el futuro.

Manténgalo actualizado

Los equipos de desarrollo deben realizar revisiones y actualizaciones periódicas de la documentación de su código para asegurarse de que sea precisa, completa y relevante, y refleje el estado actual del software. Incorporar la documentación al proceso de revisión del código puede facilitar las actualizaciones periódicas.

Desarrollo de aplicaciones

Entérese: desarrollo de aplicaciones empresariales en la nube

En este video, el Dr. Peter Haumer analiza cómo es el desarrollo de aplicaciones empresariales modernas en la nube híbrida y hace una demostración de diferentes componentes y prácticas, incluidos IBM Z Open Editor, IBM Wazi y Zowe.

Herramientas de documentación de código

La mayoría de los IDE tienen extensiones o plugins para generar documentación de código, pero otros marcos y herramientas también pueden ayudar a automatizar el proceso. Estos son algunos generadores de documentación comunes:

  • Doxygen

  • GitBook

  • Javadoc

  • JSDoc

  • Sphinx

Doxygen

Doxygen es compatible con varios lenguajes de programación, como C, C++, Java, PHP y Python. Permite la representación de markdown y puede producir documentación en formatos HTML, PDF y XML. Doxygen se puede personalizar a través de un archivo de configuración y proporciona la capacidad de generar diagramas que representan jerarquías visuales y correlaciones entre clases y funciones.

GitBook

GitBook ofrece una interfaz de usuario para escribir y publicar documentación como un sitio web, lo que puede hacer más eficiente la creación de documentación tanto interna como externa. La plataforma también ofrece sincronización con repositorios de GitHub o GitLab.

Javadoc

La herramienta Javadoc analiza comentarios de documentación dentro del código fuente de Java para generar documentación de la API en formato HTML. Puede documentar clases, constructores, campos, interfaces y métodos.

JSDoc

De forma similar a Javadoc, JSDoc genera documentación de API para proyectos JavaScript. Su comunidad de código abierto ha desarrollado plantillas y herramientas para personalizar la documentación.

Sphinx

Sphinx está diseñado principalmente para Python, pero también se puede extender a otros lenguajes de programación. Admite markdown y su propio lenguaje de marcado llamado reStructuredText. Sphinx puede crear documentación en varios formatos de resultados y cuenta con referencias cruzadas para vincular a otros elementos de código.

IA generativa para la documentación de código

Los generadores de documentación se limitan a las anotaciones que encuentran en el código fuente. La IA generativa lleva la documentación un paso más allá, ya que analiza un fragmento de código específico y agrega comentarios que describen su propósito y su función. Muchos modelos de lenguaje grandes (LLM) para código tienen capacidades integradas para generar documentación.

Por ejemplo, IBM® Bob puede generar líneas de comentarios para un solo método o para todos los métodos dentro de una clase. Otras herramientas similares incluyen GitHub Copilot, JetBrains AI Assistant, Mintlify y Tabnine.

Al igual que con cualquier sistema de inteligencia artificial, los desarrolladores aún deben revisar los resultados de las herramientas de documentación de código impulsadas por IA para verificar su integridad y precisión.

Autores

Rina Diane Caballar

Staff Writer

IBM Think

Cole Stryker

Staff Editor, AI Models

IBM Think

Soluciones relacionadas
IBM Bob

Acelere la entrega de software con Bob, su socio de IA para un desarrollo seguro y consciente de la intención.

Explore IBM Bob
Soluciones de programación de IA

Optimice el desarrollo de software con herramientas confiables impulsadas por IA que minimizan el tiempo dedicado a escribir código, depurar, refactorizar código o completar código, y deje más espacio para la innovación.

Explore soluciones de programación de IA
Consultoría y servicios de IA

Reinvente los flujos de trabajo y las operaciones críticos añadiendo IA para maximizar las experiencias, la toma de decisiones en tiempo real y el valor empresarial.

Explore los servicios de consultoría de IA
Dé el siguiente paso

Aproveche la IA generativa y la automatización avanzada para crear código empresarial listo de forma más rápida. Bob crea modelos para aumentar el conjunto de habilidades de los desarrolladores, simplificando y automatizando sus esfuerzos de desarrollo y modernización.

  1. Descubra IBM Bob
  2. Explore soluciones de programación de IA