eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingDuże pliki czy małe?Re: Duże pliki czy małe?
  • X-Received: by 10.182.28.100 with SMTP id a4mr55443obh.28.1391506195574; Tue, 04 Feb
    2014 01:29:55 -0800 (PST)
    X-Received: by 10.182.28.100 with SMTP id a4mr55443obh.28.1391506195574; Tue, 04 Feb
    2014 01:29:55 -0800 (PST)
    Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!goblin2!goblin.stu.neva.ru!feeder.erje.net!us.feeder.erje.net!news.glo
    rb.com!uq10no9184484igb.0!news-out.google.com!wo6ni8igb.0!nntp.google.com!c10no
    9826234igq.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mai
    l
    Newsgroups: pl.comp.programming
    Date: Tue, 4 Feb 2014 01:29:55 -0800 (PST)
    In-Reply-To: <g...@n...chmurka.net>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=195.182.34.254;
    posting-account=bMuEOQoAAACUUr_ghL3RBIi5neBZ5w_S
    NNTP-Posting-Host: 195.182.34.254
    References: <g...@n...chmurka.net>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <4...@g...com>
    Subject: Re: Duże pliki czy małe?
    From: Maciej Sobczak <s...@g...com>
    Injection-Date: Tue, 04 Feb 2014 09:29:55 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:205084
    [ ukryj nagłówki ]

    W dniu wtorek, 4 lutego 2014 09:07:00 UTC+1 użytkownik Adam Wysocki napisał:

    > Ja staram się trzymać zasady "jeden plik - jedna klasa".

    To dobra zasada. Ale...

    > Jak robię jakiś
    > większy moduł, to po prostu robię mu podkatalog albo namespace i dzielę
    > na pliki.

    Też dobrze. Ale...

    > A jak to jest z Wami?

    Podobnie. Ale...

    > Jeden duży plik (tzn. dwa - .h i .cpp), w nich jedna klasa, w tej klasie
    > inne klasy (reprezentujące stany), każdy stan ma swoje podstany, które też
    > są w tym samym pliku... i to się rozrasta.

    To też dobry pomysł.

    > Ja implementując coś podobnego wydzieliłbym wszystkie stany do osobnych
    > plików.

    A ja nie.

    Jaka jest rola tych klas w projekcie? Jeżeli one reprezentują jakieś odrębne elementy
    logiki programu, to zasługują na osobne pliki, nawet jeśli są małe w sensie linii
    kodu. Ale jeśli te klasy są jedynie technicznymi detalami jakiegoś rozwiązania, to
    należą tam, gdzie ten rozwiązywany problem.

    Powiedzmy, że masz moduł, który czasem coś musi posortować i do tego celu używa
    komparatora do funkcji std::sort. Ten komparator, pomimo tego, że jest klasą, jest
    jedynie technicznym detalem tego modułu i nie ma sensu dla niego robić osobnego
    pliku. Wręcz przeciwnie - on powinien być jak najbliżej tego sortowania.

    Ale...

    Może też się zdarzyć, że takich komparatorów będzie więcej i będą one przydatne w
    kilku miejscach - wtedy jest sens zrobić osobny plik z takimi komparatorami.

    Podobnie, jest sens zebrać razem kilka klas, które służą jako wyjątki. Nie ma sensu
    robić dla nich osobnych plików.

    Podobnie, jest sens zebrać razem klasy reprezentujące różne stany *jednego* automatu.
    Bo to jest jeden automat.

    --
    Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: