![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| kamre |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 24.3.2006 Репутация: 1 Всего: 13 |
Есть ли какие-то удобные средства для того, чтобы вычистить из большого проекта (порядка 1000 файлов) лишние include и forward declaration?
|
|||
|
||||
| kamre |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 24.3.2006 Репутация: 1 Всего: 13 |
В C++ все так плохо, что эта задача не решаемая вообще?
|
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
||||
|
||||
| kamre |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 24.3.2006 Репутация: 1 Всего: 13 |
Наверное при том, что "модульность" в нем реализована через #include директивы препроцессора.
Ну да, вопрос про IDE/tools/... , которые позволяют это делать наиболее удобным образом. Есть ли такие для c++?
Лишние #include замедляют сборку, множество лишних forward declarations замусоривают код. А так да, работает и даже трогать не хочется некоторый код ) |
||||||
|
|||||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Это действительно аргумент, особенно для больших проектов. Я не знаю такого тула, сама бы не отказалась. Однако корень не в "лишних" инклудах, а в разбиении на модули конкретного проекта, а это за тебя никакой тул не сделает. Разумеется, есть тупые варианты, типа включения хедера с символами ресурсов в другие хедеры (и упоминания таких символов в заголовочных файлах). Согласна с тем, что лишние форварды и инклуды засоряют. Кроме того, лишние зависимости очень мешают при серьезной переработке кода. Если код не предполагается поддерживать (развивать), можно оставить как есть. Но если предполагается - нужо руками зачистить хотя бы интерфейсные хедеры, а остальное - по мере поддержки. Я просто требую от программистов финальной зачистки кода на предмет лишних инклудов и прочего мусора - это, в конце концов, можно сделать перед его сдачей, наряду с прочими облизываниями. -------------------- ... |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
На время сборки это не влияет. А вот компиляция - другое дело. Особенно, если все и вся включено везде и всюду - любое изменение любого хидера влечет за собой перекомпиляцию всех модулей проекта. Если нужно сербезно лопатить проект - думаю лучше потратить пару дней и привести хидеры в порядок вручную. А по поводу C++ там или другой язык ИМХО Ни один самый гениальный язык не спасет вас от чьих-то кривых рук. |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
На время полной сборки тоже влияет, в запущенных случаях. У меня был опыт сокращения времени примерно на треть после ручной зачистки проекта. Но существеннее, конечно, время частичной компиляции во время разработки.
Именно, и не только кривых рук. Долго живущий проект обрастает всякой дрянью, которую можно исключительно руками выковырять (типа неиспользуемых функций и целых модулей, а уже ресурсы и их идентификаторы плодятся просто как тараканы в коммуналке). Это как в жизни - либо делать генеральную уборку раз в год, либо все время следить за мусором, кому что ближе. -------------------- ... |
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
Вот если бы кто-то подсказал как можно процесс сборки распаралелить(msvc2008, ну и просто gnu-make), не было бы таких споров. -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |