![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перекрестные ссылки [D7, WinXP]
Andrushk © (2005-09-14 13:13:00)У нас на работе считается плохим стилем использовать перекрестные ссылки между модулями. Никто толком не знает что в них плохого, но глюки часто списывают на них:-)
Хотелось бы услышать мнение человека, который четко представляет проблему, есть какие-то негативные последствия использования перекрестных ссылок в модулях?
Заранее спасибо.
Джо (2005-09-14 17:39:00) [21]
> [24] Andrushk (14.09.05 17:35)
> Что лучше?
Лучше когда по уму :) А если для развития широты взгляда на вопрос, то очень рекоммендую к прочтению С. Макконнелл. Совершенный код.
Reindeer Moss Eater (2005-09-14 17:39:00) [22]>Но вот зависимости нет, все здорово...
Где же здорово, ели твой датамодуль знает какие контролы находятся в других формах и как их зовут.
Это и называется зависимостью модулей.
Andrushk (2005-09-14 17:35:00) [23]2Джо © (14.09.05 17:23) [22]
Ну это понятно...
Но вот зависимости нет, все здорово...
Но датамодуль нечитаемый:-)
Что лучше?
Andrushk (2005-09-14 17:25:00) [24]2 Reindeer Moss Eater © (14.09.05 17:20) [21]
Может и туго, но я вот пытаюсь учиться, а Вы вместо помощи отписываетесь чем-то больше похожим на едкие насмешки:-)
Джо (2005-09-14 17:23:00) [25]
> [20] Andrushk (14.09.05 17:20)
> Кстати, в свое время хотели разгрузить датамодуль, сделать
> два а может и три, а то просто неудобно стало. Но от идеи
> отказались, как раз из-за перекрестных ссылок.
Вот потому-то я и сказал, что увеличивает взаимную зависимость.
Reindeer Moss Eater (2005-09-14 17:20:00) [26]Понятно, что с проектированием у вас туго.
Andrushk (2005-09-14 17:20:00) [27]Кстати, в свое время хотели разгрузить датамодуль, сделать два а может и три, а то просто неудобно стало. Но от идеи отказались, как раз из-за перекрестных ссылок.
Andrushk (2005-09-14 17:19:00) [28]Reindeer Moss Eater © (14.09.05 17:02) [18]
Ну да, ссылается, сходу не скажу по какой конкретно причине, не я писал, но факт есть факт, какие-то данные с формы понадобились в обработчике в датамодуле...
А что именно понятно?
Reindeer Moss Eater (2005-09-14 17:02:00) [29]Код модуля данных ссылается на модули форм?
Ну тогда понятно почему все свалили на перекрестные ссылки.
Andrushk (2005-09-14 16:58:00) [30]Я когда вопрос задавал, писал что глюки часто сваливают на перекрестные ссылки.
Так вот пример. В одном из приложений есть у нас датамодуль, сколько там наборов данных не считал, но вобщем в разрешении 1280x1024 форма занимает весь экран и там датасет на датасете лежит, местами в два слоя:-)
Естественно что все формы его юзают. Но на определенном этапе жизни приложения появились и ссылки из датамодуля на формы...
И никто не знает когда и как это случилось, но датамодуль перестал отлаживаться. Т.е. точки в нем не срабатывают, а если ставить точку раньше, то отладчик просто не заходит в код датамодуля. Причем это не локальный глюк, а у всех разаработчиков.
Свалили на перекрестные ссылки. Никто с этим не сталкивался?
Игорь Шевченко (2005-09-14 16:04:00) [31]Andrushk (14.09.05 15:58) [14]
> Почему плохо на Ваш взгляд?
Потому что общие вещи лучше объединить и вынести в третий модуль, на который ссылаться из первых двух.
Джо (2005-09-14 15:59:00) [32]Усиливают зависимость.
Andrushk (2005-09-14 15:58:00) [33]Reindeer Moss Eater © (14.09.05 14:51) [12]
Ваше мнение понятно, спасибо :-)
Игорь Шевченко © (14.09.05 14:53) [13]
Именно так.
Почему плохо на Ваш взгляд?
Игорь Шевченко (2005-09-14 14:53:00) [34]Насколько я понял, перекрестные - это когда два модуля ссылаются друг на дурга ? Таки да, плохо.
Reindeer Moss Eater (2005-09-14 14:51:00) [35]Это дело вкуса.
Либо вопрос корпоративного стандарта проектирования.
А мои рекомендации такие - как можно меньше зависимостей между модулями и формами.
Andrushk (2005-09-14 14:45:00) [36]Reindeer Moss Eater © (14.09.05 14:35) [10]
Т.е. вся проблема только в читабельности программы?
И всетаки, есть какая-нибудь литература по данной тематике, которую Вы могли бы рекомендовать?
Reindeer Moss Eater (2005-09-14 14:35:00) [37]Т.е. я могу предположить что использование перекрестных ссылок изменяет размер программы. Так?
Никак не меняет.
Нет никаких ссылок внутри готовой программы.
Andrushk (2005-09-14 14:34:00) [38]Reindeer Moss Eater © (14.09.05 14:21) [6]
Ок, а где можно почитать про то, как делфи обрабатывает такие ссылки.
Т.е. если Вы пишите "Просто потому, что никаких перекрестных ссылок в работающих программах нет." значит код как-то преобразуется?
Т.е. я могу предположить что использование перекрестных ссылок изменяет размер программы. Так?
Andrushk (2005-09-14 14:30:00) [39]2Digitman © (14.09.05 14:23) [7]
Формы при том, что стандартно одна форма - один юнит.
Как пример: формы должны использовать поля друг друга.
Как вариант взаимодействия - перекресные ссылки.
Я могу конечно свой конкретный пример привести, но решил придумать этот, так как он проще.
Digitman (2005-09-14 14:23:00) [40]
> Andrushk (14.09.05 14:18) [5]
при чем здесь вообще какие-то там "формы" ?
речь идет о МЕЖМОДУЛЬНЫХ ссылках !
а уж что там в этих модулях декларировано - формы или не формы - значения НЕ имеет НИкакого.
> интересует что плохого в перекрестной ссылки
ничего плохого в перекрестных ссылках нет.