Przepisanie programu od nowa

0

Witam

Mam troszke dziwne pytanie dla was.

Bo mam dość duży program który pisałem może jakieś 2 lata temu. Był to mój jeden z pierwszych programów pisanych w delphi i cągle bym rozbudowywany w miare umiejętności. Same główne okienko ma ponad 2800 linijek kodu.

Chciałem się wad zapytać jak, od czego sie pierw zabrać i jak zacząć przepisywanie kody od początku. Wiadomo kiedyś się nie umiało na tyle programować i jak bym to dzisiaj zrobił na pewno było by to wszystko inaczej zrobione. I chciałbym program na nowo przepisać i zrobić całkiem nową wersje 2 programu a nie tam 1.6.2 itp. Jeśli był by to bardzo mały program ot by nie było problemu ale przeraża mnie duża ilość kodu i przez to nie wiem za co się najpierw wziąć i jakim sposobem to zrobić

0

To zależy od twojego programu - zobacz wzorce projektowe (może któreś wcielisz w życie) + refactoring kodu źródłowego. Rozbicie struktury programu na warstwę prezentacji, logiki i danych też nie będzie głupim pomysłem.

0

Przepisywanie wcale tak dużo nie zabiera. Jeżeli przepisujesz stabilną wersję czegoś. Masz gotowe pewne algorytmy i wiesz jak aplikacja ma się zachowywać. To samo tyczy się walidacji i innych. Ja w trzy dni napisałem 7000 wierszy kodu. Potem kilka dni testów i poszukiwania bugó. Jest szybko, bo wiedziałem, ze ten przycisk odpala to okno, które robi te operacje, które są podatne na te błędy...

0

Mam podobny problem. Zacząłem przepisywać program, który tworzę już dwa lata.
Przepisywanie zacząłem w grudniu i jestem przy 25% funkcji, które działają w porównaniu z pierwotną wersją.

Czego się przy tym nauczyłem?
Warto pisać program z głową od początku, tak by nie było konieczne jego pisanie od nowa!!!

Czasami jednak tak bywa, że aplikacja się rozrasta i dochodzą do niej różne moduły, więc po jakimś czasie z małego programiku powstaje duży koszmarek.
(Przykładowo katalog mojej aplikacji w projektach zajmuje 60mb z czego pliki *.pas ponad 4mb.
Ciekawe, czy dałoby się policzyć, ileż to linii kodu napisałem?)

Przy przepisywaniu programu, okazuje się, że wiele rzeczy można zrobić inaczej. Prościej.
Również wyskakują bugi, których wcześniej nie było widać. To, zajmuje chyba najwięcej czasu.
Ze zrozumieniem kodu nie mam problemu, bo staram się komentować procedury; czasami jednak pojawi się coś, że za chiny nie wiem, po co była użyta ta stała, albo co ten program ma robić w tym miejscu :)
Wtedy tracę niepotrzebnie czas, bo wyeliminowanie jakiejś zmiennej może być fatalne w skutkach przy dalszej części kodu - wtedy trzeba cofać się do początku kodu.

Oczywiście najważniejsze, postawić sobie jakieś zadania typu, co w danym dniu chcę zrobić by działało.
Czy zająć sie wyglądem aplikacji, czy jej funkcjami? Przykładowo można 3 dni spędzić na tworzeniu nowego wyglądu okienek, menu itd. aby stwierdzić, że w pierwszej aplikacji lepiej to wyglądało i wrócić z powrotem do oryginału. brr...

Podsumowując.

  1. Trzeba postanowić, czy program ma mieć taki sam wygląd.
  2. Opracować i rozpisać sobie jego funkcje. Które z nich można usunąć, a jakie nowe należy dopisać.
  3. Jeśli coś dobrze działało, trzymać się tego i nie tworzyć nie potrzebnie nowych algorytmów, które mogłyby działać lepiej.
  4. Na początek dobrze jest utworzyć formatki i komponenty, a potem dopisywać do nich procedury.
    np. ja sobie robie tak:
//---------------- menu main
procedure TForm1.mnuFiltersClick(Sender: TObject);
begin
// do zrobienia
end;


procedure TForm1.mnuStremInfoClick(Sender: TObject);
begin
// do zrobienia
end;

//---------------- menu popup1
itd.

Mam pogrupowane funkcje osobno dla menu, osobno dla przycisków itd.
Dzięki czemu łatwo mogę znaleźć daną procedurę. Tworzę coś w rodzaju ramy (jak w rowerze), a potem kształtuję całość dopisując kod dla danych elementów.

Przydatne jest używanie pakietu FastMM, a w szczególności opcja pełnego debugowania pamięci.
http://sourceforge.net/projects/fastmm/

lub
Memproof - http://automatedqa.com/downloads/memproof/index2.asp

W trakcie wykonywania programu, zaraz po jego zakończeniu mam raport czy nastąpiły wycieki pamięci "mem leaks". Kiedyś nie zwracałem na to uwagi, ale jak pewna aplikacja zaczęła mi się krzaczyć przy zamykaniu i w innych niespodziewanych miejscach jej działania, doceniłem tę metodę kontrolowania kodu.

No i najważniejsze, nie brać się za kodowanie po 3 piwach - można wtedy sporo namieszać, tak, że tydzień nie wystarczy na odkręcenie tego, co się namieszało.

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