CftClub.ru
Клуб специалистов ЦФТ-Банк

Маленькие ошибки с большими ... - макросы
На страницу 1, 2  След.
 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
oradba81
Гость



СообщениеЧт Дек 09, 2010 18:18   Маленькие ошибки с большими ... - макросы Ответить с цитатой
Полезность: Нет оценки
цикл тем о том "КАК НЕ надо Делать".

в контексте:
http://www.cftclub.ru/viewtopic.php?t=1752

про "макросы"

Код:
pragma macro('f', 'function', substitute);
pragma macro('p', 'procedure', substitute);
pragma macro('s', 'select', substitute);
pragma macro('be', 'begin', substitute);
pragma macro('fin', 'end', substitute);
pragma macro('wh', 'locate', substitute);
pragma macro('b', 'boolean', substitute);
pragma macro('usl', 'where', substitute);

&f yo(n number) return boolean
is
  acc ref [acc];
&be
  &wh acc in ::[acc] &usl acc.[USER] = stdlib.user_id;
&fin;


All rights ® oradba81@mail.ru
Admin
Site Admin


Вступление в Клуб: 09.06.2007
СообщениеЧт Дек 09, 2010 22:58   Re: Маленькие ошибки с большими ... - макросы Ответить с цитатой
Полезность: Нет оценки
oradba81 пишет:
Код:
pragma macro('f', 'function', substitute);
pragma macro('p', 'procedure', substitute);
pragma macro('s', 'select', substitute);
pragma macro('be', 'begin', substitute);
pragma macro('fin', 'end', substitute);
pragma macro('wh', 'locate', substitute);
pragma macro('b', 'boolean', substitute);
pragma macro('usl', 'where', substitute);

&f yo(n number) return boolean
is
  acc ref [acc];
&be
  &wh acc in ::[acc] &usl acc.[USER] = stdlib.user_id;
&fin;


Заменять каждый чих макросом очевидно глупо. Вы встречали такое на практике или фантазируете?

И почему у функции нет return ?
r00st
Эксперт


Вступление в Клуб: 14.09.2007
СообщениеПт Дек 10, 2010 10:32    Ответить с цитатой
Полезность: Нет оценки
Позабавило "&fin." Смысловая нагрузка не то, чтоб нулевая, я бы сказал отрицательная Smile
oradba81
Гость



СообщениеПт Дек 10, 2010 10:49   Re: Маленькие ошибки с большими ... - макросы Ответить с цитатой
Полезность: Нет оценки
Admin пишет:
oradba81 пишет:
Код:
pragma macro('f', 'function', substitute);
pragma macro('p', 'procedure', substitute);
pragma macro('s', 'select', substitute);
pragma macro('be', 'begin', substitute);
pragma macro('fin', 'end', substitute);
pragma macro('wh', 'locate', substitute);
pragma macro('b', 'boolean', substitute);
pragma macro('usl', 'where', substitute);

&f yo(n number) return boolean
is
  acc ref [acc];
&be
  &wh acc in ::[acc] &usl acc.[USER] = stdlib.user_id;
&fin;


Заменять каждый чих макросом очевидно глупо. Вы встречали такое на практике или фантазируете?

И почему у функции нет return ?


Такие мелочи как return это и детскому саду понятно - акцентирование внимание на них есть - "сравнение самолетов по принципу места мало между сиденьями", а не по надежности и расположению движков, например.

Все примеры из практики (написал же в "контексте", что "Код после цензуры"): - конкретно не указываю дабы их кодерам обидно и стыдно Не было.

Для примера предлагаю глянуть всякие библиотеки с объявленными в них макросами отдельно и подключаемые к другим операциям.
oradba81
Гость



СообщениеПт Дек 10, 2010 10:52    Ответить с цитатой
Полезность: Нет оценки
r00st пишет:
Позабавило "&fin." Смысловая нагрузка не то, чтоб нулевая, я бы сказал отрицательная Smile


Ежу понятно.

