[#1] Pytanie natury formalnej... Jak konstruowac projekt?
Mam pytanie takie nietypowe. Gdy robie projekt to w jaki sposob konstruowac pliki ze zrodlami i naglowkami? Na razie mam tak ze mam pliki np load.c, gfx.c, music.c, font.c itd... load odpowiada za ladowanie i zwalnianie zasobow, w gfx sa funkce odpowiedzalne za grafike, itd... mam tez jeden plik naglowkowy "funkce.h" a w nim wrzucone wszystko do jednego wora.

1) czy lepiej jest jesli kazdy plik *.c ma odpowiednik *.h z odpowiednimi dla nigo funkcjami?

2) czy wygodniej bedzie zamiast np. game.c rozbic to na intro.c, menu.c, walka.c, wybor_zawodnika.c i poprzerzucac tam np funkce ladujace np plansze z wyborem postaci i inne ktore tycza sie tylko danej czesci gry?

[#2] Re: Pytanie natury formalnej... Jak konstruowac projekt?

@Lorak, post #1

Co do pierwszego, to ja wolę mieć plik .h do każdego .c z tym, że wtedy zależności między plikami nagłówkowymi stają się bardziej skomplikowane.

Co do drugiego to nie ma uniwersalnej formuły. Wiadomo, że na pewno nie wszystko w jednym pliku, ale przesadzać i robić pliki do każdej funkcji też nie ma sensu. Najlepiej pogrupować funkcje według zastosowania.

[#3] Re: Pytanie natury formalnej... Jak konstruowac projekt?

@Grzegorz Kraszewski, post #2

A czy dobrze jest uzywac slowka 'extern' jesli np robie globalna plaszczyzne do ktorej wgram np plik tla? Czy najlepiej w ogole nie uzywac globalnych zmiennych

[#4] Re: Pytanie natury formalnej... Jak konstruowac projekt?

@Lorak, post #3

najlepiej to korzystać z C++, klas, namespeców, szablonów, singletonów (lub innych wzorców projektowych) i STL'a



Ostatnia modyfikacja: 17.06.2008 13:06:43
[#5] Re: Pytanie natury formalnej... Jak konstruowac projekt?

@Lorak, post #3

Osobiście jako zmienne globalne definiuję wyłącznie bazy amigowych bibliotek.

[#6] Re: Pytanie natury formalnej... Jak konstruowac projekt?

@Lorak, post #3

lepiej przewalic do arguemntów fukcji, rozbicie przyspiesza kompilacje, można używać static żeby ograniczać globalne zmienne tylko do jednego pliku

[#7] Re: Pytanie natury formalnej... Jak konstruowac projekt?

@Lorak, post #1

Lorak napisał(a):

> Na razie mam tak ze
> mam pliki np load.c, gfx.c, music.c, font.c itd... load
> odpowiada za ladowanie i zwalnianie zasobow, w gfx sa funkce
> odpowiedzalne za grafike, itd...


I dobrze robisz. Operuj plikami źródłowymi do woli, dobieraj je tematycznie i pamiętaj o dopisaniu zależności w pliku "make" uwzględniające też pliki nagłówkowe np.:

load.o : load.c funkcje.h
dcc load.c -c

> 1) czy lepiej jest jesli kazdy plik *.c ma odpowiednik *.h z
> odpowiednimi dla nigo funkcjami?


Nazwy dla plików nagłówkowych powinny (tak jak źródłówki) być podzielone tematycznie.

> 2) czy wygodniej bedzie zamiast np. game.c rozbic to na
> intro.c, menu.c, walka.c, wybor_zawodnika.c


Zgadzam się. Tak jak powiedziałem podział game.c tylko ułatwi rozbudowę programu, pamiętaj też np. że funkcja nie powinna zajmować więcej niż jeden ekran.

[#8] Re: Pytanie natury formalnej... Jak konstruowac projekt?

@Minniat, post #7

load.o : load.c funkcje.h

Lepiej nie mieszać w nazwach plików, funkcji, komentarzach, nazwach zmiennych języka polskiego z angielskim.

[#9] Re: Pytanie natury formalnej... Jak konstruowac projekt?

@Grzegorz Kraszewski, post #8

A ktorego lepiej sie trzymac? Bo czasem jak uzywam angielskiego to zapominam czy to ja napisalem te funkcje czy np to funkcja biblioteczna... Ale z kolei jak pisze po polsku to czuje sie jakos tak... nieprofesionalnie ;)

[#10] Re: Pytanie natury formalnej... Jak konstruowac projekt?

@Lorak, post #9

Zdecydowanie angielskiego. I to dotyczy wszystkich składników, nie tylko nazw źródeł, funkcji/metod, ale i zmiennych/stałych.
I warto sobie wypracować jakiś standard, swoisty "coding - style" - ogólny schemat nazewnictwa/duże-małe litery/etc, by źródła wyglądały w miarę czysto, i przejrzyście.

[#11] Re: Pytanie natury formalnej... Jak konstruowac projekt?

@Lorak, post #9

Bo czasem jak uzywam angielskiego to zapominam czy to ja napisalem te funkcje czy np to funkcja biblioteczna...

Używaj innego wzorca do swoich funkcji, np.

- AllocMem() - funkcja biblioteczna
- allocMem(), Alloc_Mem() - Twoja funkcja

[#12] Re: Pytanie natury formalnej... Jak konstruowac projekt?

@Lorak, post #9

Bo czasem jak uzywam angielskiego to zapominam czy to ja napisalem te funkcje czy np to funkcja biblioteczna

używaj krótkich prefixów (skrót biblioteki albo całego projektu) jeśli to są funkcje globalne np.:

lrk_InitGlobalGfx()
msx_LoadSample()
msx_PlaySample()
etc

a najlepiej jeśli używasz C++ to dla grupuj funkcje w namespace wtedy będziesz przy wywołaniu widział że to Twoja (no chyba że użyjesz using namespace) ... poza tym stosuj Klasy, kod stanie się dużo czytelniejszy

[#13] Re: Pytanie natury formalnej... Jak konstruowac projekt?

@Rafael/ARMO, post #12

/me tez sugeruje uzywanie prefixów

[#14] Re: Pytanie natury formalnej... Jak konstruowac projekt?

@Rafael/ARMO, post #12

No wlasnie takich prefixow uzywam, niestety SDL ma tez jakies swoje prefiksy przy np korzystaniu z dodatkow np miksera jest mix_Halt(); moja funkcja jest dajmy na to mus_Stop(); gdzie tez jest zawarty mix_Halt(); przez co wszystko sie miesza:D Troche to skomplikowane ale jakos sobie radze;) A pisze w zwyklym C.

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