|
про константы
|
|||
---|---|---|---|
#18+
тут наткнулся на информационно-ёмкую тему по сабжу выжимка: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55.
вопрос: когда в проекте разного рода неизменяемые данные всплывают то там, то сям в некоторых файлах например: map на 1000 пар и прочие контейнеры, одиночные значения, и т.д. идеально ли раздать им всем const, завернуть в "namespace consts" И запихнуть всё в consts.h потом подключить в main.cpp и, когда надо, дёргать consts::GLOBAL_CONST_VAR в любом месте проекта ? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2019, 18:15 |
|
про константы
|
|||
---|---|---|---|
#18+
Любую идею можно довести до абсурда. Поздравляю, Вам это удалось с модульностью/инкапсуляцией. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2019, 18:25 |
|
про константы
|
|||
---|---|---|---|
#18+
полудух, Разделить все на данные из базы (1000пар), конфиги и глобальные константы. полудухconsts::GLOBAL_CONST_VAR в любом месте проекта ?у меня именно так. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2019, 19:17 |
|
про константы
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovЛюбую идею можно довести до абсурда. Поздравляю, Вам это удалось с модульностью/инкапсуляцией. в чём абсурд? PetroNotC Sharpполудух, Разделить все на данные из базы (1000пар), конфиги и глобальные константы. и каждому свой namespace ? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2019, 19:33 |
|
про константы
|
|||
---|---|---|---|
#18+
полудухкаждому свой namespace ?какая переменная? Если число пи, то одно на всех. Если на один из проектов в решении, то уникальность в этих пределах. Они же вложенные могут быть. Вроде главное не засирать глобальное пространство имен). ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2019, 20:31 |
|
про константы
|
|||
---|---|---|---|
#18+
полудухв чём абсурд? Запихнуть в один модуль сущности, не связанные между собой. Это разновидность анти-паттерна God Object. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2019, 19:38 |
|
про константы
|
|||
---|---|---|---|
#18+
нет, когда про модули это понятно, что каждому модулю своё ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2019, 20:52 |
|
про константы
|
|||
---|---|---|---|
#18+
Тема про константы или про модули? Тут вроде как сам термин "модули" еще не устоялся чтобы про них говорить. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2019, 22:51 |
|
про константы
|
|||
---|---|---|---|
#18+
полудухидеально ли раздать им всем Озвучь критерий идеальности, пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2019, 13:30 |
|
про константы
|
|||
---|---|---|---|
#18+
я что-то пропустил а что, мапы уже в константы можно загнать? вот прямо что бы в Compile Time готовая структура образовалась без всяких лишних движений при инициализации? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2019, 14:07 |
|
про константы
|
|||
---|---|---|---|
#18+
kealon(Ruslan), Ну загони парой строк кода из файла рядом с программа.exe. Только странно список аэропортов или городов там держать без БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2019, 15:07 |
|
про константы
|
|||
---|---|---|---|
#18+
MasterZivполудухидеально ли раздать им всем Озвучь критерий идеальности, пожалуйста. с т.з. правильно/не правильно ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2019, 15:09 |
|
про константы
|
|||
---|---|---|---|
#18+
PetroNotC Sharpkealon(Ruslan), Ну загони парой строк кода из файла рядом с программа.exe. Только странно список аэропортов или городов там держать без БД. ну конфиги могут быть длинные ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2019, 15:10 |
|
про константы
|
|||
---|---|---|---|
#18+
PetroNotC SharpТут вроде как сам термин "модули" еще не устоялся чтобы про них говорить. Модуль - единица сборки. В текущем состоянии С++ это файл .cpp. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2019, 15:11 |
|
про константы
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovВ текущем состоянии С++ это файл .cpp.понял) полудухконфиги могут быть длинныене делайте длинными. Они для админов. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2019, 15:23 |
|
про константы
|
|||
---|---|---|---|
#18+
kealon(Ruslan)я что-то пропустил а что, мапы уже в константы можно загнать? вот прямо что бы в Compile Time готовая структура образовалась без всяких лишних движений при инициализации? Можно. https://github.com/serge-sans-paille/frozen ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2019, 16:51 |
|
про константы
|
|||
---|---|---|---|
#18+
PetroNotC Sharpполудухкаждому свой namespace ?какая переменная? Если число пи, то одно на всех. Если на один из проектов в решении, то уникальность в этих пределах. Они же вложенные могут быть. Вроде главное не засирать глобальное пространство имен). нет единого числа Пи, его никто не видел. Для каждого свое в меру точности. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 11:26 |
|
про константы
|
|||
---|---|---|---|
#18+
Ролг Хупин, попробуйте в 11-й раз по теме топика. Контекст топика это модули и проект. А не все люди на планете. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 12:03 |
|
про константы
|
|||
---|---|---|---|
#18+
Ролг Хупин, Вы не тянете на программирование в плюсах. Идите в шарп. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 12:04 |
|
про константы
|
|||
---|---|---|---|
#18+
полудух, Если "раздать им всем const,", то не получится сконструировать "map на 1000 пар и прочие контейнеры". Видимо, приличный вариант - это в cpp сделать static объекты, их заполнить, а вовне вынести extern const TYPE& (ссылку на константный объект). ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 14:22 |
|
про константы
|
|||
---|---|---|---|
#18+
ну я, Так: Код: plaintext 1. 2. 3. 4. 5. 6.
? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 14:59 |
|
про константы
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Внутри cpp долго и нудно инитишь статичную для модуля iMY_VAL, наружу показываешь ссылку на константный объект. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 15:13 |
|
про константы
|
|||
---|---|---|---|
#18+
Опечатался со static Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 15:15 |
|
про константы
|
|||
---|---|---|---|
#18+
ну ядолго и нудноа как быстро и весело?))) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 15:17 |
|
про константы
|
|||
---|---|---|---|
#18+
ну я Код: plaintext 1.
а зачем ссыль? Это я не понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 15:18 |
|
про константы
|
|||
---|---|---|---|
#18+
PetroNotC Sharpну я Код: plaintext 1.
а зачем ссыль? Это я не понял. Потому что вместо int в реальном коде требуется "map на 1000 пар и прочие контейнеры", а такие надо инитить только через конструктор копирования из уже подготовленного контейнера, а там "на 1000 пар и прочие". Двойные прогоны - оно конечно, но все же не гуд. А так имеем объект который изнутри менять можем, а снаружи можем только сослаться как на константный. Или мсье одарен не понять любое слово? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 17:50 |
|
про константы
|
|||
---|---|---|---|
#18+
ну я, Я же пример простых типов приводил. Так? И для простых типов он верный. Так? А глобальная переменная для класса это оксюморон. Для мапов, векторов и т.д. этот пример не катит. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 18:07 |
|
про константы
|
|||
---|---|---|---|
#18+
ну яреальном коде требуется "map на 1000 пар и прочие контейнеры", ау меня грузится контейнер сцены (треугольники) из двоичного файла. Не знаю зачем автор совместил в вопросе все подряд. Разные подходы, код и паттерны.. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 18:45 |
|
про константы
|
|||
---|---|---|---|
#18+
PetroNotC Sharpну я Код: plaintext 1.
а зачем ссыль? Это я не понял. Тут более подробно раскрыта тема, и её подводные камни ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 05:16 |
|
про константы
|
|||
---|---|---|---|
#18+
CEMb, Ок. В сухом остатке, у меня на 20 глобальных констант это 40 строчек кода. Если для флага ТолькоЧтение требуется сделать 60 строк вместо 40, то я это делать не буду. Оверхед. От всего не защитится. А если кто переопределит константу большими буквами (число Пи), тот сам себе ССЗБ. Со второй стороны, я же могу просто обернуть сразу все 20 структурой const и вопрос решен. С третьей стороны, добавление указателя не защитит ведь от его обнуления? Glob::MY_VAL_PTR = NULL. Imho ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 07:47 |
|
про константы
|
|||
---|---|---|---|
#18+
Сферические константы в вакууме ты можешь оборачивать чем угодно. Но реальные константы обычно принадлежат вполне конкретным сущностям и сваливать их в братскую могилу только добавляет бардака. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 12:39 |
|
про константы
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovСферические константы в вакууме ты можешь оборачивать чем угодно. Но реальные константы обычно принадлежат вполне конкретным сущностям и сваливать их в братскую могилу только добавляет бардака.вроде ты свалил, а не я. Пример был про namespace Globals и модуль globals.h. Это реальный проект. У вас таких нет? Мне жаль. Зы. Константы сущностей лежат в классе и модуле этой сущности. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 12:49 |
|
про константы
|
|||
---|---|---|---|
#18+
PetroNotC SharpЭто реальный проект. У вас таких нет? Мне жаль.Что же вас всех тянет на глобальные обобщения по результатам обзора своего местечкого болотца??? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 12:51 |
|
про константы
|
|||
---|---|---|---|
#18+
Basil A. Sidorovболотцаобобщили? Лучше код давайте. А о том что константы сущностей не должны быть раскиданы, это СЕМЬ сказал)))). Вы его ссылку почитайте. Конретнее давайте) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 12:54 |
|
про константы
|
|||
---|---|---|---|
#18+
PetroNotC SharpПример был про namespace Globals и модуль globals.h. Это реальный проект. У вас таких нет? Были в унаследованном проекте. Больше нет: расползлись по осмысленным местам в результате реструктуризации спагетти-кода в ООД. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 13:05 |
|
про константы
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovPetroNotC SharpПример был про namespace Globals и модуль globals.h. Это реальный проект. У вас таких нет? Были в унаследованном проекте. Больше нет: расползлись по осмысленным местам в результате реструктуризации спагетти-кода в ООД.ну мы же не максималисты? Конечно глобальные это зло. Но практически во всех либах я вижу _несколько_ глобальных на всю либу. Иначе ждём ТСа про какие константы он вообще вещает. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 13:30 |
|
про константы
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Кстати глобальные у меня появились после замены их из #define в старом проекте. Как то тут выяснял что это правильно в плюсах. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 13:34 |
|
про константы
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovБольше нет: расползлись по осмысленным местам в результате реструктуризации спагетти-кода в ООД.У нас как-то так же. Глобальных констант нет, все сидят в тематических местах, namespace-ах или классах. PetroNotC SharpКонечно глобальные это зло.Это просто не совсем удобно. Я бы не стал вешать ярлыки "зло" на какие-то языковые конструкции и методологии, это всегда порождает неправильную реакцию у многих людей: они сразу принимают это на веру, что ведёт к другим печальным последствиям. Важно понимать, почему это неудобно: открываешь проект через пять лет, видишь константу, даже с понятным именем, но всё равно сложно понять, зачем она, где описана и где используется. Когда она в коде торчит из конкретного namespace, объекта или класса - это более понятно. А ещё можно использовать более простые имена. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2019, 06:36 |
|
про константы
|
|||
---|---|---|---|
#18+
CEMb, Я согласен что ПРОСТО КОНСТАНТА БЕЗ namespace это крайне неудобно. У меня ни одной такой. В java сам язык не позволяет такую завести. Под термином "глобальная константа" предлагаю в топике считать те что в отдельном файле на весь проект и в namespace. Если вы не против. Или еще кто то остался по старому?)) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2019, 08:03 |
|
про константы
|
|||
---|---|---|---|
#18+
CEMbони сразу принимают это на веруна веру счас никто не принимает. Особенно молодёжь) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2019, 08:05 |
|
|
start [/forum/topic.php?all=1&fid=57&tid=2017575]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 157ms |
0 / 0 |