Приведи пример, того что можно сделать макросами и НЕЛЬЗЯ сделать обычным PL/SQL. А потом подумай почему в таком разделе я создал тему "про макросы". Тогда я по-ржу Very Happy
r00st
Эксперт


Вступление в Клуб: 14.09.2007
СообщениеПт Дек 10, 2010 10:53    Ответить с цитатой
Полезность: Нет оценки
Цитата:
Все примеры из практики (написал же в "контексте", что "Код после цензуры"): - конкретно не указываю дабы их кодерам обидно и стыдно Не было.

Программерам, пишущим макросы для begin и end, поздно стыдиться. Самое время убиться об стену.
svn
Профи


Вступление в Клуб: 04.02.2008
СообщениеПт Дек 10, 2010 11:43    Ответить с цитатой
Полезность: Нет оценки
карона не мешает?
какой то слив прописных истин или вещей которые в 99.99% случаев не используются
при этом всё с таким пафасом что круче меня только горы.
Малыш - успокойся и будь скромнее и народ к тебе потянется.
oradba81
Гость



СообщениеПт Дек 10, 2010 12:13    Ответить с цитатой
Полезность: Нет оценки
svn пишет:
карона не мешает?
какой то слив прописных истин или вещей которые в 99.99% случаев не используются
при этом всё с таким пафасом что круче меня только горы.
Малыш - успокойся и будь скромнее и народ к тебе потянется.


Это ты Зря так.
Прочитал твой текст внимательно и скажу следующее:
Во первых - Если есть варианты ответов по улучшению кода моих тем, то приводи свой код. Иначе Не занимайся слова-базарством

svn пишет:
какой то слив прописных истин или вещей

Если знаешь свою-истину опубликуй ее ответом. А мы посмотрим насколько твой код лучше и где в нем ошибки. Если не знаешь ответа не разводи Флуд

Во вторых - если ты скромный И всех называешь малышами, и к тебе народ тянется, то мне тебя искренне жаль.

Во третьих - проект внедрежа в НОМОСе насколько знаю недавний, так что ты либо местный спец, либо пришлый, а значит опытный. Поэтому думай что болтать

Если ты такой старый для нас малышей, то приведи ответы хотя бы на 80% моих тем с твоим кодом. И мы все посмотрим на твои знания.
Иначе будет все понятно и мне и другим.

И на последок
Ты сам виноват, ты сам начал.
A_A_A
Профи


Вступление в Клуб: 16.07.2009
СообщениеПт Дек 10, 2010 12:22    Ответить с цитатой
Полезность: Нет оценки
Похоже никто на объявление "о частных уроках" не откликнулся. Smile)
r00st
Эксперт


Вступление в Клуб: 14.09.2007
СообщениеПт Дек 10, 2010 12:56    Ответить с цитатой
Полезность: Нет оценки
A_A_A пишет:
Похоже никто на объявление "о частных уроках" не откликнулся. Smile)

Это триальная версия, для заманухи, так сказать Smile
oradba81
Гость



СообщениеПт Дек 10, 2010 13:06    Ответить с цитатой
Полезность: Нет оценки
r00st пишет:
A_A_A пишет:
Похоже никто на объявление "о частных уроках" не откликнулся. Smile)

Это триальная версия, для заманухи, так сказать Smile


Ты уверен?

Скажу следующее:

Времени почти нет и вместо этого сейчас есть дела более важные.
Хорошенько обдумав решил не тратить драгоценные Вечерние часы,
и выходные, на повышение чужой квалификации.
ggrey
Участник со стажем


Вступление в Клуб: 01.10.2007
СообщениеПт Дек 10, 2010 14:31    Ответить с цитатой
Полезность: Нет оценки
oradba81 пишет:
r00st пишет:
Позабавило "&fin." Смысловая нагрузка не то, чтоб нулевая, я бы сказал отрицательная Smile


Ежу понятно.

