Re: Как наиболее корректно работать с глобальными данными
От: vpchelko  
Дата: 03.07.15 19:24
Оценка:
Здравствуйте, lnkuser, Вы писали:

L>Везде, абсолютно везде пишут что глобальные переменные, объекты это плохо и очень плохо.

L>Но нигде нормального ответа как обходится без них я не нашел. На форуме искал.

Для маленькой утилиты вообще пофиг.
А когда проект разрастается, глобальные переменные вызывают только головную боль. Особенно при разрушении глобальных переменных.

L>Допустим есть класс Log, который инициализируется при старте программы гдето в самом начале main().

L>И есть другие части программы которые работают в разных потоках, там тоже используется Log.

Если твой логер будет использоваться в деструкторе глобальных объектов — будет больно.

L>Как я понял это как раз случай для синглетона:

L>но опять таки, много где пишут мол старайтесь избегать extern. А что использовать взамен тогда???
L>Как правильно спроектированные приложения решают проблему глобальных данных?

Избегать в больших проектах, ибо потом заманаешься фантомные баги фиксить.

А также большие проблемы с доступом к глобальным переменным. Какие гарантии thread safe? Сильно мешает отладке.

И любой чих — может положить все приложение.

Например в хроме, всякие там дескрипторы хранятся в глобальных мапах. И как последствие регулярные баги связные с этим приколом.

L>Какие книги есть по данной тематике (а именно физический дизайн приложения), где бы описывалось как правильно строить программу.


L>Спасибо
Сало Украине, Героям Сала
Отредактировано 03.07.2015 19:40 vpchelko . Предыдущая версия . Еще …
Отредактировано 03.07.2015 19:31 vpchelko . Предыдущая версия .
Отредактировано 03.07.2015 19:28 vpchelko . Предыдущая версия .
Отредактировано 03.07.2015 19:25 vpchelko . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.