Ein kleiner Hintergrund: Ich bin einer von zwei Programmierern für unsere Abteilung mit 10 Mitarbeitern (der Rest sind Künstler und Management). Wir beide schreiben alles, was nötig ist, um einen reibungslosen Ablauf zu gewährleisten, und entwickeln alle anstehenden Projekte. Ich programmiere seit ungefähr 4 Jahren, wo dies sein erster "richtiger" Job ist (wie er es ausdrückt). In der Regel arbeiten wir zu jedem Zeitpunkt an unterschiedlichen Projekten.
Vor ein paar Monaten habe ich eine (keineswegs perfekte) Reihe von Klassen entwickelt, die für ein späteres Projekt verwendet werden sollten. Ein großer Teil dieses Projekts wurde (aus Abrechnungsgründen) an ihn delegiert, um eine GUI-Oberfläche zu entwerfen und zu programmieren. Da er neu war, half ich ein bisschen beim Entwerfen und bat um Hilfe, wenn er sie für den Rest brauchte. Er hat das Interface vor ein paar Wochen fertiggestellt, was er demonstrieren wollte, um zu zeigen, dass es funktionierte, wenn auch etwas langsam.
Der nächste Teil des Projekts, an dem ich arbeite , hat begonnen . Ich habe die Benutzeroberfläche geöffnet, um mit den nächsten Schritten zu beginnen, und bin sofort auf Probleme gestoßen (ein wenig langsam war ein wenig Untertreibung, Fehler bei allgemeinen Aktionen usw.). Ich habe den Code nach ein paar Problemen durchgesehen und O(n^n)
bei Aufrufen festgestellt, dass es sich dabei um O(n)
Annahmen ohne Fehlerprüfung (in Python), Verweise auf die dem ursprünglichen Code hinzugefügte GUI usw. handeln sollte.
Jetzt möchte ich ihm auf jeden Fall beibringen, was falsch war und wie man es repariert, aber er ist bereits zu seinem nächsten Projekt übergegangen, und das war vor ein paar Wochen. Ich fürchte, ich sage "Geh zurück und mach es richtig!" (mit hilfe natürlich) ist zu hart und wir haben in der zwischenzeit noch andere projekte zu erledigen. Sollte ich den Code jetzt einfach selbst reparieren und versuchen, die Dinge in der Zukunft einzufangen?
O(n^n)
nicht gibt , es sei denn, es gibt einfach keinen anderen Weg. Wenn ja, dann haben sie wahrscheinlich ein C in Algorithmen oder haben es nicht genommen oder hatten einen beschissenen Lehrer. Es wäre schön, eine Art Werkzeug einzusetzen, um häufige Probleme zu finden. Vielleicht kann dieser Typ als nächste Aufgabe einige Leistungstests schreiben?