Czy warto dzielić kod na wiele plików?

Czy warto dzielić kod na wiele plików?
eimearmusic
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Cześć!
Od jakiegoś czasu piszę grę w pythonie z wykorzystaniem biblioteki pygame.
Z racji tego, że jest to gra click & point, oparłem się na scenach.
Każda scena to jedna pętla while w której znajduje się element gry np. tekst, zadanie, egzamin, gra zręcznościowa itd.
Wyjście z funkcji/sceny (pętli) jest na dwa sposoby:

  • Po kliknięciu myszką w wybrane pole np. 'Dalej', gra przechodzi do kolejnej funkcji (pętli)
  • Po kliknięciu myszkę w pole 'Cofnij', gra wychodzi z pętli (jest break) i wraca do poprzedniej funkcji
    Przykład:
Kopiuj
def start():
   if click dalej_img:
     scena1()
  if click cofnij_img:
     break
def scena1():
   if click dalej_img:
     scena2()
  if click cofnij_img:
     break # <--- i wracam do sceny start()

No i tu pytanie. Mam w takim 1 pliku, bardzo dużo takich funkcji ze scenami a gra zajmuje mi już ponad 8000 wierszy kodu, bo wchodzą do tego zmienne (ponad 500) przechowujące grafiki (małe, duże, jpg, png) oraz dźwięki.
Czy w jakiś sposób wpływa to na ilość procesów wykonywanych rzez procesor? (1 wielki plik)
Czy warto jest dzielić kod na wiele modułów, czy nie ma to żadnego wpływu?

TS
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 394
4

Tak, warto. Nie ze względu na wydajność, jak wybrałeś Pythona to i tak wydajność nie będzie rewelacyjna. Po prostu łatwiej się w tym połapać. Mam taką regułę, że 500 linijek kodu to jest absolutny max. Powyżej tego już powinno się to posiekać na kawałki. Jeśli na przykład masz w tym projekcie jakichś przeciwników to kod z nimi związany wsadź do jednego modułu. Jako moduł mam na myśli to, co Python rozumie jako moduł. Jeśli to sensownie się zmieści w jednym pliku to niech tak będzie, jeśli nie to zrób katalog i tam dziel dalej (np. AI przeciwników, rysowanie przeciwników itd.).

Wydajnościowo w przypadku Pythona to będzie gorzej, ale tak jak mówiłem, jeśli w tym piszesz to i tak wydajność nie powinna mieć znaczenia, bo to nie jest priorytetem tego języka.

PK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 245
2

W Pythonie powinieneś napisać kod realizujący mechanikę. Natomiast scenariusz gry odseparuj do zewnętrznego pliku (np. json), zapisz w nim tylko dane.

Dane są lepsze niż kod, bo łatwiej jest je zrozumieć i edytować.

eimearmusic
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Dobrze ale jednak nie zrozumieliśmy się.
Moje pytanie dotyczy wpływu na wydajność programu
To, że powinno się albo jest czytelne, mnie zbytnio nie interesuje :)

*Dzięki!

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.