No conozco otros entornos, pero cuando se trata de proyectos PHP grandes (a menudo de código abierto) que otras personas han escrito, phpXRef es un salvavidas absoluto (especialmente si el documento se coloca en línea y Google puede indexarlo).
Incluso un proyecto mal comentado puede al menos ayudarme a localizar dónde se han definido las cosas y dónde se usan (por ejemplo, cuando se refactoriza).
Cuando está bien comentado, las páginas resultantes se forman cerca de una Biblia perfecta para la base de código (para mis usos de todos modos).
Además, mi IDE preferido generará automáticamente el bloque de comentarios (si escribo / **) que realiza aproximadamente el 75% del trabajo de comentarios para mí. Es sorprendente la cantidad de cosas estúpidas que me han impedido cometer durante mi vida de codificador solo porque he tenido que explicar a otras personas (y en el futuro a mí) lo que estoy haciendo. Cuando mi comentario para el generador de documentos es más grande que el método, esto generalmente significa que no he tomado suficiente café y que tal vez quiera pensar un poco más.
Esos mismos bloques de comentarios también crean el texto de "ayuda" de finalización en línea para que pueda ver exactamente lo que se esperaba (por los otros codificadores) mientras escribo la llamada a la función. Este es un gran impulso de productividad para mí (especialmente en esos casos extremos poco comunes en los que algún otro desarrollador útil ha escrito "por amor de Dios, hacer / no hacer X", lo que puede ahorrar mucho dolor.
No puedo enfatizar lo suficiente lo útil que es tener los tipos de entrada esperados especificados en proyectos PHP complejos (y a menudo mal nombrados) y el orden de los argumentos en los métodos menos utilizados. Incluso con mi propio código, no siempre puedo recordar qué argumentos especifiqué para algo que no he tocado en una época.
En un caso, significaba que la fuente de los problemas recurrentes era que, por alguna razón que se refleja mal en los desarrolladores anteriores, algunas funciones e incluso constantes se definieron en una gran cantidad de lugares (con un cierto grado de inconsistencia para "diversión" adicional) . Esa fue la señal para alejarse del proyecto.
En proyectos más grandes que comenzaron antes de que me uniera, puedo ver qué desarrollador (suponiendo que etiquetaron el archivo de clase con un nombre y un correo electrónico) creó la clase y simplemente poder encontrar y hablar con el desarrollador correcto es de gran ayuda.
Listas de tareas automáticas: el uso de la etiqueta @todo (común en el tipo de proyectos en los que me encuentro trabajando) significa que la documentación puede realizar un seguimiento de las cosas que necesitan más trabajo (o características que se reconoce que faltan). Una vez más, mi IDE realiza un seguimiento de esto y solo eso actúa como una buena guía sobre lo que necesita mi atención primero.
Por último (y muy importante para mí) elimina la sobrecarga no trivial de escribir todo eso y luego tratar de mantenerlo actualizado cuando algunos (leer muchos) codificadores cometen cambios y no hablan con los encargados de la documentación.
Entonces, las razones incluyen:
- Ahorrando a los desarrolladores posteriores una pila de tiempo,
- Realizar un seguimiento de dónde se llaman (y se definen) las funciones,
- Manchado de codificaciones tontas,
- Encontrar (como ha señalado otro) cuando obviamente falta algo,
- Simplificar la refactorización (nunca es muy divertido)
- (En muchos casos) tener una idea de lo que el desarrollador estaba tratando de hacer (suponiendo que dejara algunas notas).
- Si el proyecto es lo suficientemente complejo como para tener varias licencias en curso (no es divertido), puedo ver rápidamente qué licencias se aplican a cualquier sección. Es cierto que este es un bono adicional.
- Tener una idea de con quién hablar sobre un archivo de proyecto.
- Listas de tareas automáticas
Además, no subestimes el valor de mantener contentos a los jefes de cabello puntiagudo con solo tocar un botón.
En resumen, los "comentarios de documentación automática" son vitales para mis hábitos de codificación. Estoy seguro de que hay muchos que piensan que es tonto, pero también estoy seguro de que hay algunas personas que saben exactamente lo que estoy diciendo. No sé cómo sobreviví antes de descubrir phpXRef (y mi IDE favorito).