|
Функции и процедуры на экспорт | ☑ | ||
---|---|---|---|---|
0
Фантазер
14.04.21
✎
09:18
|
Переделываю стандартные печатные формы и возник один вопрос - почему многие функции и процедуры не имеют опции "экспорт" ?
Почему половина функций и процедур общего модуля не доступны из других мест по причине отсутствия у них опции "экспорт"? Это как-то экономит оперативную память? Или смысл в чем-то другом? |
|||
1
Chameleon1980
14.04.21
✎
09:21
|
потому, что они предназначены для только для вызова из процедур и функций того-же ОМ
т.е. они, как бы служебные (внутренние) по-моему - несложно догадаться |
|||
2
1ctube
14.04.21
✎
09:21
|
Это показывает что функция без экспорта используется в пределах этого модуля
|
|||
3
Chameleon1980
14.04.21
✎
09:22
|
зачем их вообще открывать наружу, если они больше нигде не нужны?
что-бы после точки ИмяОбщегоМодуля. у тебя сарафан нужного и ненужного был? с точки зрения ресурсов не задумывался, но, наверняка требуется доп. расход какой-то |
|||
4
acht
14.04.21
✎
10:08
|
(0) Потому что нет нужды выставять их наружу.
То, что тебе тяжело без этого выполнять твою же задачу "Переделываю стандартные печатные формы", это только твои проблемы, извини. |
|||
5
АнализДанных
14.04.21
✎
10:11
|
(0) (С) Bash.im:
xxx: Каждый раз, когда ты используешь int вместо short - кто-то идет покупать планку оперативы. |
|||
6
fisher
14.04.21
✎
12:14
|
(0) По-идее ничего не экономит. Только на область видимости влияет. В "большом мире" это позволяет разделить внешний программный интерфейс библиотек и внутреннюю реализацию. Что в свою очередь позволяет менять внутреннюю реализацию без опасения, что что-то сломается у пользователей твоей библиотеки после обновления версии (так как ко внутренней реализации пользователи доступа не имели).
В 1С де-факто в этом почти нет смысла. Больше вреда чем пользы. ИМХО, спокойно могли бы упростить язык за счет дефолтового экспорта всего и вся. |
|||
7
АнализДанных
14.04.21
✎
12:24
|
(6) (0) Очень сложно делать рефакторинг кода, когда ты видишь слово "Экспорт". Это значит, что надо править код еще где-то, т.к. эта процедура может вызываться где угодно. Например, в ком соединениях, или это какой-то подключаемый обработчик. Трудоемкость анализа сильно возрастает, если они все экспортные. Если слова "Экспорт" нет, значит не надо анализировать всю конфигурацию.
|
|||
8
acht
14.04.21
✎
12:27
|
(6) > упростить язык за счет дефолтового экспорта всего и вся.
// Счастливой отладки #define private public |
|||
9
hhhh
14.04.21
✎
12:34
|
(6) вот как раз в 1с, все и всё меняют по нескольку раз в месяц. Если открыть внутренние наименования, то вообще наступит полный трындец.
|
|||
10
fisher
14.04.21
✎
12:34
|
(7) Ладно. Погорячился :)
У меня просто от общих модулей подгорает. Если в одном ОМ не закапсулировался, то вынужден экспортиться. Хотя де-факто это может быть внутренняя реализация, охватывающая несколько общих модулей. |
|||
11
mikecool
14.04.21
✎
12:43
|
(8) + #define true false
|
|||
12
fisher
14.04.21
✎
12:56
|
#define return if (std::random(1000) < 2) throw std::exception(); else return
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |