Войти
ПрограммированиеФорумОбщее

C++: каждый класс в своём модуле. В чём прикол?

Страницы: 1 2 325 26 Следующая »
#0
11:49, 12 мар. 2012

В который раз сталкиваюсь с привычкой С++ программистов писать каждый класс в отдельном модуле. В итоге проект превращается в тонну разрозненных непонятно как связанных файлов. Объясните, чем это обусловлено? Мне не понятно, из каких соображений психологически здоровый индивид намеренно усложняет свою жизнь


#1
11:52, 12 мар. 2012

DevilDevil
Присоеденяюсь к вопросу. Тоже не однократно такое видел.

#2
11:55, 12 мар. 2012

Vorotnyak_Nazar
DevilDevil
> привычкой С++ программистов писать каждый класс в отдельном модуле
что такое модуль в с++??

#3
11:56, 12 мар. 2012

DevilDevil
>>Объясните, чем это обусловлено?
Книгами умных людей:)

А если серьезно, то меня наоборот приводит в ступор желание людей запихнуть все в один модуль.


DevilDevil
> индивид намеренно усложняет свою жизнь
Вообще-то облегает. Если я вижу classA.h и classA.cpp, я знаю что в них описан класс classA, и ничего больше. Если мне надо внести изменение в этот класс, я визуально сразу найду нужные места. А если в одном заголовке десяток классов, то попробуй в этих тысячах строк кода ориентироваться.

#4
11:57, 12 мар. 2012

war_zes

в догонку другой вопрос
у вас нет быстрой навигации по классам в модуле ?
нет быстрого перехода от объявления к реализации конкретного метода ?

#5
11:59, 12 мар. 2012

war_zes
> А если серьезно, то меня наоборот приводит в ступор желание людей запихнуть все
> в один модуль.
+1

Писать классы в отдельных файлах это хороший тон какбе - вон в жаве вообще нельзя писать классы в одном файле(на скока я знаю)

ЗЫ
Почему все говорят "модуль" у меня асоциации с паскалями и пр начинаются

#6
12:00, 12 мар. 2012

DevilDevil
> у вас нет быстрой навигации по классам в модуле ?
> нет быстрого перехода от объявления к реализации конкретного метода ?
для навигации есть иде

#7
12:03, 12 мар. 2012

fsmoke
> Писать классы в отдельных файлах это хороший тон какбе - вон в жаве вообще
> нельзя писать классы в одном файле(на скока я знаю)
а то что проект превращается в огромное месиво непонятно как связанных файлов - это совсем не мешает, не ?

fsmoke
> Почему все говорят "модуль" у меня асоциации с паскалями и пр начинаются
ну для меня h + cpp - это модуль. Для меня h + cpp - это единая субстанция, в которой находится что-то
ты по другому воспринимаешь эти файлы ? Как то иначе ?

#8
12:05, 12 мар. 2012

DevilDevil
> у вас нет быстрой навигации по классам в модуле ?
Есть конечно и именно по этой причине я к примеру придерживаюсь такого способа организации кода (так как большое количество файлов никак не мешает). Смысл в том чтобы уменьшить количество кода на экране (ИМХО), в одном файле. Это тоже самое - почему дробят один класс на несколько подклассов, или один метод на десяток вложенных методов - уменьшить количество кода который нужно понять в определенный промежуток времени, убрать все не нужное для работы в другое место.

#9
12:05, 12 мар. 2012

DevilDevil
> намеренно усложняет свою жизнь
В основном это облегчает. Например я наоборот когда смотрю исходники на Delphi - офигеваю над тем зачем же надо было всё засовывать в один файл.

Ещё факт - язык Java не позволяет создавать более одного класса в одном файле и более того требует чтобы название файла совпадало с названием класса.
Если бы это усложняло жизнь - никто бы на Java не программировал.

#10
12:09, 12 мар. 2012

DevilDevil
> а то что проект превращается в огромное месиво непонятно как связанных файлов
Ну, если архитектура хорошая, то этого как раз не будет - ведь понятно же как классы связаны друг с другом, значит и модули которые их содержат, точно также связаны.

Единственный минус - это Forward declaration, по своему сильно может вынести мозг

#11
12:09, 12 мар. 2012

Напомню, что отдельные файлы не будут перекомпилироваться если их не изменяли, что сокращает время сборки проекта..
И да, удобство навигации по файлам на лицо.

#12
12:10, 12 мар. 2012

war_zes
иначе говоря группирование

чтобы логически легче воспринимать информацию
НО
множество небольших классов думаю целесообразно организовывать в одном модуле если они имеют одно направление деятельности
в итоге меньше подключаешь инклюдов и в проекте ориентироваться значительно проще!
кроме того ты модули называешь не по имени класса, а по назначению.

А что касается навигации в рамках одного модуля
Так тут есть навигация по классам в одном модуле и навигация по функциям в рамках класса. Я думаю ваши IDE такую функциональность предоставляют. Или нет? Или ими неудобно пользоваться? В чём прикол то блин ? )

#12
12:10, 12 мар. 2012

DevilDevil
> а то что проект превращается в огромное месиво непонятно как связанных файлов -
> это совсем не мешает, не ?
это зависит от того, как ты организуешь структуру проекта

#14
12:11, 12 мар. 2012

меня лично раздражает наличие двух файлов h и cpp вместо одного это действительно не удобно. но терплю.

Страницы: 1 2 325 26 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.