Aktywne Wpisy

vorky +53
Treść przeznaczona dla osób powyżej 18 roku życia...
labelle +9
Moi rodzice całe życie prowadzili gospodarstwo rolne i praktycznie nigdzie nie jeździli. Nigdy nie widzieli morza ani gór, nie byli też za granicą. Wcześniej nie mieli takiej możliwości, a później, gdy już mogłam ich gdzieś zabrać, opiekowali się leżącą babcią. Babcia zmarła dwa miesiące temu i myślałam, że wreszcie po tylu latach będą mogli choć na chwilę odetchnąć i gdzieś wyjechać.
Mama bardzo chce, natomiast problemem jest tata. Nigdy nigdzie nie był i
Mama bardzo chce, natomiast problemem jest tata. Nigdy nigdzie nie był i





Stworzyłem swój pierwszy "troszeczkę bardziej" rozbudowany programik obiektowy służący do walidacji danych nowego klienta banku. Generalnie nie chodzi o samą walidację, bo kilku mechanizmów brakuje, np. jak się poda hasło ze spacją, to akceptuje. Chodzi mi raczej o nakierowanie, czy sama struktura programu obiektowego jest poprawna. Co zmienić, dobre praktyki itp... jakiś wzorzec może byłoby lepiej tu zastosować, a może nie...
https://github.com/VanQator/bankAccount
Inne sprawy:
- w cpp jest raczej konwencja,
for (int i = 0; i < name.length(); i++){
if (name.length() == 0)
Ten kawałek kodu to oksymoron. Gdy name.length() == 0 to nigdy nie wejdziemy do pętli
pirmo - dla nowego moze to byc upierdliwe i zbyteczne, ale nie mieszac logiki z wyswietlaniem to kiedys zaprocentuje i sam sobie bedziesz chcial obciagnac za tak genialne rozwiazanie
drugie - uzywaj wiecej std, w wiekszosci przypadkow bo to jest piekne, zgrabne i wiekszosci przypadkow jak juz pisalem wydajne np. twoja walidaje tutaj https://github.com/VanQator/bankAccount/blob/master/validBalance.cpp#L10 mozna zastapic pieknym 1 linijkowcem:
bool isValid = find_if(str.begin(), str.end(), is_not_alnum_space) == str.end();po trzecie
Takie podejście umożliwia rozszerzalność aplikacji w postaci np. dodania GUI bez znacznych zmian w głównej logice.
Może to być np. klasa reprezentująca problemy w walidacji - w sensie może to być typ złożony, który przenosi jeszcze dodatkowe informacje, albo nawet prosty Enum jak ci się podoba.
możesz zrobić to na 2 sposoby:
1, tradycyjnie w C++, rzucasz w środku konstruktora wyjątek i łapiesz go:
ValidBalance@Saly: puściłem pawia
Osobny plik nagłówkowy i .cpp dla każdej z klas jest zdecydowanie lepszym rozwiązaniem.
A poza tym to co pisali poprzednicy - oddziel IO od logiki.
Ja zawsze byłem bojownikiem pisania '{' linijkę niżej, ale o ile to Twój mały projekt, to tylko i wyłącznie kwestia Twoich preferencji - tym niemniej
ValidBalance balance = readValidBalanceFromStdin();
...
try {
ValidBalance balance("sdfsdf");
Account account(balance ....