Tak naprawdę nie piszę dużych projektów. Nie prowadzę ogromnej bazy danych ani nie obsługuję milionów wierszy kodu.
Mój kod to przede wszystkim rzeczy „skryptowe” - rzeczy do testowania funkcji matematycznych lub symulacji czegoś - „programowanie naukowe”. Najdłuższe programy, nad którymi pracowałem do tej pory, to kilkaset wierszy kodu, a większość programów, nad którymi pracuję, to około 150.
Mój kod to też bzdury. Zrozumiałem to innego dnia, gdy próbowałem znaleźć plik, który napisałem jakiś czas temu, ale że prawdopodobnie nadpisałem i że nie używam kontroli wersji, co prawdopodobnie powoduje, że wielu z was wzdryga się z bólu z powodu mojej głupoty.
Styl mojego kodu jest zawiły i jest wypełniony przestarzałymi komentarzami wskazującymi alternatywne sposoby zrobienia czegoś lub skopiowanymi wierszami kodu. Podczas gdy nazwy zmiennych zawsze zaczynają się bardzo ładnie i opisowo, gdy dodaję lub zmieniam rzeczy, np. Coś nowego, co ktoś chce przetestować, kod nakłada się na wierzch i zastępuje, a ponieważ czuję, że to powinno być przetestowane szybko, kiedy ja mam frameworkę, zaczynam używać kiepskich nazw zmiennych, a plik przechodzi do puli
W projekcie, nad którym teraz pracuję, jestem w fazie, w której wszystko to wraca, by mnie ugryźć na wielką skalę. Ale problem polega na tym (oprócz korzystania z kontroli wersji i tworzenia nowego pliku dla każdej nowej iteracji i rejestrowania go gdzieś w pliku tekstowym, co prawdopodobnie zdecydowanie pomoże sytuacji). Naprawdę nie wiem, jak postępować w celu poprawy mój rzeczywisty styl kodowania.
Czy testowanie jednostkowe jest konieczne do pisania mniejszych fragmentów kodu? Co powiesz na OOP? Jakie metody są dobre do szybkiego pisania dobrego, czystego kodu podczas „programowania naukowego”, a nie do pracy przy większych projektach?
Zadaję te pytania, ponieważ często samo programowanie nie jest zbyt skomplikowane. Chodzi bardziej o matematykę lub naukę, którą testuję lub badam przy programowaniu. Na przykład, czy klasa jest niezbędna, gdy dwie zmienne i funkcja prawdopodobnie mogłyby się tym zająć? (Należy wziąć pod uwagę, że ogólnie są to sytuacje, w których prędkość programu jest preferowana na szybszym końcu - jeśli wykonujesz 25 000 000 kroków czasowych symulacji, tak jakbyś chciał).
Być może jest to zbyt szerokie, a jeśli tak, przepraszam, ale patrząc na książki o programowaniu, często wydają się być adresowane do większych projektów. Mój kod nie potrzebuje OOP, i jest już dość cholernie krótki, więc nie jest taki jak „och, ale plik zostanie zmniejszony o tysiąc linii, jeśli to zrobimy!” Chcę wiedzieć, jak „zacząć od nowa” i programować czysto w tych mniejszych, szybszych projektach.
Z przyjemnością przedstawię bardziej szczegółowe informacje, ale im bardziej ogólna rada, tym bardziej przydatna, jak sądzę. Programuję w Pythonie 3.
Ktoś zasugerował duplikat. Wyjaśnię, że nie mówię o całkowitym ignorowaniu standardowych standardów programowania. Oczywiście istnieje powód, dla którego istnieją te standardy. Ale z drugiej strony, czy naprawdę ma sens pisanie kodu, który mówi OOP, gdy można by zrobić pewne standardowe rzeczy, byłby znacznie szybszy do napisania i byłby podobny poziom czytelności z powodu krótkiego program?
Są wyjątki. Ponadto prawdopodobnie istnieją standardy programowania naukowego wykraczające poza zwykłe standardy. Też pytam o to. Nie chodzi o to, czy normalne standardy kodowania powinny być ignorowane podczas pisania kodu naukowego, chodzi o pisanie czystego kodu naukowego!
Aktualizacja
Pomyślałem, że dodam aktualizację „nie całkiem tydzień później”. Wszystkie twoje porady były niezwykle pomocne. Teraz używam kontroli wersji - git, z git kraken dla interfejsu graficznego. Jest bardzo łatwy w użyciu i drastycznie wyczyścił moje pliki - nie trzeba już trzymać starych plików lub starych wersji kodu komentowanych „na wszelki wypadek”.
Zainstalowałem także pylint i uruchomiłem go na całym kodzie. Początkowo jeden plik uzyskał wynik ujemny; Nie jestem nawet pewien, jak to było możliwe. Mój główny plik zaczął się od ~ 1,83 / 10, a teraz ma ~ 9,1 / 10. Cały kod jest teraz dość dobrze zgodny ze standardami. Przebiegłem to także na własne oczy, aktualizując zmienne nazwy, które poszły ... hmm ... nie tak i szukałem sekcji do refaktoryzacji.
W szczególności zadałem ostatnie pytanie na tej stronie w sprawie refaktoryzacji jednej z moich głównych funkcji, a teraz jest o wiele czystsze i znacznie krótsze: zamiast długiej, rozdętej, wypełnionej / jeśli jeszcze wypełnionej funkcji, jest teraz mniejsza niż połowa rozmiar i znacznie łatwiej zrozumieć, co się dzieje.
Kolejnym krokiem jest wdrożenie „testów jednostkowych”. Rozumiem przez to plik, który mogę uruchomić na moim głównym pliku, który przegląda wszystkie zawarte w nim funkcje za pomocą instrukcji aser i try / wyjątki, co prawdopodobnie nie jest najlepszym sposobem na zrobienie tego i powoduje wiele duplikatów kodu, ale będę czytał dalej i spróbuję wymyślić, jak to zrobić lepiej.
Znacząco zaktualizowałem również dokumentację, którą już napisałem, i dodałem dodatkowe pliki, takie jak arkusz kalkulacyjny programu Excel, dokumentacja i powiązany dokument do repozytorium github. Teraz wygląda to trochę jak prawdziwy projekt programistyczny.
Więc ... Myślę, że to wszystko do powiedzenia: dziękuję .