Modernizować, czy pisać od nowa?

Odpowiedz Nowy wątek
2006-08-14 20:03
0

Piszę, bo sam juz nie wiem. Jakieś pół roku temu w firmie w której pracuję, przed audytem potrzebny, był na gwałt program do monitoringu produkcji. Na jego napisanie miałem mniej niż miesiąc. Później były drobne upgrady. Problem polega na tym, że z braku czasu napisałem go dosyć topornie. Brak uniwersalnych klas, silnika bazy danych i <ort>w ogóle</ort> lipa. Program działa ok, ale jego konserwacja to koszmar. Teraz mam czas na pisanie nazwijmy "v2.0", ponieważ pierwszy działa. I tu pytanie. Czy zmodernizować to co już mam, czy na podstawie pierwszego napisać następcę. Ja poszedłbym w myśl prawa Murphy'ego: "Jeżeli coś zostało źle zrobione od samego początku, wszelkie próby ort! tylko to pogorszą".

Jeżeli mozecie wypowiedzieć się w tej kwestii, to będę zobowiązany.


<span style="color: blue">"Kolarstwo to jedna z najtrudniejszych dyscyplin sportu. Nawet najgorszy kolarz jest wciąż wybitnym sportowcem."
s.p. Marco Pantani
</span>

Pozostało 580 znaków

2006-08-14 21:20
0

Chyba trudno cos powiedziec.
Nie znamy objetosci i zlozonosci tego programu. Totez nie mozemy okreslic stosunku czasu do efektu jaki daloby napisanie tego od nowa.

Ale jesli program ma sluzyc wiele lat to moze warto poswiecic kilka dni. Moze calkiem sporo kodu da sie przeniesc do nowej wersji. Ale to musisz ocenic Ty.

Pozostało 580 znaków

2006-08-14 21:46
0

ja już miałem taką sytuację, postanowiłem napisać program od nowa, i tak przy niektórych sprawach zniechęciła mnie myśl pisania jakiejś funkcji od nowa, w rezultacie przeniosłem ogromne płachty kodu i można powiedzieć że jeszcze bardziej pogorszyłem sprawę ;P


Dwie zasady gwarantujące sukces:
1. Nigdy nie mów nikomu wszystkiego<span style="color: white">

Pozostało 580 znaków

2006-08-14 22:10
0

Ja również mam poprzeklejane połacie kodu, co powoduje, że już się w nim gubię. Na sugestię Codera dokładniejszy opis zagadnienia i skali problemu (program ma około 9000 wierszy i rośnie):

Program słuzy do monitorowania produkcji. Dane wprowadzam do tabeli:
user image
Dzięki temu mam opisaną jedną zmianę. Szefa interesują głownie statystyki typu: ile dobrych, jakie błędy najczęściej, który operator najgorszy itp. I tu się pijawia powielanie fragmentów, bo wykresy tworzę wg:
1). Operator
2). Brygada
3). Miesiąc
4). Powierzchnia wystąpienia błedu
5). Maszyna

Różnią się tylko kwerendą. Graficzna reprezentacja jest taka sama, czyli:
user image
user image
user image

Na rapidshare zamieściłem jeden moduł liczący wg operatora: NameSheet


<span style="color: blue">"Kolarstwo to jedna z najtrudniejszych dyscyplin sportu. Nawet najgorszy kolarz jest wciąż wybitnym sportowcem."
s.p. Marco Pantani
</span>

Pozostało 580 znaków

2006-08-20 09:23
0

Ja bym sie zastanowil czy nie wykorzystac do tego PHP i MySQL bo imo to srodowisko stworzone do tego typu rzeczy :)


Pozostało 580 znaków

2006-08-20 21:07
0

Z własnego doświadczenia powiem Ci, że lepiej będzie gdy napiszesz program od nowa. Zrób mały plan co i jak ma działać i możesz nawet przekopiowac niektóre części starego programu byle pasowały do obranego schematu ( oczywiście tam gdzie to możliwe ). Moje próby poprawienia programu napisanego byle jak zwykle skutkowały wystąpieniem większego problemu - coś gdzieś zostało zmienione i nie współdziałało z resztą a żeby znaleźć to coś trzeba było się troszkę nagłowić. Mimo to wydaje mi się, że tworzenie oprogramowania to sprawa indywidualna, bo każdy ma swoje nawyki i przyzwyczajenia. Dlatego najlepiej żebyś sięgnął pamięcią wstecz i przypomniał sobie czy kiedykolwiek miałeś już taki problem.

Pozostało 580 znaków

2006-08-20 21:13
0

Miałem. I zastosowałem prawo Murphi'ego: "Jeżeli coś zostało źle zrobione od samego początku, wszelkie próby naprawienia tylko to pogorszą" Prace nad nowym programem zostały rozpoczęte. Do posta można się nie dopisywać. Odpowiem na swoje pytanie: Pisać od nowa. Dzięki za zainteresowanie. Pozdrawiam. Adam.


<span style="color: blue">"Kolarstwo to jedna z najtrudniejszych dyscyplin sportu. Nawet najgorszy kolarz jest wciąż wybitnym sportowcem."
s.p. Marco Pantani
</span>

Pozostało 580 znaków

2006-08-21 13:06
0

Ja bym sie zastanowil czy nie wykorzystac do tego PHP i MySQL bo imo to srodowisko stworzone do tego typu rzeczy :)

Oleksy_Adam napisał(a)

" Program działa ok, ale jego konserwacja to koszmar. "

Jesli nie chcesz mieć w przyszłości podobnych problemów raczej nie pisz tego w php, jesli zacząłeś to masz czas by to zmienić.
To oczywiście moja subiektywna mało popularna opinia.

pzdro

Pozostało 580 znaków

2006-08-21 15:36
0

Póki co to piszę bazę na własnym formacie, jestem na etapie nauki MySql i dbExpress. Wersja v3.0 będzie już w dbE.


<span style="color: blue">"Kolarstwo to jedna z najtrudniejszych dyscyplin sportu. Nawet najgorszy kolarz jest wciąż wybitnym sportowcem."
s.p. Marco Pantani
</span>

Pozostało 580 znaków

2006-09-30 22:32
0

Co do rozwijania programu to mialem taka sytuacje ostatnio ze dostalem aplikacje, ktora powstawala iles tam tygodni, miala pewne bugi, zero dokumentacji czy komentarzy w kodzie, zadnego planu, dziwne biblioteki i kod na kilka tysiecy lini... dwa tygodnie implementowalem rozszezona funkcjonalnosc, gdzie meczylem sie przy tym niemilosiernie... oczywiscie okazalo sie ze dalej sa jakies bug'i i przez tydzien ich szukalem z mizernym rezultatem (aplikacja walila sie w losowych momentach)... sie zdenerwowalem i udalo mi sie napisac wszystko od nowa w dwa tygodnie w C#, gdzie wszystko jest jasne i przejrzyste, udokumentowane i ze schemacikami i co najwazniejsze, dziala. Wiec przystaje raczej do tego, ze czasami szybciej cos napisze sie od nowa niz modyfikuje stare i nie do konca dobre rozwiazania...


Senior Software Designer .NET

Pozostało 580 znaków

2006-10-01 00:27
0

Panie Adamie
Ja się z Waszego grona wybiję i napiszę, że zdecydowanie lepiej jest poprawić swój kod (w znaczeniu np. zoptymalizować go) niż napisać od początku. W pierwszym swoim poście napisał pan, że szef wymaga teraz wersji 2.0 tego programu. Jeżeli rozpocznie pan prace ad novo to tak naprawdę nie będzie to wersja 2.0 ale wersja 1.0 całkiem nowego programu z nowymi błędami.

Ja mam taką naturę i taką już rozwiniętą intuicję, że optymalizuję kod w trakcie pisania algorytmu zanim zostanie on jeszcze ukończony.

Proszę zauważyć, że jeżeli będzie pan kopiować kod z jednego pliku do drugiego to skopiują się także błędy, a skoro program będzie działał błędy zostaną niezauważone. I problem się powtórzy. Jeżeli natomiast prześledzi pan swój program linijka po linijce to nie tylko usprawni pan silnik, złożoność algorytmów czy szybkość wykonywania (zauważy pan z pewnością: ?o? ta pętla jest tu przecież niepotrzebna? albo ?niepotrzebnie napisałem funkcję która sprawdza ten warunek. Przecież ten warunek jest już wykluczony przez poprzednią funkcję.?) ale znajdzie pan wiele błędów, a co najważniejsze nie przepisze pan programu z, nazwijmy to, usterkami. Jedyne co pan będzie robił to znajdywał i likwidował błędy, poprawiając przy tym jakość działania samego programu.

A na koniec proszę zauważyć jedną ważną rzecz. Gdy zacznie pan poprawiać swój program to nie tylko napisze pan jego lepszą wersje ale też sam rozmiar się skróci. Jeżeli zacząłby pan kopiować kod z jednego pliku do drugiego i jeszcze mając nadzieję na ulepszenie programu, to nie tylko wprowadzi pan jeszcze więcej błędów ale kod stanie się jeszcze dłuższy, a jak wcześniej pan napisał kod już i tak ma bagatela ponad 9000 linii. Czy to ma sens? Panie Adamie? zrobi pan jak zechce ale proszę się zastanowić.

Zawsze powtarzam czy to studentom czy też każdemu kto o to zapyta, że analizowanie swojego kodu i poprawianie go uczy wspaniałej sztuki jaką jest umiejętność optymalizowania kodu. A tego się niestety nie da nauczyć ciągle pisząc programy od nowa.


Pozdrawiam serdecznie

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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