Un peu d'histoire: je suis l'un des deux programmeurs de notre département de 10 personnes (les autres sont artistes et management). Nous faisons tous les deux le codage nécessaire pour bien faire avancer les choses et développer tous les projets à venir. Je programme depuis environ 4 ans maintenant, où c'est son premier "vrai" travail (comme il le dit). Nous travaillons généralement sur différents projets à tout moment.
Il y a quelques mois, j'ai développé un ensemble (pas du tout parfait) de classes qui devaient être utilisées pour un projet ultérieur. Une grande partie de ce projet lui a été déléguée (pour des raisons de facturation) pour concevoir et programmer une interface graphique. Depuis qu'il était nouveau, j'ai aidé un peu avec la conception et j'ai dit de demander de l'aide s'il en avait besoin avec le reste. Il a terminé l'interface il y a quelques semaines, qu'il a démontré pour montrer que cela fonctionnait, bien qu'un peu lent.
La prochaine partie de ce projet a commencé et je travaille dessus. J'ai ouvert l'interface pour commencer avec les étapes suivantes et j'ai immédiatement rencontré des problèmes (un peu lent était un peu d'euphémisme, des erreurs sur les actions courantes, etc.). J'ai regardé dans le code pour quelques problèmes et je trouve O(n^n)
sur les appels qui devraient être O(n)
, des hypothèses de type sans vérification d'erreur (c'est en Python), des références à l'interface graphique ajoutée au code d'origine, etc.
Maintenant, je voudrais vraiment lui apprendre ce qui n'allait pas et comment y remédier, mais il est déjà passé à son prochain projet, et c'était il y a quelques semaines. J'ai peur de me dire "Retourne et fais-le bien!" (avec l'aide bien sûr) est trop sévère, et nous avons encore d'autres projets à réaliser dans l'intervalle. Dois-je simplement corriger le code moi-même pour l'instant et essayer d'attraper les choses à l'avenir?
O(n^n)
moins qu'il n'y ait tout simplement pas d'autre moyen. S'ils le font, alors ils ont probablement obtenu un C en algorithmes ou ne l'ont pas pris ou avaient un professeur merdique. Utiliser une sorte d'outil pour aider à trouver des problèmes communs serait bien. Peut-être que la prochaine tâche ce gars peut écrire des tests de performance?