Форум: "Основная";
Текущий архив: 2008.08.31;
Скачать: [xml.tar.bz2];
Внизuses необходимое Найти похожие ветки
← →
Константин (2007-12-14 11:07) [0]Есть большое многомодульное приложение.
Есть ли какая-нить приблуда, которая может показать какие модули можно убрать из Uses в interface и перенести их в implementation или вообще удалить. Также она должна показать, что в implementation такой-то модуль скажем не нужен.
← →
Anatoly Podgoretsky © (2007-12-14 11:11) [1]> Константин (14.12.2007 11:07:00) [0]
Руки, поскольку технической возможности сделать это одназначно нет.
← →
Семен Сурков (2007-12-14 11:22) [2]Есть такая. Игорь Шевченко советовал когда-то в форумен. Но название убей не помню.
Смотрел ее. Кривенько, но в целом работает.
← →
Anatoly Podgoretsky © (2007-12-14 11:26) [3]> Семен Сурков (14.12.2007 11:22:02) [2]
Таких нет, есть кривенькие.
← →
Семен Сурков (2007-12-14 11:32) [4]Теоретически ничего в таком функционале сложного нет. Есть же в D2007 rename refactoring, есть find refenrece. Работает в подавляющем большинстве случаев правильно. На этом функционале вполне можно построить требуемое. Может и появится такое, как элемент группы refactoring.
← →
Константин (2007-12-14 11:42) [5]Впринципе задача не самая простая, особенно если ее решать руками. Возникновение такого кода говорит о непорядке при программирвоании на языке паскаль...
← →
Anatoly Podgoretsky © (2007-12-14 11:44) [6]> Константин (14.12.2007 11:42:05) [5]
Руками как раз удается, а вот автоматом нет, и часто об этом узнаешь поздно.
← →
Константин (2007-12-14 12:07) [7]Если так, то тогда все сделаю аккуратно руками, т.к. главное это понимать что куда надо перенести и почему. Только тогда есть вероятность правильно работы программы.
← →
Anatoly Podgoretsky © (2007-12-14 12:13) [8]> Константин (14.12.2007 12:07:07) [7]
Многие ты сразу поймешь, превратив в комментарий и попробов переместить в другую секцию. Или автоматом добавит или обругает.
А вот по некоторым нет, и не добавит и не обругает, но это не означает нужен модуль или нет.
Наглядный пример XPMan - на него нет никаких ссылок в коде, тоже и по другим ресурсным ДЛЛ
← →
@!!ex © (2007-12-14 14:36) [9]> [8] Anatoly Podgoretsky © (14.12.07 12:13)
Ладно еще XMan...
А если какой то класс описан в двух модулях с разными реализациями, но ондим именем.(Так, например сделан TBitMap. Он есть в Windows и в Graphics. Правда там общего только имя, поэтому такое быстро ловится, а если нет?)
← →
Anatoly Podgoretsky © (2007-12-14 14:43) [10]> @!!ex (14.12.2007 14:36:09) [9]
Это нормально, обычное пространство имен, полиморфизм на уровне модулей.
← →
@!!ex © (2007-12-14 14:48) [11]> [10] Anatoly Podgoretsky © (14.12.07 14:43)
Я к тому, что и не определишь, какой unit нужен, а какой нет.
Разве что писать анализатор практически идеентичный Дельфевому.
← →
guav © (2007-12-14 14:54) [12]ICARUS
> Возникновение такого кода говорит о непорядке при программирвоании
> на языке паскаль...
Настоящий беспорядок можно сделать сишными хидерами, с паскалевскими модулями как раз полный порядок.
← →
Anatoly Podgoretsky © (2007-12-14 15:04) [13]> @!!ex (14.12.2007 14:48:11) [11]
А в этом случае наличие модуля не является признаком работоспособности.
Попробуй
uses
Windows,
Graphics
и
uses
Graphics,
Windows,
Ты путаешь мух с котлетами, и видимо не умеешь работать с каноническими именами.
← →
@!!ex © (2007-12-14 15:26) [14]> [13] Anatoly Podgoretsky © (14.12.07 15:04)
Я в курсе, что последовательность юнитов имеет значение, и что идентификатор берется из последнего определенного модуля в uses, я тоже в курсе. И что обращаться можно как Windows.TBitMap или Graphics.TBitMap, тоже не вопрос.
Вопрос в том, как анализировать чего хочет юзер?
← →
Anatoly Podgoretsky © (2007-12-14 15:31) [15]> @!!ex (14.12.2007 15:26:14) [14]
Что бы понятнее, вот пример
unit1
const
abc = 1;
unit2
const
abc = 17;
unit3
Var = abc;
Что хочет пользователь?
Вот он и должен явно указать, тогда можно определить нужный модуль.
А вот с ресурсными DLL невозможно и XPMan это доказал.
← →
Игорь Шевченко © (2007-12-17 11:28) [16]на http://www.peganza.com искать Icarus - довольно неплохо работает
← →
Anatoly Podgoretsky © (2007-12-17 12:41) [17]
> на http://www.peganza.com искать Icarus - довольно неплохо
> работает
Надеюсь он не автоматом удаляет?
← →
Игорь Шевченко © (2007-12-17 13:20) [18]Anatoly Podgoretsky © (17.12.07 12:41) [17]
Нет конечно. Он рассказывает, какие по его мнению модули надо из interface перенести в implementation, а какие удалить вообще. Но любое удаление остается на совести человека. Вообще достаточно разумный инструмент в смысле определения лишних объявлений в uses.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2008.08.31;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.01 c