Być może powtórzę coś po poprzednikach, no ale lecimy:
- Pierwszy błąd rzuca się w oczy od razu po wejściu na repo - folder
.idea
nie powinien być wersjonowany (dodaj go do .gitignore
). To samo z plikiem sqlite3.
- To samo z
.pyc
-ami i __pycache__
- powinno być w .gitignore
.
- Minus za
print
y w kodzie.
-
https://github.com/tkozuch/DivideAudio/blob/master/audio_app/core/slicing.py -> tu są jakieś pozostałości z tkintera. Jest komentarz, że to tylko do testów, ale tak się testów nie robi.
-
tests.py
puste.
-
https://github.com/tkozuch/DivideAudio/blob/master/DivideAudio/urls.py#L9 -> w nowym django nie ma potrzeby podawania raw stringów przy ścieżkach, ale jak chcesz to robić, to rób to konsekwentnie (linijkę wcześniej jest zwykły string).
-
SECRET_KEY
w repo - pobierz go ze zmiennej środowiskowej lub ustaw tylko, gdy debug jest włączony.
- debug powinien być domyślnie wyłączony.
- Nazwy paczek w pythonie powinny być pisane
snake_casem
, a u ciebie jest raz snake_case
, a raz camelCase
.
- Używaj class based views. Przy okazji polecam https://ccbv.co.uk/.
- Nie powinieneś używać bezpośrednio
FileSystemStorage
, bo jak twoja apka będzie używała jakiegoś innego storage, np. AWS S3, to ten kod się prawdopodobnie wypierdzieli. Jak chcesz operować na storage to użyj get_storage_class.
- Używaj dziedziczenia szablonów.
- W szablonach wszystkie tagi
load
umieszczaj na początku pliku.
-
https://github.com/tkozuch/DivideAudio/blob/master/audio_app/templatetags/index.py -> po pierwsze to jest kompletnie niepotrzebne, bo możesz zrobić po prostu
{{ some_list.0 }}
w szablonie, żeby wyciągnąć pierwszy element, a po drugie nazwy parametrów w pythonie pisze się mała literą. Pewnie nie chciałeś nadpisać builtina list
- w takim wypadku z reguły dodaje się underscore na końcu, np. list_
. PEP8 się kłania. No i funkcja się wywali jeśli ktoś poda stringa zawierającego coś innego niż cyfry.
- Czy muszę to gdzieś hostować czy wystarczy repo?
Zawsze warto apkę gdzieś wystawić, bo jeśli uruchomienie jej wymaga więcej sklonowania repo i wykonania jednej komendy to pewnie nikt tego nie odpali.
- Czy to mało czy może wystarczy na początek?
Ta apka prawie nie wykorzystuje django. Wg mnie takie minimum to kilka modeli w przynajmniej dwóch różnych modułach, relacje między nimi (albo przynajmniej wewnątrz), pełny CRUD (lista, szczegóły, tworzenie, edycja, usuwanie) do przynajmniej jednego modelu i przynajmniej jedno zapytanie łączące różne modele, np. wyciąganie liczby pozytywnie ocenionych postów napisanych przez danego użytkownika przez ostatni miesiąc.
Dorzucać bootstrapa? Pierwszy raz kandyduje i nie mam pojęcia nawet na co zwracana jest uwaga poza czytelnością wiadomo.
Ja bym dorzucił, bo nakład czasowy jest jest znikomy, a apka będzie wyglądać o niebo lepiej i pokażesz też kilka dodatkowych umiejętności.