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

Code Review zarządzanie sprzedażą

VPS Starter Arubacloud
0 głosów
275 wizyt
pytanie zadane 10 lipca 2022 w C i C++ przez tymek112 Obywatel (1,530 p.)
Hej. Napisałem aplikacje do zarządzania sprzedażą na serwisach typu Vinted. Chciałbym wiedzieć co zrobiłem dobrze a co do poprawy. Dzięki za pomoc.

https://github.com/Tymson122/Vinted

1 odpowiedź

+2 głosów
odpowiedź 10 lipca 2022 przez Apled Dyskutant (9,520 p.)

Kilka porad:

- nie używa się using namespace std; - powszechnie uchodzi to za złą praktykę, a jeżeli już, to namespace'ów używa się tylko w plikach .cpp, ty używasz zarówno w .h i .cpp (duplikujesz)

- podobnie z include'ami, includujesz <iostream> w pliku .h, a potem ponownie w .cpp - w efekcie masz zainclude'owaną podwójną zawartość biblioteki iostream, w dodatku potem jeszcze raz include'ujesz to w main, doczytaj o tym jak działa include i jak poprawnie to robić,

- zacznij przerzucać się na pisanie kodu po angielsku - tak już jest i tak będzie,

- po co chcesz tak uparcie zaciągać tekst z pliku .txt? Skoro używasz tego jako funkcji do wypisywania tekstu, to czemu tego tekstu nie wypiszesz cout'em?

- staraj się raczej zapisywać kod jako jedna instrukcja - jedna linia, zamiast:

cout << "Twoj wybor to: "; cin >> liczba_programu; 

- jeżeli nie ma takiej konieczności, to zamiast endl możesz użyć '\n'. endl to w rzeczywistości właśnie '\n', ale w dodatku wywołuje os.flush()

- dobrze jest inicjalizować wszystkie zmienne, np. w klasie masz ich ponad 30 i żadna nie jest inicjalizowana. Inicjalizację możesz robić w konstruktorze.

- masz zmienną string nazwaną "null". Absolutnie tak nie rób, bo potem w kodzie nie wiadomo o co z tym chodzi, jak tutaj:

case 1: null = linia; break;

 

3
komentarz 10 lipca 2022 przez Great Stary wyjadacz (12,300 p.)

Dodałbym jeszcze to:

  • niepotrzebnie skomplikowane wczytanie z pliku 
  • zbędna rekurencja
  • atoi -> stoi
  • projekt klasy, która robi wszystko
  • nazywanie zmiennych w niejasny sposób (patrz z, w, sp)
  • std::exit
  • komentowanie oczywistych linii kodu, lub tego co powinno być znane z nazw zmiennych czy funkcji - "konwersja int na string", "tworzenie pliku w folderze".
2
komentarz 10 lipca 2022 przez Oscar Nałogowiec (29,290 p.)
edycja 10 lipca 2022 przez Oscar

Ja dodam uwagi dotyczące także gita -

wrzuciłeś tam pusty pliki przychod.txt - akurat takiej sytucji twój program nie obsługuje. Nie obsługuje też braku tego pliku. Chyba prościej założyć, że pliku początkowo nie ma a (co odpowiada zeru) a potem jest tworzony (może być jak jest). No i po co dawać to do gita - jeden użytkownik sobie popracuje z programem i git mu pokaże że plik się zmienił. Co ma w takiej sytuacji zrobić?

 

Nie masz nigdzie tworzenia katalogu produkty (i nie ma go w git) - bez tego program w ogóle nie zadziała.

 

I jeszcze coś: jak wrzucasz wieloplikową aplikację dobrze jest dodać jakiś makefile, skrypt do linkowania lub ostatecznie projekt z używanego IDE, o ile trzyma względne ścieżki do plików. Oczywiście z 2 plikami każdy sobie poradzi, ale na przyszłość...

 

Swoją drogą które pliki wrzucać publicznie, a które są "roboczymi plikami" to długa dyskusja...

Podobne pytania

0 głosów
1 odpowiedź 95 wizyt
pytanie zadane 13 stycznia w SQL, bazy danych przez whiteman808 Obywatel (1,780 p.)
+3 głosów
0 odpowiedzi 236 wizyt
pytanie zadane 9 września 2022 w C# przez Artur Koniec Gaduła (3,670 p.)
+1 głos
1 odpowiedź 229 wizyt
pytanie zadane 19 sierpnia 2022 w HTML i CSS przez Hoorder Początkujący (470 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 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.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...