Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Глобальные переменные

Автор RawonaM, марта 1, 2011, 15:07

0 Пользователи и 1 гость просматривают эту тему.

RawonaM

Цитата: myst от марта  1, 2011, 17:10
А, вот ты про что. Это они ключевые слова сэкономили. :)
Вот-вот. Экономисты блин :)

myst

Цитата: RawonaM от марта  1, 2011, 17:08
Ты же сам предложил объектник поменять! От тебя и защищать.
Я не предложил, но показал, что это никакая не защита от злодеев. Злодеев придумал Python, а не я, если что. :eat:


RawonaM

Цитата: myst от марта  1, 2011, 17:13
ЦитироватьТы же сам предложил объектник поменять! От тебя и защищать.
Я не предложил, но показал, что это никакая не защита от злодеев. Злодеев придумал Python, а не я, если что. :eat:
Так а я говорю, что защита.

Python

Цитата: myst от марта  1, 2011, 17:04
Программисту нет необходимости в свою программу чего-то там нелегально внедрять, если у него не раздвоение личности, конечно.
Ну а если, допустим, каждый программист пишет лишь небольшкю часть кода, которая компилируется отдельно от остальных (и, например, разработчик GUI формально не имеет доступа к работе базы данных с конфиденциальной информацией)? Другое дело, такой метод защиты программы уже давно не рассматривается как защита.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

RawonaM


Чайник777

Инкапсуляцию можно рассматривать как защиту от злодеев лишь в шутку:
Цитировать
Hiding the internals of the object protects its integrity by preventing users from setting the internal data of the component into an invalid or inconsistent state. A benefit of encapsulation is that it can reduce system complexity, and thus increases robustness, by allowing the developer to limit the interdependencies between software components.
DAZU brauchte Hitler 12 Jahre Zeit.

RawonaM

Цитата: Python от марта  1, 2011, 17:15
ЦитироватьПрограммисту нет необходимости в свою программу чего-то там нелегально внедрять, если у него не раздвоение личности, конечно.
Ну а если, допустим, каждый программист пишет лишь небольшкю часть кода, которая компилируется отдельно от остальных (и, например, разработчик GUI формально не имеет доступа к работе базы данных с конфиденциальной информацией)? Другое дело, такой метод защиты программы уже давно не рассматривается как защита.
Все правильно Питон говорит. Программистов может быть не один и не два. Даже если человек один.
Например один человек в прошлом году написал, в этом году он уже не тот же программист, ибо он уже все забыл.
Принцип инкапсуляции какбе. Все современные языки на этом основаны и это один из столпов ООП.

RawonaM

Цитата: Чайник777 от марта  1, 2011, 17:19
Инкапсуляцию можно рассматривать как защиту от злодеев лишь в шутку:
"Злодеев" мы тут как раз в шутку и употребляем.

myst

Цитата: Python от марта  1, 2011, 17:15
Ну а если, допустим, каждый программист пишет лишь небольшкю часть кода, которая компилируется отдельно от остальных (и, например, разработчик GUI формально не имеет доступа к работе базы данных с конфиденциальной информацией)?
Не улавливаю связи разработчика куска программы с доступом, точнее с запретом доступа, к какой-то там базе данных.

myst


myst

Цитата: RawonaM от марта  1, 2011, 17:20
"Злодеев" мы тут как раз в шутку и употребляем.
Э не, Python говорил об эксплоите глобальной переменной.

RawonaM

Цитата: myst от марта  1, 2011, 17:26
Цитировать"Злодеев" мы тут как раз в шутку и употребляем.
Э не, Python говорил об эксплоите глобальной переменной.
Ну тут нужен злодей который не может обж изменить. Какбе тут есть элемент криминальной защиты, но на уровне цепочки на дверях.

RawonaM

Цитата: myst от марта  1, 2011, 17:24
ЦитироватьДык, инкапсуляция же.
Это защита от дурака
Ты пишешь код без указания области видимости? :) Зачем тебе защита? :)

myst

Цитата: RawonaM от марта  1, 2011, 17:29
Ну тут нужен злодей который не может обж изменить. Какбе тут есть элемент криминальной защиты, но на уровне цепочки на дверях.
Какбэ тут нет вообще криминальной защиты. То, о чём мы говорим, создано для управления связями во время линковки, чтобы не надо было следить за уникальностью переменных во всех модулях.

myst

Цитата: RawonaM от марта  1, 2011, 17:30
Ты пишешь код без указания области видимости? :) Зачем тебе защита? :)
Чтобы уберечься от дурака же. :donno:

RawonaM

Цитата: myst от марта  1, 2011, 17:34
Чтобы уберечься от дурака же. :donno:
Это какое-то странное понимание инкапсуляции :)

RawonaM

Цитата: myst от марта  1, 2011, 17:33
Какбэ тут нет вообще криминальной защиты. То, о чём мы говорим, создано для управления связями во время линковки, чтобы не надо было следить за уникальностью переменных во всех модулях.
А точно линкер будет ругаться на одинаковые имена в разных модулях? Это в стандарте определено?

Python

Цитата: myst от марта  1, 2011, 17:33
Какбэ тут нет вообще криминальной защиты. То, о чём мы говорим, создано для управления связями во время линковки, чтобы не надо было следить за уникальностью переменных во всех модулях.
Тем не менее, к глобальным переменным и публичным полям отношение более строгое, чем к функциям/методам.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

myst

Цитата: Python от марта  1, 2011, 17:42
Тем не менее, к глобальным переменным и публичным полям отношение более строгое, чем к функциям/методам.
Ичо?

myst

Цитата: RawonaM от марта  1, 2011, 17:41
А точно линкер будет ругаться на одинаковые имена в разных модулях?
Не не будет, будет по фазе Луны линковать.

RawonaM

Цитата: myst от марта  1, 2011, 17:55
ЦитироватьА точно линкер будет ругаться на одинаковые имена в разных модулях?
Не не будет, будет по фазе Луны линковать.
Не понял...

myst

Как он, по-твоему, выберет правильную связь в этой ситуации?

RawonaM

Цитата: myst от марта  1, 2011, 17:58
Как он, по-твоему, выберет правильную связь в этой ситуации?
А ее нет, какая там связь? Это разные переменные, просто имя совпало.
Чтобы была одна, нужна extern декларация во всех, кроме одного, где определение.

Python

ЦитироватьИчо?
Принято считать, что через несанкционированный/ошибочный доступ к переменным можно нанести больше вреда, чем через вызов функций, которые, в идеале, должны содержать в себе определенную защиту от дурака. Хотя, безусловно, во многих случаях программистские догмы соблюдаются лишь по той причине, что так завещали древние.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр