Jak dzielić program?

0

Jak tak właściwie dzielimy program na pliki. Załóżmy że mamy program kółko krzyżyk. Mamy header w którym zawieramy typy,definicję funkcji, struktury, klasy itp. Mamy main.cpp gdzie wklejamy te funkcję i tworzymy pętlę główną. No a reszta, każda funkcja powinna mieć osobny plik, czy wszystkie małe razem a rozbudowane osobno. Jak to się dzieli ?

1

w plikach nagłówkowych umieszcza się deklaracje funkcji lub ciała klas zaś w normalnych plikach(.cpp) umieszcza się definicję funkcji lub metod.

1

Dobrze jest typy, struktury i klasy umieszczać w osobnych plikach, żeby nie tworzyć wielotysięcznych modułów, jednak nie ma jakiegoś jednolitego standardu, który można wykorzystać we wszystkich programach;

pakistan napisał(a)

No a reszta, każda funkcja powinna mieć osobny plik, czy wszystkie małe razem a rozbudowane osobno. Jak to się dzieli?

To wszystko zależy od projektanta - jeden wpakuje wszystko do jednego modułu i nie będzie mu to przeszkadzać, zaś drugi podzieli program na kilkadzięsiąt mniejszych; Osobiście wolę tworzyć małe moduły (ale to też zalezy co mam do podzielenia), góra tysiąc-dwa tysiace linii (jednak w praniu czasem często wychodzą dłuższe) i oddzielić od siebie deklaracje typów/struktur, deklaracje i definicje dodatkowych klas itd.;


Teraz projekt nad którym pracuję składa się z kilkunastu modułów, z czego mam dwa dodatkowe, nie przechowujące deklaracji formularzy; W jedym mam deklaracje stałych, typów i struktur, a w drugim deklaracje i definicje kilku klas, z których korzysta aplikacja (silnik programu + klasy z których korzysta); Dzięki temu wszystko ma swoje miejsce i nie miesza się z innymi elementami programu - jest porządek; Projekt piszę w Delphi i może trochę inaczej bym to podzielił, gdybym pisał np. w C++, jednak dla mnie ważna była by sama idea;

0

W pierwszej kolejności podział powinien się opierać o funkcjonalność danego modułu - input tu, output tam, obliczenia tu itp. Objętość kodu ma tu drugorzędne znaczenie - jeśli uważamy, iż moduł jest zbyt duży (subiektywna ocena) to dzielimy na mniejsze (wprowadzamy bardziej rozdrobniony, logiczny podział). Nie chodzi o to by np. do jednego modułu wpakować funkcje zaczynające się literą A-F, do drugiego kolejne itd. :D Podobnie nie chodzi o to by drobne funkcję były w jednym module a większe w innym.

Tak więc czasem moduły mogą być bardziej rozdrobnione, czasem mniej, wymuszać to powinna funkcjonalność danego modułu.

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