Un poco de historia: soy uno de los dos programadores para nuestro departamento de 10 personas (el resto son artistas y gerentes). Los dos hacemos toda la codificación necesaria para que las cosas fluyan bien y desarrollamos cualquier proyecto que surja. He estado programando durante unos 4 años, donde este es su primer trabajo "real" (como él lo dice). Generalmente estamos trabajando en diferentes proyectos en cualquier momento.
Hace un par de meses desarrollé un conjunto (de ninguna manera perfecto) de clases que se utilizarían para un proyecto posterior. Se le delegó una gran parte de ese proyecto (por razones de facturación) para diseñar y programar una interfaz GUI. Como era nuevo, ayudé un poco con el diseño y le dije que pidiera ayuda si la necesitaba con el resto. Terminó la interfaz hace unas semanas, que demostró para demostrar que funcionaba, aunque un poco lento.
La siguiente parte de ese proyecto ha comenzado, en la que estoy trabajando. Abrí la interfaz para comenzar con los siguientes pasos, e inmediatamente me encontré con problemas (un poco lento fue un poco de eufemismo, errores en acciones comunes, etc.). Busqué en el código algunos problemas y estoy encontrando O(n^n)llamadas que deberían ser O(n), escriba suposiciones sin verificación de errores (está en Python), referencias a la GUI agregada al código original, y así sucesivamente.
Ahora, definitivamente me gustaría enseñarle lo que estaba mal y cómo solucionarlo, pero ya pasó a su próximo proyecto, y esto fue hace unas semanas. Me temo que digo "¡Vuelve y hazlo bien!" (con ayuda, por supuesto) es demasiado duro, y todavía tenemos otros proyectos por hacer mientras tanto. ¿Debo arreglar el código yo mismo por ahora e intentar atrapar cosas en el futuro?
O(n^n)menos que simplemente no haya otra manera. Si lo hacen, entonces probablemente obtuvieron una C en algoritmos o no la tomaron o tuvieron un profesor horrible. Sería bueno aprovechar algún tipo de herramienta para ayudar a encontrar problemas comunes. ¿Quizás como la próxima tarea este tipo puede escribir algunas pruebas de rendimiento?