-
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
Następne wpisy z tego wątku
- 04.02.14 11:20 Stachu 'Dozzie' K.
- 04.02.14 13:36 Adam Wysocki
- 05.02.14 14:03 inny punkt siedzenia...
- 05.02.14 15:42 witek
- 05.02.14 17:33 Sebastian Biały
- 06.02.14 00:38 Mateusz Loskot
- 06.02.14 08:10 Paweł Kierski
- 06.02.14 20:41 witek
- 07.02.14 11:23 Mateusz Łoskot
- 07.02.14 16:59 witek
- 07.02.14 19:09 Mateusz Łoskot
- 08.02.14 15:12 Michal Kleczek
- 08.02.14 15:36 g...@g...com
- 08.02.14 18:02 g...@g...com
- 08.02.14 20:41 Sebastian Biały
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-12-14 światła znów wlączyli
- 2024-12-14 nie lekceważ termostatu
- 2024-12-14 numer 112
- 2024-12-14 Pendrive, ale dysk
- 2024-12-12 Autocom CAN CDP+ wysokie kody błędów
- 2024-12-13 termostat do lodowki
- 2024-12-13 Gdańsk => Inżynier bezpieczeństwa aplikacji <=
- 2024-12-13 Warszawa => Head of International Freight Forwarding Department <=
- 2024-12-13 Poznań => Employer Branding Specialist <=
- 2024-12-13 Kraków => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2024-12-13 Kraków => Business Development Manager - Network and Network Security
- 2024-12-13 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-13 Gdańsk => Programista Full Stack .Net <=
- 2024-12-13 Warszawa => Analityk Biznesowo-Systemowy <=
- 2024-12-13 Białystok => Architekt rozwiązań (doświadczenie w obszarze Java, A