| Использовать ли global.* |
|
Ang3L
| Дата: Вторник, 21.04.2009, 17:57 | Сообщение # 41 |
Каждый 5й пост мой
Группа: Админы
Сообщений: 2667
Статус: Offline
|
Quote (Druce) когда надо обновить все. А когда все? Помоему, всегда обновляется только часть данных. Вот пример, допустим у меня есть едитбоксы. Я ими редактирую типы частиц, атракторы, эмиттеры и деструкторы. Работаю только с типами. Зачем обновлять все едит боксы, если можно обновить только едитбоксы типов частиц? Quote (Druce) И если ты считаешь, что передавать информацию одному объекту через глобал - это изврат, то ты прав)). Ну ессесно, это теряет смысл. Но я не за это. Quote (Druce) А почему? Вот напиши список того, что в глобале тебе не нравится. По пунктикам. Буду складировать. Не возможность проверять присылаемые данные. Не возможно узнать кто обращается к глобальной переменной. Теряется структуризация программы.
Blogpost
|
| |
| | |
|
Druce
| Дата: Вторник, 21.04.2009, 18:12 | Сообщение # 42 |
Каждый 5й пост мой
Группа: Страж
Сообщений: 1543
Статус: Offline
|
Quote (Ang3L) когда надо обновить все. А когда все? Ну например ты сделал меню в той же комнате, где и сама игра. Пусть у тебя в меню игра останавливается. Как образцу это определить? Посмотреть global.menu_on. Если она 1, то обновляем образец, иначе объекты меню. Или например у тебя в игре сетка с клеткой 10 на 10. В 1 объекте 1 раз считаешь, что количество клеток global.cells_x=room_width div 10 global.cells_y=room_height div 10 А потом всеми объектами можно юзать эти величины. Можно их записать и в объект контроллера, и обращаться к нему, но зачем создавать объект, если есть объект global? По пунктам: 1 и 2: Либо (при чтении переменной) это совершенно неважно, либо сам объект, кторый меняет переменную (шлет данные) сам проверяет все для него необходимое, перед тем как изменять. 3: тоже не пойму, а как тогда писать? g. вместо global.? Что это меняет? Вывод: Глобал можно и нужно юзать в тех случаях, когда он влияет на всех, а на него влияют немногие. Либо в тех же циклах сделать темповые переменные глобальными, тогда не надо мучаться с тем, кому переменная принадлежит, если у тебя например циклом перебираются объекты. Глобал не нужно использовать в тех случаях, когда с ним работают немногие объекты, тогда проще передавать информацию напрямую. Писать g. или global. - разницы почти не несет, если объект g постоянный. Тут уже дело удобства. Плюс лишний объект-контроллер.
druce.ucoz.ru|andrewsweekly.livejournal.com|А OneStep тем временем мертв.
|
| |
| | |
|
NewStrannik
| Дата: Вторник, 21.04.2009, 18:31 | Сообщение # 43 |
Всех уже задолбал
Группа: Проверенные
Сообщений: 808
Статус: Offline
|
Краткий вывод: - Использовать global.* или <persistent object>.* дело вкуса, не боле. - Если используешь globalvar, то лучше всего давать специфичные названия (к примеру: gLevelQuality), иначе может быть путаница. От себя: Всё! Хватить мудрить, если руки из нужного места растут, всё будет отлично! К тому же, для того, чтобы не потерялась "структуризация программы и другая х**ня", многие прописывают глобальные переменные в "главном" объекте, чаще всего в контроллере ...
Сообщение отредактировал NewStrannik - Вторник, 21.04.2009, 18:32 |
| |
| | |
|
Ang3L
| Дата: Вторник, 21.04.2009, 19:18 | Сообщение # 44 |
Каждый 5й пост мой
Группа: Админы
Сообщений: 2667
Статус: Offline
|
Quote (Druce) Ну например ты сделал меню в той же комнате, где и сама игра. Пусть у тебя в меню игра останавливается. Как образцу это определить? Посмотреть global.menu_on. Если она 1, то обновляем образец, иначе объекты меню. У меня, создаётся сурф, на него отрисовывается кадр и отрубаем все образцы отвечающие за игровую составляющую и включаем отвечающую за меню, паузу и т.д. Quote (Druce) но зачем создавать объект, если есть объект global? А куда ты денешь объект где посчитал сколько клеток? И почему бы не хранить в нём кол-во клеток? Quote (Druce) либо сам объект, кторый меняет переменную (шлет данные) сам проверяет все для него необходимое, перед тем как изменять. Раздающий(контроллер) один, а принимающих объектов куча. Quote - Использовать global.* или <persistent object>.* дело вкуса, не боле. Тебя даже не пугает что в persistent object ещё можно кучу кода написать. Quote (Druce) Что это меняет? Ничего.
Blogpost
|
| |
| | |
|
NewStrannik
| Дата: Вторник, 21.04.2009, 19:23 | Сообщение # 45 |
Всех уже задолбал
Группа: Проверенные
Сообщений: 808
Статус: Offline
|
Ang3L, совершенно пофигу. Я ниже написал, что чаще всего глобальные переменные пишутся в контроллере.
|
| |
| | |
|
Druce
| Дата: Вторник, 21.04.2009, 19:30 | Сообщение # 46 |
Каждый 5й пост мой
Группа: Страж
Сообщений: 1543
Статус: Offline
|
Ang3L, ладно, короче заколебало меня с тобой спорить)) Тока все же, что ты подразумевал под Quote (Ang3L) Теряется структуризация программы. ? А в остальном Станник верно глаголит. Я пришел к выводу, что глобал и персистент объект - исключительно дело вкуса, не более, ни один из методов не лучше и не хуже. Правда для глобала не нужен лишний объект, но это не важно. Добавлено (21.04.2009, 19:30) --------------------------------------------- Ang3L, чем мудрить, иди лучше порисуй, на тебе 3 тайла висят.
druce.ucoz.ru|andrewsweekly.livejournal.com|А OneStep тем временем мертв.
|
| |
| | |
|
Ang3L
| Дата: Вторник, 21.04.2009, 20:00 | Сообщение # 47 |
Каждый 5й пост мой
Группа: Админы
Сообщений: 2667
Статус: Offline
|
Blogpost
|
| |
| | |
|
SRes
| Дата: Вторник, 21.04.2009, 20:05 | Сообщение # 48 |
Каждый 5й пост мой
Группа: Страж
Сообщений: 2512
Статус: Offline
|
Кто мешает написать global.EnemyHP или g.EnemyHP? Какая нахрен разница ? Народ, это попахивает бредом. Спор беспочвенный, мы же не спорим что круче : • i += 1 • i = i + 1 Давайте спорить ?
Velociped Inc.
Сообщение отредактировал SRes - Вторник, 21.04.2009, 20:53 |
| |
| | |
|
Ang3L
| Дата: Вторник, 21.04.2009, 20:10 | Сообщение # 49 |
Каждый 5й пост мой
Группа: Админы
Сообщений: 2667
Статус: Offline
|
Quote (SRes) Кто мешает написать global.EnemyHP или g.EnemyHP? Какая нахрен разница ? Да ёпти! Не в этом дело!!!!!!!!!!!!!! SRes, читай пост №41, 3 пункта!!! Прочитай 50, 100, а лучше тысячу раз!
Blogpost
|
| |
| | |
|
SRes
| Дата: Вторник, 21.04.2009, 20:12 | Сообщение # 50 |
Каждый 5й пост мой
Группа: Страж
Сообщений: 2512
Статус: Offline
|
Мне эти "аргументы" не являются понятными\вещественными. А третий вообще придуманный на ходу.
Velociped Inc.
|
| |
| | |
|
splean
| Дата: Вторник, 21.04.2009, 20:16 | Сообщение # 51 |
Каждый 5й пост мой
Группа: Админы
Сообщений: 1473
Статус: Offline
|
Я счас всех умников, которые указывают надо мудрить или нет, заставлю капчу вводить при каждом сообщении! Если не видите смысла в обсуждении, не лезьте. Вот тебе твоя же картинка, если посмотреть на GLOBAL. как на объект. Что то изменилось? Ничего, а уже все структурировано.
Блог? Твиттер! =)
|
| |
| | |
|
Ang3L
| Дата: Вторник, 21.04.2009, 20:17 | Сообщение # 52 |
Каждый 5й пост мой
Группа: Админы
Сообщений: 2667
Статус: Offline
|
Quote (SRes) А третий вообще придуманный на ходу. Да! Действительно! Все такие мудаки, 20 лет это вырабатывали, а ты пришёл и сказал: мне это не понятно и ваще это нах не нужно! Да. Конечно!
Blogpost
|
| |
| | |
|
Ang3L
| Дата: Вторник, 21.04.2009, 20:18 | Сообщение # 53 |
Каждый 5й пост мой
Группа: Админы
Сообщений: 2667
Статус: Offline
|
splean, ты не можешь смотреть на него через призму объекта, т.к. доступа к нему не имеешь. А вот к обычному объекту да.
Blogpost
|
| |
| | |
|
Ang3L
| Дата: Вторник, 21.04.2009, 20:24 | Сообщение # 54 |
Каждый 5й пост мой
Группа: Админы
Сообщений: 2667
Статус: Offline
|
Quote (splean) если посмотреть на GLOBAL. как на объект. И вообще, это только предположение. Это может быть и не объект. Я незнаю как Марк сделал. Корочь. Мне самому уже надоело. Все остались при своих. Кто как хочет, тот так и программирует. Теми способами, что я пользуюсь, не я выдумал. Всё проверено 20летним опытом. Мой "учитель" с коллегами делали ось, но им пришлось её переделывать, потому что плохо продумали и использовали плохо структурированную иерархию. Ессесно, всё пошло по3.14зде, когда всё собрали. Поэтому у меня есть причина верить ему. И я собирал опыт других не глупых людей.
Blogpost
|
| |
| | |
|
Ang3L
| Дата: Вторник, 21.04.2009, 20:28 | Сообщение # 55 |
Каждый 5й пост мой
Группа: Админы
Сообщений: 2667
Статус: Offline
|
Quote (splean) но я его точку зрения не разделяю Я ща сделаю финт ушами! Поставлю этот вопрос на форуме программистов. т.к. инфы так и не нашёл.
Blogpost
|
| |
| | |
|
splean
| Дата: Вторник, 21.04.2009, 21:15 | Сообщение # 56 |
Каждый 5й пост мой
Группа: Админы
Сообщений: 1473
Статус: Offline
|
речь то не о высокоуровневых языках. парадигмы хоть и те же, да только масштабы здесь меньше на несколько порядков. Добавлено (21.04.2009, 21:15) --------------------------------------------- Так-с, продолжим культурно-развлекательную программу. Quote (Ang3L) т.к. доступа к нему не имеешь. А вот к обычному объекту да. Вопрос, а зачем нам иметь к нему доступ? Следить за валидностью изменений? А если все проверки проводить ДО изменения? Тогда не нужно относиться к global-у как к объекту. Повторюсь, речь идет о GM и его маленьком семейном кругу. NewStrannik нарисовал то же самое почти
Блог? Твиттер! =)
|
| |
| | |
|
Ang3L
| Дата: Четверг, 23.04.2009, 23:57 | Сообщение # 57 |
Каждый 5й пост мой
Группа: Админы
Сообщений: 2667
Статус: Offline
|
Бъярн Страуструп: "Если в программе используются глобальные переменные, то часто это указывает на то, что структура не до конца проработана, и поэтому требуется некоторая оптимизация." "Кроме того, если в программе есть паралельные вычисления, использование одной глобальной переменной для сигнализаций о разных ошибках неизбежно приведёт к катастрофе."
Blogpost
|
| |
| | |
|
NewStrannik
| Дата: Пятница, 24.04.2009, 03:53 | Сообщение # 58 |
Всех уже задолбал
Группа: Проверенные
Сообщений: 808
Статус: Offline
|
Зачем ты GML сравниваешь с C++? ГМ создан для обучения алгоритмизации, а Си++ чистой воды язык программирования. На ГМ использование глобальных переменных ни к чему плохому не приводит и на структуризированность не влияет. К тому же, какие нах в ГМ параллельные вычисления?!
|
| |
| | |
|
Ang3L
| Дата: Пятница, 24.04.2009, 14:11 | Сообщение # 59 |
Каждый 5й пост мой
Группа: Админы
Сообщений: 2667
Статус: Offline
|
Quote (NewStrannik) ГМ создан для обучения алгоритмизации Вот и учись как надо! Quote (NewStrannik) К тому же, какие нах в ГМ параллельные вычисления?! GMThreads.dll
Blogpost
|
| |
| | |
|
splean
| Дата: Пятница, 24.04.2009, 14:13 | Сообщение # 60 |
Каждый 5й пост мой
Группа: Админы
Сообщений: 1473
Статус: Offline
|
Quote (Ang3L) Вот и учись как надо! начинать людям надо с малого, а не с советов Страуструпа Quote (Ang3L) GMThreads.dll 1 использование на 10 миллионов запуска GM. "по фен-шую" вроде бы и некрасиво использовать глобалы, но в рамках ГМ - вполне приемлимо и оправдано.
Блог? Твиттер! =)
|
| |
| |
|
|