Prośba o ocenę kodu

0

Witajcie
Zwracam się do bardziej doświadczonych programistów o merytoryczną ocenę kodu.
Pozdrawiam

5
  • Załóż sobie konto na GitHubie lub BitBuckecie
  • Zostawiaj pustą linię między funkcjami, bo inaczej tekst się zlewa i tego czytać się nie da
  • =true jest nadmiarowe z tego co pamietam pascala
  • zmienna=false jest nieczytelne, lepiej pisać not zmienna
  • Spr_Wyg - nie skracaj nazw funkcji. Kiedyś litery były drogie, dziś są tanie
  • Długie funkcje nie mieszczące się na ekranie
if abs(wezly[schow[l_rows]]) = 9 then
              begin
                   pocz := pocz^.galez9;
                   z_pola := z_pola - 1
              end;
            if abs(wezly[schow[l_rows]]) = 8 then
              begin
                   pocz := pocz^.galez8;
                   z_pola := z_pola - 1
              end;

to się prosi o przeróbkę na case

3

Zamieszczałeś to samo wielokrotnie, w tym pod tytułem "portfolio", bardziej szczęśliwy z tym jesteś?
Grzebiesz w technologii przestarzałej o jakieś 20 lat nawet na Wybrzeżu Kości Słoniowej (w PL o 30). Zaprzestań oszukiwać sam siebie, i troszkę do przodu.

3

if (pocz^.plansza[rows,cols] = ' ') and (rows = 2) and (cols = 3) then

masz dużo takich powtórzeń (czemu sprawdzasz ileś warunków do każdego przypadku, zamiast zrobić jeden warunek, a dobrze?) oraz coś takiego:

nast^.galez4 := pocz;

nie wnikałem w to, co ten kod robi, ale tutaj aż krzyczy, że coś jest nie tak.
Czemu galez3, galez4 itp. ? Takie rzeczy się zwykle robi w tablicach albo w innych strukturach danych.

if abs(wezly[schow[l_rows]]) = 5 then
              begin
                   pocz := pocz^.galez5;
                   z_pola := z_pola - 1
              end;

tutaj też. Powtarza się ten kod. Czyli na dobrą sprawę kod mógłby być z 10 razy krótszy, gdybyś zrobił jakąś abstrakcję - nie chodzi o to, żeby porobić z 10 zmiennych nazwa1, nazwa2, nazwa3 itp. tylko, żeby raczej wymyślić sobie jedną albo więcej abstrakcji / struktur danych, które pozwolą ci pisać mało kodu, a zrobić to, co chcesz.

Czyli musisz zejść głębiej i patrzyć szerzej niż tylko indywidualny przypadek (a myśląc w "ifach" myślisz w kategorii indywidualnych przypadków. To trochę jak polskie prawo się robi. Gdzie masz tysiące durnych przepisów i jedynym sposobem na "naprawę" Polski politycy upatrują w dowaleniu setki kolejnych durnych przepisów. Gdzie każdy przepis to jak "if". nie idź tą drogą. Lepiej w programowaniu naśladować nauki ścisłe takie jak matematyka czy fizyka (które rządzą się ogólnymi prawami i mniej lub bardziej uniwersalnymi modelami) niż polityków, którzy muszą każdy przypadek osobno uchwalić, co jest podobne właśnie do pisania czegoś w formie if za ifem, tak jak w tym pliku SILNIK.PAS).

2

"i troszkę do przodu" - Według ciebie jaki powinien być mój następny krok ? Czego powinienem zacząć się uczyć ? - Adept123 6 minut temu

Jakiś aktualny język to po pierwsze. Koledzy np @LukeJL wytykają np nieoptymalne użycie nawet starego języka - wiedza ze świata, dobra książka, a nie getto własnych myśli. Moze nawet to drugie, to jest pierwsze. Czytanie projektów Open Source (ale nie wklejki na githubie od słabych studentów). DOBRE kursy (wiele jest złych, np do C/C++.

Jaki język?

  • Mam na sumieniu przechrzczenie programisty Delphi na C# i WinForms. Nie pisze jeszcze w dobrym idiomatycznym stylu, ale się rozwija.
  • Python
  • gdybyś widział w perspektywie Javę, zaczął bym na rozgrzewkę od Groovy

Jak przemyślę, to dopiszę to i owo.
Popularne stronki się pisze w PHP, ale tam jest zamieszanie, do czego się odnieść. Są mistrze, i jest dużo słabiutkich piszących słaby kod na fuchę.

1
AnyKtokolwiek napisał(a):
  • gdybyś widział w perspektywie Javę, zaczął bym na rozgrzewkę od Groovy

Ale czemu chcesz robić taką krzywdę komuś kto ogarną statyczne typowanie? Groovy to połączenie najgorszych wad Pythona z Javą + Legenda SmallTalka. Trudno o coś gorszego

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