Tak. Powinieneś zwolnić swój kod, prawdopodobnie na licencji CRAPL. Celem jest zbudowanie lepszej przyszłości - a twój kiepski kod pomoże to ludziom. Zastrzeżeniem jest to, że powinieneś udokumentować, jak pomyślnie obsługiwać kod na tyle dobrze, aby ktoś miał przyzwoitą szansę na odtworzenie jakichkolwiek opublikowanych wyników.
I nie martw się - jeden fragment kodu badawczego, nad którym pracowałem został opracowany przez 5 postdoców o obojętnych umiejętnościach programowania dla serii projektów w ciągu około 8 lat.
Lista zmiennych globalnych (tylko nazwy) wynosiła około 4 strony.
Mniej więcej jedna trzecia z nich została wykorzystana do ustawienia domyślnego zachowania, aby zmienić funkcjonalność, która działała w danym momencie. Kolejne 20% to równoległe struktury danych - co oznacza, że przechowywały one w przybliżeniu te same dane - a zatem funkcje w kodzie pobierane ze struktur danych mniej więcej losowo. Tak. Czasami nie były zsynchronizowane. Czasami musiała być niezsynchronizowana.
Było około 50 nieudokumentowanych wersji, przechowywanych w losowych częściach serwera grupy - z których każda służyła co najmniej jednemu celowi - i tylko jeden administrator zachowywał te określone cele w jego głowie. Częściej zdarzało się, że ludzie używali „niewłaściwej” wersji do określonego celu.
Standardem było stosowanie niewiarygodnie złożonych procedur rekurencyjnych, np. Do pisania pliku. Poważnie - kilka tysięcy wierszy, aby zapisać wyniki obrazów.
Aha, i pozostałości po morderczej próbie rozwiązania problemu wycieku pamięci (właściwie niewidocznej liczby), nigdy nie tworząc nowej zmiennej.
Aha, i baza danych, ta piękna baza danych. Około połowa danych była bezużyteczna z powodu (a) błędów w projekcie bazy danych (b) błędów wprowadzania danych (w programach automatycznych). Kod do pobierania plików z bazy danych składał się z kilkuset wierszy logiki ... Sama baza danych również była na tyle uprzejma, że zawierała wiele kopii tych samych danych, w większości z uszkodzonymi połączeniami między tabelami. Ograniczenia? Nie. Widziałem, jak statystyka przechodzi od niepokoju przez strach, łzy do rzucenia palenia w ciągu miesiąca od powierzenia mu bazy danych ...
Było od 0 do 1 sposobów obsługi oprogramowania i uzyskiwania prawidłowych wyników w dowolnym momencie ...
I tak, były problemy.
Aha, i próbując zapewnić nieprzezroczyste i niedeterministyczne działanie, wykonano serię obliczeń, wywołując GUI przyciski z powiązanymi wywołaniami zwrotnymi.
Około 90% dowolnej funkcji było całkiem niezawodnie nieistotne dla wyniku lub debugowania wyniku - składało się raczej z wstawionych projektów krótkoterminowych, a następnie nigdy oddalony. Poważnie - napisałem pełną wersję funkcji, która faktycznie działała, która była 1/10 rozmiaru ... Znaczące ułamki to skopiowane i wklejone funkcje, z których wiele różniło się od siebie.
I, żadna Virginia, nie ma dokumentacji. Albo opisowe nazwy zmiennych.
Aha, i nieudokumentowane, błędne biblioteki dll i powiązane biblioteki - wygenerowane przy użyciu kodu, który już nie istnieje.
Wszystko napisane w Matlabie. Jeśli chodzi o praktyki kodowania Matlab, załóżmy, że obfite użycie eval byłoby główną atrakcją twojego dnia.
Poważnie, twój kod nie jest taki zły.
To powiedziawszy, jeśli zrobiłeś coś naprawdę pożytecznego, wypuszczenie oczyszczonej wersji, aby inni ludzie użyli i zacytowali Twoją bibliotekę, może przyspieszyć karierę. Jeśli właśnie coś zrobiłeś, reprodukcja jest prawdopodobnie tak daleko, jak byś był dobrze zalecany.