Code Review apki pogodowej

Code Review apki pogodowej
Adrian 1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 26
0

Cześc, mógłby ktoś z doświadczonych programistów przejrzeć moja aplikacje? Powiedzieć co dobrze, co źle i co by poprawić. Aplikacja zrobiona w ASP.Net Core z frontem w Angularze oraz używa OpenWeather API. Link: https://github.com/AdrianGajewski1/Weather-App

Escanor16
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 367
0

lepiej nazywaj commity, nie add tylko added bo piszesz w czasie przeszlym

SA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1452
0

Nie podoba mi się, że Service zamiast zwracać dane to zwraca coś z warstwy prezentacji, czyli gotowy Response.

No i SQL z jedną tabelką na powiadomienia to gorzej niż z armatą do wróbla.

Adrian 1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 26
0
Saalin napisał(a):

Nie podoba mi się, że Service zamiast zwracać dane to zwraca coś z warstwy prezentacji, czyli gotowy Response.

No i SQL z jedną tabelką na powiadomienia to gorzej niż z armatą do wróbla.

To co według Ciebie mógłbym użyć do zapisywania powiadomień ? Gdzieś w pliku Json ?

SA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1452
0

To co według Ciebie mógłbym użyć do zapisywania powiadomień ? Gdzieś w pliku Json ?

RAMu.

VA
  • Rejestracja: dni
  • Ostatnio: dni
0

Mnie ciekawi dlaczego NotificationsController zajmuje się tworzeniem powiadomień, dlaczego jest to nieskończona pętla i dlaczego jest tam thread.sleep.
To znaczy nie tyle ciekawi, że nie rozumiem idei tylko dlaczego np. to frontend nie odpyta serwera o dane. Piszesz o Signalu w komentarzu - ok. Ale póki co, to właśnie klient powinien odpalać tego typu zadanie.

Jaki jest sens wywoływania osobno metod GenerateUserID() i AddNotificationsAsync(). Ta pierwsza generuje guid, odpytuje bazę czy już takiego nie ma i jeśli jest to wali w pętli n zapytań. A potem znowu strzelasz do bazy insertem. Lepiej byłoby chyba to zrzucić w całości na bazę (włącznie z generowaniem identyfikatora) i od razu walnąć AddNotificationsAsync() - wtedy jeden strzał do bazy załatwia to co robiłeś minimalnie dwoma.

Zamiast takiej konstrukcji:

Kopiuj
               if (await _dbContext.SaveChangesAsync() > 0)
                return true;

            return false;

wystarczy return _dbContext.SaveChangesAsync() > 0

Jak już tak namiętnie zamierzasz gwałcić bazę zapytaniami o to czy już gdzieś został wykorzystany GUID (w polu userid) to wypadałoby wpiąć tam chociaż jakiś indeks, który zaoszczędzi serwerowi trochę zasobów w hipotetycznej sytuacji kiedy w tej bazie będą miliony wpisów a api co chwila będzie generować zapytanie wymagające wykonania pełnego skanu tabeli.

EF z tego co pamiętam pozwala użyć w modelu bezpośrednio Guida

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.