Trochę tła: jestem jednym z dwóch programistów dla naszego działu 10 osób (reszta to artyści i kierownictwo). Oboje wykonujemy wszystkie kodowania wymagane do poprawnego przepływu i opracowujemy wszelkie projekty, które się pojawią. Programuję od około 4 lat, gdzie jest to jego pierwsza „prawdziwa” praca (jak to ujął). Generalnie pracujemy nad różnymi projektami w dowolnym momencie.
Kilka miesięcy temu opracowałem (wcale nie idealny) zestaw klas, które miały być wykorzystane w późniejszym projekcie. Duża część tego projektu została mu przekazana (ze względu na faktury) do zaprojektowania i zaprogramowania interfejsu GUI. Ponieważ był nowy, pomogłem trochę przy projektowaniu i powiedziałem, aby poprosić o pomoc, jeśli będzie potrzebował jej z resztą. Interfejs skończył kilka tygodni temu, który pokazał, że działa, choć trochę wolno.
Rozpoczęła się kolejna część tego projektu, nad którą pracuję. Otworzyłem interfejs, aby zacząć od kolejnych kroków, i od razu natknąłem się na problemy (trochę powolne było trochę niedopowiedzenia, błędy w typowych działaniach itp.). Zajrzałem do kodu w celu znalezienia kilku problemów i znajduję O(n^n)
na wywołaniach, które powinny O(n)
, wpisz założenia bez sprawdzania błędów (jest w Pythonie), odniesienia do GUI dodane do oryginalnego kodu i tak dalej.
Teraz zdecydowanie chciałbym nauczyć go, co jest nie tak i jak to naprawić, ale już przeszedł do następnego projektu, a było to kilka tygodni temu. Obawiam się, że mówię: „Wróć i zrób to dobrze!” (z pomocą oczywiście) jest zbyt trudny, a tymczasem wciąż mamy inne projekty do wykonania. Czy powinienem po prostu sam naprawić kod i spróbować złapać coś w przyszłości?
O(n^n)
nie istnieje, chyba że nie ma innego wyjścia. Jeśli tak, to prawdopodobnie dostali C w algorytmach, nie wzięli go lub mieli gównianego nauczyciela. Korzystając z jakiegoś narzędzia, które pomoże znaleźć typowe problemy, byłoby miło. Być może jako następne zadanie ten facet może napisać testy wydajności?