Komentowana treść: Projekt OpenAmiga Icon Editor zakończony
[#31] Re: Projekt OpenAmiga Icon Editor zakończony
Gratulacje!!!

Obejrzałem źródła i tu nie jest już tak różowo. Według mnie bardzo ciężko będzie Ci rozwijać/konserwować kod w takim stanie w jakim jest. Jeśli chcesz to mogę rozwinąć czy to w komentarzu, bądź wątku, czy też na priva.

Pozdrawiam
[#32] Re: Projekt OpenAmiga Icon Editor zakończony

@asman, post #31

Według mnie bardzo ciężko będzie Ci rozwijać/konserwować kod w takim stanie w jakim jest.


Jest w porządku, program był kilkukrotnie przepisywany na czysto, obecnie jestem kontent z postaci kodu. Program po ostrych testach nie wykazał problemów ze stabilnością. Chętnie rozwinę temat na priva!
[#33] Re: Projekt OpenAmiga Icon Editor zakończony

@Minniat, post #32

jak ci zabraknie pamięci to brak sprawdzania zwrotu po pewnym mallocu wywali program :)

[#34] Re: Projekt OpenAmiga Icon Editor zakończony

@rzookol, post #33

Ten malloc nie alokuje zbyt wiele pamięci więc powinno wystarczyć... :D
[#35] Re: Projekt OpenAmiga Icon Editor zakończony

@rzookol, post #33

jak ci zabraknie pamięci to brak sprawdzania zwrotu po pewnym mallocu wywali program


A dwukrotne wywolanie metody CProject :: FreeIcon() wywali program (albo system)...

Ostatnia edycja: 13.04.11 11:48:25
[#36] Re: Projekt OpenAmiga Icon Editor zakończony

@Minniat, post #34

Ten malloc nie alokuje zbyt wiele pamięci więc powinno wystarczyć...


Tego teraz ucza studentow informatyki?
[#37] Re: Projekt OpenAmiga Icon Editor zakończony

@szuler, post #36

Nie, na podstawach programowania uczą rzetelności i sprawdzania czy malloc() zwrócił wskaźnik a nie NULL. Jednakże w tym przypadku alokowane jest ze 2kB pamięci i szybko zwracane, więc nie przywiązałem aż takiej wagi. W reszty przypadków sprawdzany jest adres zwrotny.
[#38] Re: Projekt OpenAmiga Icon Editor zakończony

@Minniat, post #37

Nie, na podstawach programowania uczą rzetelności i sprawdzania czy malloc() zwrócił wskaźnik a nie NULL. Jednakże w tym przypadku alokowane jest ze 2kB pamięci i szybko zwracane, więc nie przywiązałem aż takiej wagi.


i to jest wlasnie ow brak rzetelnosci...
[#39] Re: Projekt OpenAmiga Icon Editor zakończony
projekt ukonczony i za to naleza sie gratulacje. moim jednak zdaniem, edytory ikon nie maja przyszlosci w systemach, nie obraz sie :). moze jakies narzedzie do zarzadzania skupiskiem ikon, bardziej, ulatwiajace szybka zmiane ikon, to tu i tam...
[#40] Re: Projekt OpenAmiga Icon Editor zakończony

@1989, post #39

edytory ikon nie maja przyszlosci w systemach

Bez sensu gadanie. Skoro ludzie widzieli sens w zrzuceniu się na taki projekt, to znaczy, że takie były oczekiwania. I po co się tu rozwodzić nad przyszłością lub jej brakiem?
[#41] Re: Projekt OpenAmiga Icon Editor zakończony

@szuler, post #38

Oki, poprawię to niedociągnięcie w nowej wersji.

@1989
Nie ma sprawy, edytor ikon jak to edytor ikon, prosty program do konwersji grafiki z opcją malowania w świetle dłuugiej tradycji Amigi. Zawsze lubiłem te programy, dlatego z chęcią podjąłem się tego zadania.
[#42] Re: Projekt OpenAmiga Icon Editor zakończony

@G. Kraszewski, post #40

to nie mozna miec juz wlasnego zdania, drogi Panie :)
[#43] Re: Projekt OpenAmiga Icon Editor zakończony

@Minniat, post #41

ma zapis do dwustanowych ikonek png ?
[#44] Re: Projekt OpenAmiga Icon Editor zakończony

@rzookol, post #43

Nie, zapisuje do natywnych 32-bitowych ikon OS4. Prawdę mówiąc taka opcja jak zapis do obrazków PNG czy innego formatu by się jednak przydała.
[#45] Re: Projekt OpenAmiga Icon Editor zakończony

@Minniat, post #32

program był kilkukrotnie przepisywany na czysto

Znaczy że masz problemy z planowaniem i projektowaniem, bo w innym przypadku to tylko strata czasu.
[#46] Re: Projekt OpenAmiga Icon Editor zakończony

@Minniat, post #29

Moge Ci powiedziec ze na 90% to nie. Mozesz uruchomic sobie Sketch'a na MorphOS'ie i mimo iz inaczej podszedlem do tematu (oczywiscie wiem ze twoj program to program do ikon) to dalej wiem ze nie spelnia on 100% oczekiwan.
Jak widzisz tez po komentarzach to nie jest takie ot przepisanie. To ze jakies wielokaty zrobiles w godzine niewiele mowi.
Powstanie Sketcha to jakies 5-6 lat robienia po pracy.

Jezeli Pan Troels uwaza ze jest ok to dla mnie tez jest ok.
[#47] Re: Projekt OpenAmiga Icon Editor zakończony

@rzookol, post #33

Nie wywali - AmigaOS4 sam pobiegnie do najbliższego sklepu/szrotu/amifirmy po dodatkowy ram i doda go bez restartowania maszyny.
[#48] Re: Projekt OpenAmiga Icon Editor zakończony

@tszczurek, post #45

Znaczy że masz problemy z planowaniem i projektowaniem, bo w innym przypadku to tylko strata czasu.


Być może mam niewielkie problemy z projektowaniem, ale nie oceniałbym przepisania na czysto jako straty czasu z racji tego, że program sporo zyskuje na takim przepisaniu, jest to też dobre ćwiczenie. Ostatnia modernizacja dotyczyła przepisania z czystego C do C++ z wykorzystaniem klas i zmiany koncepcji interfejsu użytkownika oraz przepisania procedur rysujących. Każda wersja daje dużo doświadczeń. Staram się polepszać swój warsztat i projektowanie idzie mi z czasem coraz lepiej.
[#49] Re: Projekt OpenAmiga Icon Editor zakończony

@Minniat, post #48

Ostatnia modernizacja dotyczyła przepisania z czystego C do C++ z wykorzystaniem klas


Ten kod ma z C++ jeszcze dosc malo wspolnego.
[#50] Re: Projekt OpenAmiga Icon Editor zakończony

@Minniat, post #41

Ogólnie nie chciałem o tym pisać, żeby nie studzić Twojego zapału itd. ale skoro temat już się pojawił to pozwolę sobie na kilka uwag.
Właściwym i naturalnym sposobem sygnalizowania błędów w C++ są wyjątki, a nie kody zwracane przez return. Pamięć powinna być alokowana przez new i łapany ewentualny wyjątek. Takie podejście zaoszczędzi Ci pisania ifów a co za tym idzie uprości kod. Dodatkowo zastosowanie smart pointerów wyeliminuje ręczne zwalnianie pamięci i innych zasobów. Tak jak napisał Szuler to nie jest do końca programowanie w C++ ponieważ w C++ nie chodzi o to żeby do klasy przenieść zmienne globalne i funkcje, tylko o to aby klasy odwzorowywały modelowaną rzeczywistość, aby wydzielić abstrakcję i oprogramować ją raz a następnie uwzględnić tylko różnice - przykładem mogłaby być hierarchia klas opisujących ikony. Programowanie obiektowe ułatwia również rozdzielenie kodu pod względem funkcjonalnym. Proponuję abyś zapoznał się z wzorcem projektowym MVC.
Żeby nie było, że tylko krytykuję to oczywiście gratuluję Ci ukończenia pracy!
Co do sugestii jeśli chodzi o dalszy rozwój programu to spójrz na to http://likethought.com/opacity/ bardzo przyjemny program sam go używam do rysowania ikon.

Ostatnia edycja: 13.04.11 13:12:28
[#51] Re: Projekt OpenAmiga Icon Editor zakończony

@szuler, post #49

Ten kod ma z C++ jeszcze dosc malo wspolnego.


Zgodzę się z tym, że jest to zaledwie C z wykorzystaniem klas. Nie wykorzystuję innych ciekawych możliwości C++, których ten język ma całkiem sporo (np. polimorfia, przeciążanie). Ale uczę się obecnie tych rzeczy z dosyć trudnej książki Bjarne Stroustrupa.
[#52] Re: Projekt OpenAmiga Icon Editor zakończony

@smith, post #50

Dzięki za porady. Programowanie obiektowe jest na tym semestrze studiów, do wyjątków jeszcze nie doszliśmy, wykład jest zakończony na polimorfii i przeciążaniu operatorów. Modelowanie obiektowe już było i to całkiem sporo na ten temat, mam nadzieję, że sporo dobrych lekcji z tego wyniosłem.
[#53] Re: Projekt OpenAmiga Icon Editor zakończony

@Minniat, post #51

To może to będzie łatwiej przyswajalne http://www.intercon.pl/~sektor/cbx/
[#54] Re: Projekt OpenAmiga Icon Editor zakończony

@Minniat, post #48

Ostatnia modernizacja dotyczyła przepisania z czystego C do C++


nie latwiej bylo zostawic w C i dalej rozwijac program ?
[#55] Re: Projekt OpenAmiga Icon Editor zakończony

@1989, post #54

a nie lepiej przestać się bezproduktywnie czepiać i napisac coś swojego ?
[#56] Re: Projekt OpenAmiga Icon Editor zakończony

@rzookol, post #55

chyba mozna zadac pytanie :)
[#57] Re: Projekt OpenAmiga Icon Editor zakończony

@1989, post #56

można też nie uciekać od odpowiedzi
[#58] Re: Projekt OpenAmiga Icon Editor zakończony

@rzookol, post #57

nie czepiam sie, jak juz, chyba warto poznac powod takiej decyzji, nawet w kontekscie ew. pisania swojego.
[#59] Re: Projekt OpenAmiga Icon Editor zakończony

@1989, post #58

To odpowiem z własnego doświadczenia,
Dobrze mieć względnie prosty program do zrobienia, na którym można testować różne techniki i podejścia programistyczne. Czegoś sie uczymy w pewnej chwili to to implementujemy no i przepisanie takiej ilosci kodu z C na cpp to żaden problem nawet jeśli dochodzi faza reprojektowania.
[#60] Re: Projekt OpenAmiga Icon Editor zakończony

@asman, post #31

@asman

Dzięki za trafne sugestie przesłane na priv. Obecnie troszkę katalizuję kod dzieląc go na więcej mniejszych plików i procedury skracam (szczególnie z GUI.cpp).

Dzięki również za sugestie co do CProject :: FreeIcon() - procedura w rzeczy samej nie inicjuje na powrót składników na NULL, dlatego jej powtórne wywołanie może spowodować krach programu. Takie niedopatrzenia są bardzo błędogenne mimo że program jest bardzo stabilny. Ale tak jak możecie przeczytać stale się uczę.

Obecnie korzystam też z więcej ficzerów C++ tj. przeciążania konstruktorów, listy inicjalizatorów konstruktorów oraz dziedziczenia przy czym nie używam ich "na siłę" tylko staram się tak projektować program by tworzył spójną i logiczną całość.

Programowanie zorientowane obiektowo jest bardzo ciekawe, jako ciekawostkę podam, że moje pierwsze spotkanie z OOP miało miejsce przy pracy w języku skryptowym gier tekstowych AdvSys. Np. można było stworzyć obiekt/klasę miecz a następnie np. stalowy i drewniany miecz (korzystało się z dziedziczenia/polimorfii) itp. Bardzo to pouczające i już wtedy nauczyłem się "myśleć" obiektowo.

@1989

Tak jak pisze Rzookol, przepisanie do C++ pozwalało mi przetestować pewne techniki programistyczne, dało też sposobność wykorzystania nowych możliwośći tego języka w stosunku do zwykłego C.

Ostatnia edycja: 14.04.11 21:40:11
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem