Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Организация проекта в Delphi (2010) 
:(
    Опции темы
RomanEEP
Дата 2.7.2010, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 18.5.2006
Где: Коломна

Репутация: 5
Всего: 8



Я раньше использовал такой подход:
в uses проекта подключается минимум модулей, в директории проекта подключаю папки, где лежат исходники этого проекта.

Часто вижу проекты организованные подругому: в uses проекта подключены все его модули с путями относительно проекта, 
соответственно в директориях проекта - подключается только third-party библиотеки

Вопрос: Какой подход правильней, их плюсы и минусы.

Сам пока думаю так
1 способ:
+ Легко реструктурирую проект через Explore/Windows Commander и через SVN, в проекте достаточно подредактировать пути.
- Криво работают анализаторы кода, рефакторинг не хотят кушать модули неподключенные к проекту, 
в общем тупит куча разных автоматических инструментов (кот пользуюсь не часто, но дискомфорт от этого есть)

2 способ
+ могу изменить структуру проекта в дереве прямо в delphi (не знаю как отразится на svn)
+ наверное Compile работает надежнее (меньше вероятности, что он забудет перекомпилить изменившийся модуль)

Кто как делает и почему?

И вопрос по организации в связке с SVN:
каждый члена команды в настройках проекта забивают свой Run-Parameters. Естественно постоянно по случайности коммитят проект и у всех остальных
их настройка слетает. как от этого избавиться?


PM MAIL   Вверх
Alexeis
Дата 2.7.2010, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Цитата(RomanEEP @  2.7.2010,  15:38 Найти цитируемый пост)
каждый члена команды в настройках проекта забивают свой Run-Parameters. Естественно постоянно по случайности коммитят проект и у всех остальных
их настройка слетает. как от этого избавиться?

  Каждый пусть создаст новый проект в формате <имя проекта>.<имя пользователя> и закомитит его в SVN. И пусть каждый юзает только свой проект. Конечно же возникнут проблемы с тем, чтобы каждый добавлял новые файлы в свой проект. Но тут уж ничего не сделаешь. VC++ поступает хитрее. Она для каждого пользователя создает файл персональных настроек, при том, что файл проекта общий. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
RomanEEP
Дата 2.7.2010, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 18.5.2006
Где: Коломна

Репутация: 5
Всего: 8



Alexeis, это не выход. Сейчас просто слетают параметры проекта, это относительно фигня, а так время от времени у соседа вообще проект после обновления будет отказываться компилиться.
PM MAIL   Вверх
CodeMonkey
Дата 3.7.2010, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



Цитата(RomanEEP @  2.7.2010,  17:38 Найти цитируемый пост)
Вопрос: Какой подход правильней, их плюсы и минусы.

Правильно - комбинация этих двух.

Указать модуль без пути + вписать его папку в поиск - это делается для библиотек (FastMM, JCL, etc). Потому что на разных машинах библиотеки стоят в разных путях. Часто относительный путь к ним записать нельзя. Кроме того, перенося проект на другую машину, библиотеки не переносятся вместе с проектом. Если надо - их ставят отдельно.

Все прочие файлы - относятся конкретно к этому проекту. Они хранятся в его папке или подпапках. Иногда - в родительской папке (если проект входит в группу проектов и мы подключаем общие файлы). Тут логично указать относительный путь, ибо вписывать папки в настройки - явный overkill. Да и это создаёт сложности с переносом проекта на другую машину.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
RomanEEP
Дата 3.7.2010, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 18.5.2006
Где: Коломна

Репутация: 5
Всего: 8



CodeMonkey,  я в пути проекта всегда впиваю относительные пути, вопрос именно в том,
нужно ли подключать все модули проекта в список uses самого проекта. Для компиляции они там не нужны. Тогда для чего это делают?
PM MAIL   Вверх
CodeMonkey
Дата 3.7.2010, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



Цитата(RomanEEP @  3.7.2010,  17:30 Найти цитируемый пост)
нужно ли подключать все модули проекта в список uses самого проекта. Для компиляции они там не нужны. Тогда для чего это делают? 

А не так тогда понял. 

В uses головного проекта вписываются с путём те файлы, которые считаются частью проекта. Даже если они не нужны там для компиляции. Если файл оттуда убрать (указав его только во вложенном модуле) - файл не будет считаться принадлежащим проекту. Это будет как бы часть библиотеки.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
RomanEEP
Дата 4.7.2010, 07:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 18.5.2006
Где: Коломна

Репутация: 5
Всего: 8



Понятно, тогда что стоит за тем. что "файл считается принадлежащим проекту" и что оно дает мне.
Например, как я уже писал получается гемор  с тем, чтобы перетащить файл из папки в папку:
 сейчас я делаю команду svn move и всё, а так мне придется подправлять файл проекта.
Какие плюсы этого подхода?
PM MAIL   Вверх
chip_and_dayl
Дата 4.7.2010, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 603
Регистрация: 22.4.2007
Где: Украина, Киев

Репутация: 1
Всего: 9



Цитата(RomanEEP @  4.7.2010,  07:34 Найти цитируемый пост)
Понятно, тогда что стоит за тем. что "файл считается принадлежащим проекту" и что оно дает мне.

Допустим есть Ф-ция TestFunc, которая принимает один параметр следующего содержания "Тестова ф-ция" и была дана команда, поменять ее содержимое на "Тестовая ф-ция 2", мы в Делфях жмем Crtl+F и появляется окно поиска. Так вот если мы туда введем название ф-ции, то она найдет ф-цию в тех модулях, которые считаются "принадлежащим проекту". А потом будем думать почему программа передает в ф-цию то "Тестова ф-ция" то "Тестова ф-ция 2" .

Или второй пример. Есть переменная/ф-ция/форма и т.д. Хотелось изучить ее поведение, то беж где она вызывается или кем используется, чтобы потом ее переделать или правильно использовать. Но так как поиск нашел все это в файлах "принадлежащих проекту", то мы можем упустить главное, допустим в том модуле, которую поисковик Делфи не нашел, переменная может сбрасываться в другое значение, что мы не ожидали

Добавлено через 2 минуты и 50 секунд
Цитата(chip_and_dayl @  4.7.2010,  10:21 Найти цитируемый пост)
что "файл считается принадлежащим проекту" 

Если я правильно понял CodeMonkey, то это считается, что модуль объявлен в файле *.dpr, то беж мы явно указываем, что модуль относится к нашему проекту


--------------------
Фсё будет хорошо!!!
PM MAIL Skype   Вверх
RomanEEP
Дата 4.7.2010, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 18.5.2006
Где: Коломна

Репутация: 5
Всего: 8



Цитата(chip_and_dayl @  4.7.2010,  10:21 Найти цитируемый пост)
Если я правильно понял CodeMonkey, то это считается, что модуль объявлен в файле *.dpr, то беж мы явно указываем, что модуль относится к нашему проекту

модуль обяъвлен в dpr, значит "модуль принадлежит проекту", "модуль принадлежит проекту" - значит модуль объявлен в dpr... Великолепный пример рекурсии smile 


Цитата(chip_and_dayl @  4.7.2010,  10:21 Найти цитируемый пост)
мы в Делфях жмем Crtl+F и появляется окно поиска

У меня весь проект хранится в одном каталоге с вложенными папками, поэтому я нажимаю Ctrl+Shift+F (который настроен на поиск в корневом каталоге проекта) и я ищу во ВСЕХ модулях моего проекта.

PM MAIL   Вверх
chip_and_dayl
Дата 4.7.2010, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 603
Регистрация: 22.4.2007
Где: Украина, Киев

Репутация: 1
Всего: 9



Цитата(RomanEEP @  4.7.2010,  15:35 Найти цитируемый пост)
У меня весь проект хранится в одном каталоге с вложенными папками

У вас даsmile У других возможно нет. Допустим есть два проекта, которые используют общие модули, а их не положишь в папку одного проекта или второго (дублирование не выход)  smile


Цитата(RomanEEP @  4.7.2010,  15:35 Найти цитируемый пост)
модуль обяъвлен в dpr, значит "модуль принадлежит проекту", "модуль принадлежит проекту" - значит модуль объявлен в dpr... Великолепный пример рекурсии  

Та ладноsmile Вы уже сами создали рекурсию  smile 


--------------------
Фсё будет хорошо!!!
PM MAIL Skype   Вверх
CodeMonkey
Дата 4.7.2010, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



Цитата(RomanEEP @  4.7.2010,  08:34 Найти цитируемый пост)
и что оно дает мне.

Много всего по мелочи. Лениво перечислять. Менеджер проектов давно открывали?


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
RomanEEP
Дата 4.7.2010, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 18.5.2006
Где: Коломна

Репутация: 5
Всего: 8



Цитата(CodeMonkey @  4.7.2010,  17:13 Найти цитируемый пост)
Много всего по мелочи. Лениво перечислять. Менеджер проектов давно открывали?

Открывал, есть возможность перетаскивать и переименовывать файлы, при этом, как я понимаю с svn косяк будет. 
Связка TortoiseSVN + JEDI VCS Integration дает мне тоже самое, только в связке с svn к тому же.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1058 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.