Форум: "Потрепаться";
Текущий архив: 2003.10.23;
Скачать: [xml.tar.bz2];
Внизглобальные переменные Найти похожие ветки
← →
павел (2003-10-03 01:19) [0]почему их не рекомендуется использовать, ведь даже в vcl их предостаточно?
← →
Ihor Osov'yak (2003-10-03 01:22) [1]Вероятность ошибки в отноосительно больших проектах значительно выше..
Зы - перед декларацией очередной глобальной - остановись, и ще раз подумай: а может все-же не надо? c. может и мой :-)
← →
павел (2003-10-03 02:00) [2]а что предпочтительнее использовать и почему?
← →
Aristarh (2003-10-03 02:09) [3]Во-первых, нарушается логика программы.
Во-вторых, глобальные переменные занимают ресурсы системы на
протяжении всей работы программы(если не освободить их явно),
а локальные существуют только лишь в процессе выполнения
процедуры, в которой они объявлены.
← →
andre (2003-10-03 02:13) [4]А если нужна глобальная переменная, то что же делать? Передавать из процедуры в процедуру?
← →
Ihor Osov'yak (2003-10-03 02:17) [5]чистую родниковую воду предпочтительнее использовать. Для употребления в пищу.
А если спич все же о переменных - то локальные, члены классов, в конце концов статические, но с ограничеенной областью видимости (в секции implementation) - это все зависит от архитектуры приложения. Но использование глобальных нужно стремится сводить к строго необходимому минимуму (причины те же - глобольные провоцируют более тесные связи между частями приложений (что также нужно сводить к минимуму), плюс повышают вероятность ошибки из-за возможного конфликта имен, из-за того, что изменить глобальную переменную можно во многих пронраммных модулях, етс..
Для начала просто поверте на слово, а со временем прийдет понимание того, почему этого дейчтвительно не нужно делать..
← →
Aristarh (2003-10-03 02:18) [6]А если нужна сотня, тысяча глобальных переменных, что же делать?
Объявлять их всех глобальными?
Все зависит от ситуации...
← →
Ihor Osov'yak (2003-10-03 02:20) [7]> А если нужна глобальная переменная, то что же делать? Передавать из процедуры в процедуру?
Не рекомендуется - не есть синоним слова запрещается..
Зы - но думать о том, действительно ли оно надо - очень рекомендуется..
Если нужно много глобольных - стоит призадуматься об оптимальности архитектуры приложения..
← →
Ihor Osov'yak (2003-10-03 02:21) [8]Зы - есть системы программирования, где просто отсутствуют глобальные переменные :-)
← →
Сергей Суровцев (2003-10-03 02:38) [9]>павел (03.10.03 01:19)
>почему их не рекомендуется использовать, ведь даже в vcl их >предостаточно?
Используй на здоровье, но только при действительной необходимости, а не просто как норму жизни. При их использовании следи за именами. А в принципе ничем они не хуже.
← →
Думкин (2003-10-03 05:39) [10]> павел (03.10.03 01:19)
> почему их не рекомендуется использовать, ведь даже в vcl
> их предостаточно?
Именно переменные и именно предостаточно?
Если под предостаточно именовать достаточно - то вполне, но если немерянное кол-во, то просвети.
← →
павел (2003-10-03 23:35) [11]предостаточно - это больше разовых проявлений, во многих юнитах за десяток будет точно
> Именно переменные
var - объявление переменных? =)
← →
iZEN (2003-10-04 10:00) [12]Наружу необходимо выставлять лишь самое необходимое.
Пусть уж лучше всё будет private, затем protected, public - в самую крайность, если уж некуда деваться - такова философия.
Глобальные переменные - пережиток больших и глупых систем. Сейчас мода идёт по пути асинхронного обмена сообщениями (сигналами в старом понимании). Естественно, это актуально в многопоточной среде.
← →
павел (2003-10-04 14:32) [13]
> iZEN © (04.10.03 10:00) [12]
> Наружу необходимо выставлять лишь самое необходимое.
так кто же их выставляет? сидят себе спокойно в implementation...
← →
kaif (2003-10-04 18:15) [14]Существует множество предрассудков. Никогда не использовать глобальные переменные - один из таких предрассудков. Так что используй, если тебе это удобно. Все минусы и плюсы тебе известны. Не вижу никаких оснований, чтобы извращаться там, гда не надо. Вот оператор безусловного перехода (go to) - другое дело. А глобальные переменные - нормальная вещь. Просто как и во всем остальном, желательно и здесь придерживаться минимализма.
← →
y-soft (2003-10-04 18:29) [15]Полностью согласен с kaif © (04.10.03 18:15) [14]. Беда не в глобальных переменных, "goto" etc, а в необдуманном их использовании. Любые крайности вредны. Набор средств должен диктоваться только конкретикой решаемых задач
← →
Anatoly Podgoretsky (2003-10-04 21:09) [16]iZEN © (04.10.03 10:00) [12]
Выставление наружу тут ни при чем, оно лишь увеличивает степень глобальности. Переменные остаются глобальными в пределах модуля. Надо это выставление свести до уровня процедуры и всего лишь. И в процедуре не должно быть вложенных процедур, это тоже другая степень глобальности.
А вот сообщения это другое дело, не зря же виндоус на этом была построена. Свойства тоже хорошая вещь иза контроля за состоянием, из за поддержки методов доступа.
← →
Blackman (2003-10-04 22:23) [17]Есть прекрасная статья на эту тему:
Anatoly Podgoretsky. Формы и глобальные переменные форм
http://delphiclub.ru/forums/index.php?act=ST&f=3&t=267&s=4b5e3caf298167fdd406b58ec1cd3acb
← →
Igorek (2003-10-04 22:56) [18]Я бы предпочел все глобальные переменные обьединить по классам. И нагляднее - и переменная под присмотром. Естественно нужна одна глобальная переменная класса. ;-)
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.10.23;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.009 c