• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Mikroblog w Django, proszę o code review

VPS Starter Arubacloud
0 głosów
204 wizyt
pytanie zadane 4 czerwca 2020 w Python przez szafran98 Początkujący (460 p.)

Hej, od jakiegoś czasu uczę się Django i postanowiłem, że napiszę aplikację do mikroblogowania. Mam już w miarę działającą wersję, ale jest to w zasadzie mój pierwszy projekt w Django, nie licząc przepisywania czegoś z tutoriala, więc bardzo serdecznie prosiłbym, żeby ktoś zaznajomiony z tematem rzucił okiem, czy jest to jakoś akceptowalnie zrobione, a nie przykładowo łamię wzorzec projektowy. Każdą uwagę przyjmę oczywiście z otwartymi rękoma, jeżeli jest potrzebna wersja live to mogę postawić i wrzucić link. Kod: https://github.com/szafran98/mikroblog_django

1 odpowiedź

+1 głos
odpowiedź 4 czerwca 2020 przez adrian17 Ekspert (349,420 p.)
wybrane 4 czerwca 2020 przez szafran98
 
Najlepsza

Kilka losowych wybiórczych spostrzeżeń:

- masz trochę duplikacji roboty związanej z modelami. Na przykład:

Post.update_post_content(id, new_content_post)

Ale wyżej masz już zmienną edited_post, to czemu nie po prostu nie zmodyfikować tego obiektu?

Podobnie:

user_comments_count = Comment.get_user_comment_count(username)

W środku robisz filtrowanie z joinem, żeby przefiltrować po username. Ale znowu, po co, skoro masz już pod ręką obiekt z tym userem?

Mam wrażenie że jest tego więcej, ale nie będę więcej wymieniał.

Dalej:

def delete_post(request, id):
    post_to_delete = Post.objects.get(id=id)
    if request.method == 'DELETE':

Jest do tego dekorator `require_http_methods`.

        let timeToChange = element.innerHTML;
        let toNumber = parseInt(timeToChange);
        element.innerHTML = time2TimeAgo(toNumber);

Jeśli nie musisz koniecznie operować na surowym HTMLu, unikaj innerHTML. textContent powinien tutaj wystarczyć, nie?

style="margin: auto; max-width: 600px; margin-bottom: 30px;

Inline style są be ;)

Ogólna uwaga:

def edit_post(request, id):
    edited_post = Post.objects.get(id=id)
    post_form = AddPostForm(request.POST or None, instance=request.user)
    if request.POST:

Poczytaj o "klasowych" widokach w Django. Pozwalają uniknąć sporo boilerplate'u takiego jak powyższe klasyczne tworzenia Forma i `if request.POST`.

komentarz 4 czerwca 2020 przez szafran98 Początkujący (460 p.)
Dzięki serdeczne, teraz sprawdzam i faktycznie celne uwagi, kłaniam się.

Podobne pytania

0 głosów
1 odpowiedź 553 wizyt
pytanie zadane 18 sierpnia 2020 w Python przez Nieprofesjonalny Użytkownik (890 p.)
0 głosów
1 odpowiedź 112 wizyt
0 głosów
1 odpowiedź 552 wizyt
pytanie zadane 21 lipca 2022 w JavaScript przez mj23 Nowicjusz (150 p.)

93,008 zapytań

141,975 odpowiedzi

321,256 komentarzy

62,350 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...