![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
Где-то слышал, что нужно избегать глобальных переменных вообще.
Правда ли и почему? -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
Alek86 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
Избегать нужно глобальных неконстантных переменных, ибо их изменение сложно отследить
Число Пи лучше сделать глобальной константой... |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Rickert, ну а ты попробуй придумать сценарий, при котором глобальные переменные будут хорошим решением ;). -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
archimed7592, разработка игр. Глобальные переменные: системные установки, игровой мир, профиль игрока. Теже системные установки необходимы для инициализации окна и обработки событий.
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
так зачем им быть глобальными? можно сделать классы которые будут отвечать за конкретную часть интерфейса инициализации. Можно их сделать статическими внутри классов. |
|||
|
||||
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
Корчое ясно. Всем спасибо!
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
Alek86 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
уточню - ты о ЛЮБЫХ глобальных переменных? имхо, я предложил 1 из сценариев, когда глобальная переменная - самое лучшее решение. ну можно еще в неймспейс Math какой-нить обернуть... |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
неправда точнее нельзя тупо и односторонне следовать какому-то "правилу", если оно не является законом надо руководствоваться здравым смыслом где-то глобальные переменные применять не следует, а где-то они будут очень даже кстати -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 1 Всего: 41 |
если можешь, обходись без них.
если не можешь, КОНЕЧНО СТОИТ ИСПОЛЬЗОВАТЬ ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ. ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ НЕ ЯВЛЯЮТСЯ ПЛОХИМИ. ПРОСТО НАДО БЫТЬ ОСТОРОЖНЫМ. 1 ЕСЛИ ДОПУСТИМ У ТЕБЯ ЕСТЬ ГЛОБАЛЬНАЯ ПЕРЕМЕННАЯ А И В ФУНКЦИИ ЛОКАЛЬНАЯ ПЕРЕМЕННАЯ А, ТО ДЕЙСТВИЕ ГЛОБАЛЬНОЙ ПЕРЕМЕННОЙ ПЕРЕКРОЕТСЯ ЛОКАЛЬНОЙ ПЕРЕМЕННОЙ (В ЭТОЙ ФУНКЦИИ) 2 СЛОЖНО ОТСЛЕЖИВАТЬ ИЗМЕНЕНИЕ ГЛОБАЛЬНЫХ ПЕРЕМЕННЫХ ОДНАКО ЕСЛИ ЕСТЬ МНОГО ПЕРЕМЕННЫХ, КОТОРЫЕ НАДО ПЕРЕДАВАТЬ ИЗ ФУНКЦИИ В ФУНКЦИЮ, ТО Я, НАПРИМЕР, ИСПОЛЬЗУЮ ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ. -------------------- |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
Dmi3ev,
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Угу, о любых. Любой объект помимо своего глобального использования ещё имеет этапы инициализации и финализации, которые необходимо контролировать(как моменты свершения этих этапов, так и процесс их протекания). Без этого контроля глобальная переменная такая же полезная вещь, как, к примеру, неинициализированная локальная переменная. Сразу оговорюсь, что константа - это не переменная ![]()
Возможно, что многих моё мнение шокирует, но, всё же я его выскажу(постараюсь наиболее деликатно). Производство ПО - это целая отрасль в промышленности со своей спецификой, требованиями, ньюансами, etc. В этой самой отрасли есть много разных областей, где правят свои законы. Дык вот, самые большие области - это enterprise & small business: в этих областях секрет успешных проектов заключается в искусстве наиболее эффективно производить легко поддерживаемое ПО, т.е. задачи всего три: 1) потратить наименьшее кол-во ресурсов(время+деньги); 2) уметь подстраивать проект также быстро, как меняются требования заказчика; 3) итоговый проект должен поддаваться поддержке минимальными силами(те же время и деньги). Также есть др. маленькие области, но я упомяну лишь одну, а именно компьютерные игры: в этой области секрет успешных проектов заключается в искусстве максимально быстро производить полотна неподдерживаемого кода у которого всего две задачи: 1) работать; 2) жрать минимум компьютерных ресурсов. Точнее говоря, это не обязательно должны быть полотна и не обязательно неподдерживаемый код, но ввиду жесткой конкуренции получаются именно полотна и именно неподдерживаемого кода ![]() Большинство правил хорошего тона в программировании(аля "global variables is evil") просто напросто не нужны разработчикам КИ. Я не пытаюсь обидеть разработчиков игр - это просто констатация факта, которому, кстати есть простое объяснение ![]() -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
korian |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: 3 Всего: 17 |
archimed7592,
соглашусь тока для маленьких игр, причем для компаний однодневок ![]() во-первых потому, шо если компания постоянно занимается КИ, то повторно используемый код им необходим. а во-вторых, потому шо такое детище как WOW, написать и шоб оно работало (а они его еще и поддерживают, дорабатывают)... без соблюдений правил имху не реально плюс как многие пишут, правильно написанную прогу сделать более быстрой - обычно легко а сделать более быструю прогу правильной - обычно трудно Это сообщение отредактировал(а) korian - 16.3.2008, 03:27 |
|||
|
||||
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
Нет, ты ошибаешься, поверь мне. Сейчас компании ведут политику направленную на разработку движков максимально-расширяемых. То бишь движки наращивают мышцы до такой степени, что на их основе можно было делать новые игры. Разработчики КИ живут ныне продажей движков больше, чем самими играми. Сравнить, 3 года назад движок ку3 стоил 500k$, сейчас движок doom3 стоит порядка 2kk$ -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
archimed7592, голословное утверждение, которые ты не сможешь ничем подтвердить, и я уверен что ты не прав
![]() Если бы все писали "лишь бы работало", то ни о каких аддонах изменяющих функционал и речи бы быть не могло. |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Rickert, vinter, извиняюсь, я забыл дописать, что спорить на этот счёт у меня нет ни времени, ни какого-либо желания.
Уй ты госпади, а 2 кк - это что, предел мечтаний? Ну сколько у них будет продаж движка? И сколько они поимеют с продажи самого дума? -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |