Prośba o ocenę, wskazówki do projektu do CV na staż/juniora django.

0

Zamierzam kandydować na juniora python dev, albo próbować na staż się chociaż dostać. Zrobiłem aplikację i mam kilka pytań do niej:

  1. Czy muszę to gdzieś hostować czy wystarczy repo?
  2. Czy to mało czy może wystarczy na początek?
    Dorzucać bootstrapa? Pierwszy raz kandyduje i nie mam pojęcia nawet na co zwracana jest uwaga poza czytelnością wiadomo.

Będę bardzo wdzięczny za wskazówki czy coś takiego się nada, co trzeba by było poprawić, czy coś dorobić itd.

Oto aplikacja webową która pobiera plik dźwiękowy i tnie go wg. wskazówek podanych przez użytkownika (domyślnie tnie album na piosenki, oczywiście taki do którego posiadamy prawa).

https://github.com/tkozuch/DivideAudio

0
  1. Zawsze dobrze to wypchnąć na jakiś vps.
  2. Nie wiem czy jesteś studentem itp. bo jak jesteś studentem 1 roku np. no to wiadomo, trzeba od czegoś zacząć. Ale jak jesteś po studiach / chcesz zacząć zarabiać to...
    Przygotuj się na brak odzewu.

Nie wiem dlaczego chcesz szukać pracy skoro jesteś moim zdaniem na jakimś 20% drogi do zdobycia pracy, ale próbować w sumie warto.

0

Django można za free na Heroku wrzucić, a mało kto renderuje widoki w głowie.

0

folder .idea to chyba możesz wywalić z projektów

0

Brak README.md i jakiejś dokumentacji.

0

Dzięki za wszystkie informacje.

NeutrinoSpinZero napisał(a):
  1. Zawsze dobrze to wypchnąć na jakiś vps.
  2. Nie wiem czy jesteś studentem itp. bo jak jesteś studentem 1 roku np. no to wiadomo, trzeba od czegoś zacząć. Ale jak jesteś po studiach / chcesz zacząć zarabiać to...
    Przygotuj się na brak odzewu.

Nie wiem dlaczego chcesz szukać pracy skoro jesteś moim zdaniem na jakimś 20% drogi do zdobycia pracy, ale próbować w sumie warto.

Co Twoim zdaniem warto by było dodać na zwiększenie tych 20% oprócz wspomnianego już README.md i dokumentacji?

0

@B.Eng: NIe ma requirements.txt , albo pipenv(wszyscy się teraz nahajpowali na to). Jak robisz takie projekty korzystaj z np. virtualenv dla ułatwienia. Nie powinno być bazy w repozytorium. W settingsach powinien debug być wyłączony. Powinieneś to wrzucić do dockera, bo w takim środowisku będziesz pracować, no i nie widzę testów.

2

Być może powtórzę coś po poprzednikach, no ale lecimy:

  1. 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.
  2. To samo z .pyc-ami i __pycache__ - powinno być w .gitignore.
  3. Minus za printy w kodzie.
  4. 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.
  5. tests.py puste.
  6. 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).
  7. SECRET_KEY w repo - pobierz go ze zmiennej środowiskowej lub ustaw tylko, gdy debug jest włączony.
  8. debug powinien być domyślnie wyłączony.
  9. Nazwy paczek w pythonie powinny być pisane snake_casem, a u ciebie jest raz snake_case, a raz camelCase.
  10. Używaj class based views. Przy okazji polecam https://ccbv.co.uk/.
  11. 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.
  12. Używaj dziedziczenia szablonów.
  13. W szablonach wszystkie tagi load umieszczaj na początku pliku.
  14. 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.
B.Eng napisał(a):
  1. 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.

B.Eng napisał(a):
  1. 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.

B.Eng napisał(a):

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.

0
iksde napisał(a):
  1. debug powinien być domyślnie wyłączony.

Właśnie jak to jest z tym debugiem? bo z jednej strony powinien być wyłączony, a z drugiej osoba sprawdzająca repo powinna mieć możliwość jak najszybciej
je uruchomić - a zmiana debuga na True, żeby static pliki były obsługiwane dokłada tutaj jeden krok.

0
B.Eng napisał(a):
iksde napisał(a):
  1. debug powinien być domyślnie wyłączony.

Właśnie jak to jest z tym debugiem? bo z jednej strony powinien być wyłączony, a z drugiej osoba sprawdzająca repo powinna mieć możliwość jak najszybciej
je uruchomić - a zmiana debuga na True, żeby static pliki były obsługiwane dokłada tutaj jeden krok.

Jak dla mnie nie ma problemu, żeby serwer developerski serwował pliki statyczne niezależnie od DEBUGa - i tak przy odpowiedniej konfiguracji jakiegoś reverse proxy request ze ścieżką do pliku statycznego nawet nie dojdzie do apki. Możesz też dodać do repo plik dev_settings.py, demo_settings.py czy coś podobnego, gdzie wszystko będzie ustawione tak, by można było odpalić apkę jedną komendą. Możesz też rozważyć dockera, wtedy problemu w ogóle nie będzie, bo jednym poleceniem będzie można odpalić cały stack :P

1 użytkowników online, w tym zalogowanych: 0, gości: 1