Приведи пример, того что можно сделать макросами и НЕЛЬЗЯ сделать обычным PL/SQL. А потом подумай почему в таком разделе я создал тему "про макросы". Тогда я по-ржу Very Happy


Вы читали про вычисляемые макросы? Это когда код генерится на основании, например, словаря. Сделайте это пожалуйста с помощью pl/sql, только не забудьте, что с макросами динамический pl/sql не используется.
oradba81
Гость



СообщениеПт Дек 10, 2010 14:48    Ответить с цитатой
Полезность: Нет оценки
ggrey пишет:
oradba81 пишет:
r00st пишет:
Позабавило "&fin." Смысловая нагрузка не то, чтоб нулевая, я бы сказал отрицательная Smile


Ежу понятно.

Приведи пример, того что можно сделать макросами и НЕЛЬЗЯ сделать обычным PL/SQL. А потом подумай почему в таком разделе я создал тему "про макросы". Тогда я по-ржу Very Happy


Вы читали про вычисляемые макросы? Это когда код генерится на основании, например, словаря. Сделайте это пожалуйста с помощью pl/sql, только не забудьте, что с макросами динамический pl/sql не используется.


Так отлично начали думать )))

Перефразирую твой вопрос про "это когда...":

К примеру макросом код генерится, затем компилируется. В итоге получаем PL/SQL код.
Собственно вопрос: этот код можно было получить с помощью обычного кодирования? Да. Более трудоемко но написать можно.

Вопрос второй: как часто и например в каких продуктах мы имеем такой вот МегаГенератор нового кода на макросах ? Тут имеется ввиду не замена простых вещей, а подстановка других имен ТБП и операций, когда меняется логика с какими сущностями мы работаем. Часто такое? Smile))
Приведите пример продуктов, двух, трех которые были автоматически сгенерированы макросами на основе единого, созданного когда-то, шаблона ?
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеПт Дек 10, 2010 14:53    Ответить с цитатой
Полезность: Нет оценки
oradba81 пишет:
ggrey пишет:
oradba81 пишет:
r00st пишет:
Позабавило "&fin." Смысловая нагрузка не то, чтоб нулевая, я бы сказал отрицательная Smile


Ежу понятно.

Приведи пример, того что можно сделать макросами и НЕЛЬЗЯ сделать обычным PL/SQL. А потом подумай почему в таком разделе я создал тему "про макросы". Тогда я по-ржу Very Happy


Вы читали про вычисляемые макросы? Это когда код генерится на основании, например, словаря. Сделайте это пожалуйста с помощью pl/sql, только не забудьте, что с макросами динамический pl/sql не используется.


Так отлично начали думать )))

Перефразирую твой вопрос про "это когда...":

К примеру макросом код генерится, затем компилируется. В итоге получаем PL/SQL код.
Собственно вопрос: этот код можно было получить с помощью обычного кодирования? Да. Более трудоемко но написать можно.

Вопрос второй: как часто и например в каких продуктах мы имеем такой вот МегаГенератор нового кода на макросах ? Тут имеется ввиду не замена простых вещей, а подстановка других имен ТБП и операций, когда меняется логика с какими сущностями мы работаем. Часто такое? Smile))
Приведите пример продуктов, двух, трех которые были автоматически сгенерированы макросами на основе единого, созданного когда-то, шаблона ?


ЦФТ-Интегратор, при работе в асинхрононм режиме... там динамически генерируются транспортные библиотеки R_LIB и T_LIB когда система является источником.
_________________
всегда есть как минимум 2 выхода
oradba81
Гость



СообщениеПт Дек 10, 2010 14:57    Ответить с цитатой
Полезность: Нет оценки
Alexsey пишет:

ЦФТ-Интегратор, при работе в асинхрононм режиме... там динамически генерируются транспортные библиотеки R_LIB и T_LIB когда система является источником.


Very Happy

Можно ли написать эти библиотеки R_LIB и T_LIB на обычном PL/PLUS без макросов ?
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru