powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / "двухслойное" программирование?
8 сообщений из 8, страница 1 из 1
"двухслойное" программирование?
    #32053247
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, коллеги.

Я хотел бы обсудить следующую тему. Пусть у нас есть некая сложная задача, под которую мы пишем сложный большой проект ...
(У меня, в самом деле, есть такая задача, и пишу я на VBA, собственно, поэтому и задаю вопрос на данном Форуме.)

Каждая "система" программирования (язык, оболочка и т.п.) дает некоторый фиксированный инструментарий для написания программ: более или менее мощный, с одной стороны, и - более или менее "дружелюбный" (легко осваиваемый и комфортный и применении) - с другой.

С другой стороны, - если мы имеем достаточный кругозор и какой-то достаточно обширный набор идей о том, что такое "эффективное программирование", - то у нас неизбежно возникает желание применить эти идеи в своем проекте ... Соответственно, постепенно выстраивается целый пласт своих собственных инструментов, расширяющих стандартные возможности используемой системы программирования. При этом на любом современном языке программирования (например, на VB) можно создавать эти "специальные инструменты программирования" практически неограниченной сложности и мощности ...

Соответственно, у меня есть три вопроса: первый - достаточно абстрактный - как должен быть устроен этот слой собственных инструментов программирования, и как должен он взаимодействовать с основным "предметным" проектом?

Второй вопрос - организационный: где в рунете обсуждаются подобные вопросы (желательно - на материале VB)? Как мне найти "единомышленников" по данной теме?

Третий вопрос более конкретный: предположим, я хочу, чтобы основной текст кода проекта был написан в стандартных средствах VB, но чтобы на всем протяжении этого "стандартно-предметного" кода были расставлены специальные "люки", через которые программа уходила бы "наверх" в слой мета-программы, обеспечивающей эти самые дополнительные, повышающие эффективность проекта как целого процедуры ... Есть ли у кого-нибудь какие-то наработки, или идеи, или интересы в этой области? Существуют ли в этой сфере какие-то "стандарты", или, например, библиотеки мета-инструментов?

НП, Иван FXS
...
Рейтинг: 0 / 0
"двухслойное" программирование?
    #32053260
dao
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ответ на ваш вопрос - ActiveX-компоненты (или OCX-компоненты)
...
Рейтинг: 0 / 0
"двухслойное" программирование?
    #32053432
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, dao

"ActiveX-компоненты (или OCX-компоненты)" - это же ведь ФОРМА: технология создания, хранения и "подключения" к проекту некоторых дополнительных "служб" или "ресурсов" ... А я-то веду речь о СОДЕРЖАТЕЛЬНОЙ стороне этих ресурсов ...

НП, Иван FXS
...
Рейтинг: 0 / 0
"двухслойное" программирование?
    #32053487
Артем
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.
А функциональность и скорость?

Обычно вставляя дополнительные уровни, между процессором и программистом, мы усложняем планы компиляции, и как результат получаем менее оптимизированный код. Не так ли?

dao, прав хорошо написаный OCX с большой функциональностью легко заменит всякие надстройки.
Спускаться вниз всегда легче, чем лезть наверх.

Вопрос в том Что мы хотим добиться вставляя meta-тэги в текст базовых модулей?

С Уважением,
Артем
...
Рейтинг: 0 / 0
"двухслойное" программирование?
    #32053835
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, Артем

"Что мы хотим добиться вставляя meta-тэги в текст базовых модулей?"
- надстраивание над "предметным" проектом ИНТЕГРИРОВАННОГО мета-проекта ("этажа"), абстрагированного от конкретного "материала" нижнего этажа и нацеленного на ЭФФЕКТИВНОСТЬ работы проекта.
В частности, непротиворечивость (например, - debug), но - много чего еще ... давайте уж произнесу и "страшное" слово ИИ ;-)

НП, Иван FXS
...
Рейтинг: 0 / 0
"двухслойное" программирование?
    #32053852
Артем
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте Иван.

> в частности, непротиворечивость (например, - debug),
Мы все в процессе работы обрастаем различными dllями, модулями и проч. непонятного или абсолютно понятного направления и происхождения.

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

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

Не зря же сказано: "Коль сапоги начнет тачать пирожник"
Много людей не за зря получают свои не маленькие деньги, только за то что взяв клаву в руки, зубы и т.д кому как удобно. Фантазируют потому что в основном труд программиста - это труд творческий, как у художника.

Участие в проекте постановщика задачи, просто позволяет направить творческую энергию в правильное русло. Не дать в конце концов захлебнуться в потоке пива.

Если я правильно Вас понял и вообще веду речь о том о чем и Вы. Но это так моё мнение.

Собственно VB как и любой другой язык верхнего уровня и есть надстройка к компилятору.

Проект должен быть в первую очередь грамотно спроектирован, а уж тогда и прогу до него сваять дело техники. :-)
...
Рейтинг: 0 / 0
"двухслойное" программирование?
    #32053904
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Артем.
> Вы хотите строить большие пректы не прикасаясь к клавиатуре... по дизайнерски орудуя мышкой

- вот уж чего нет, того нет: про "мышку" я ни слова не сказал!

> кто будет давать гарантии в работоспособности программных модулей разработаных каким-нибудь супер-пупер программным процессором.

- "программный процессор" - это про мое "ИИ"? Нет, я не предполагаю, что ИИ со "второго этажа" будет САМ писать код 1-го этажа ... А вот позволять нам регулировать степень нашего конроля за "кодом 1-го этажа" он будет (в частности - управлять тем, какая информация - насколько подробная - сбрасывается в лог-файл).

> VB как и любой другой язык верхнего уровня и есть надстройка к компилятору

- отлично, Вы говорите, что этажа уже два (первый, правда, "не наш" ...)? Значит я предлагаю надстроить третий!

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

- сорри, как это Вы разделяете "проект" и "прогу"? Вы сами что ли делаете только второе? А кто тогда для Вас "проект проектирует"?
-----------------------------------------
2 All.
Здравствуйте, коллеги

Например, конструкция "люка на второй этаж" могла бы выглядеть так, как в приведенном ниже листинге. В качестве комментария:
1. "Вставки" в процедуры нижнего этажа состоят из стандартного набора строк, от процедуры к процедуре меняется только конкретный литерал - значение константы cnst_ThisSFP_Name
2. Вставка составлена так, что если мы у Static SFP поменяем тип с SFP_Type на SFP0_Type, то вставка превратится в "баластную", но весьма необременительную: эквивалентную просто трем "холостым" GoTo.

НП, Иван FXS

'############################ Project First_Floor ################
Public Const cnst_ThisProject_Name = "First_Floor"
...
'================== Module myModule_bas =======================
Const cnst_ThisVBC_Name = "myModule_bas"
...
Function mySin(x As Double)
Const cnst_ThisSFP_Name = "Function mySin(x As Double)"
SFP0: Static SFP As SFP_Type: On SFP.o.SFPEntry GoTo SFP1, SFP2, SFP3, SFPEnd: GoTo SFP3
SFP1: SFPInit cnst_ThisSFP_Name, cnst_ThisVBC_Name, cnst_ThisProject_Name, SFP.o: GoTo SFP0
SFP2: Stop
SFP3:
'------------------ body of function ------------------
mySin = Sin(x)
'------------------------------------------------------
EndSFP: On SFP.o.SFPExit GoTo SFP1, SFP2, SFP3, SFPEnd, SFP0
SFPEnd: End Function
...
'====================== EndOf Module ==========================
...
'###################### EndOf Project #############################
'############################ Project Second_Floor ################
Public Const cnst_ThisProject_Name = "Second_Floor"
...
'================== Module SFP_bas ============================
Const cnst_ThisVBC_Name = "SFP_bas"
Type o0_Type: SFPEntry As Byte: SFPExit As Byte: End Type
Public Type SFP0_Type: o As o0_Type: End Type
'-----------------------------------------------------------
Public Type SFP_Type: o As New SFP_cls: End Type
Public Current_SFP As New SFP_cls
Public SFPs_Collection As New Collection, SFPsCollection_Counter As Long
...
'=================== EndOf Module =============================
...
'=================== Class SFP_cls ============================
Const cnst_ThisVBC_Name = "SFP_cls"
Public Class_Name As String
Public id_in_Collection As Long
...
Public Function SFPEntry() As Byte
Set Current_SFP = Me
...
SFPEntry = ...
If SFPEntry = 4 Then Set Current_SFP = Nothing
SFPEnd: End Function

Public Function SFPExit() As Byte
Set Current_SFP = Me
...
SFPExit = ...
If SFPExit = 4 Then Set Current_SFP = Nothing
SFPEnd: End Function
...
Private Sub Class_Initialize()
Let Class_Name = cnst_ThisVBC_Name
SFPsCollection_Counter = SFPsCollection_Counter + 1
id_in_Collection = SFPsCollection_Counter
SFPs_Collection.Add Me, CStr(id_in_Collection)
...
Debug.Print "Class_Initialize:" & cnst_ThisVBC_Name & " " & id_in_Collection
EndSFP: End Sub

Private Sub Class_Terminate()
SFPs_Collection.Remove CStr(id_in_Collection)
EndSFP: End Sub
'====================== EndOf Class ==========================
'###################### EndOf Project #############################
...
Рейтинг: 0 / 0
"двухслойное" программирование?
    #32053925
Артем
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проект и прога - это действительно две большие разницы.
К счастью.

Прога - это проекция большого творческого труда коллектива разработчиков, менеджера проектов, заказчиков (читать проекта).

написать более менее рабочую прогу может каждый, а вот сделать проект от первого разговора с заказчиком до последней бутылки шампанского, довести его до стоящей реализации дело сложное. Кнопки на клавиатуре мы все жать умеем.

Но это уже флейм абсолютно не по теме...

С уважением.
Артем.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / "двухслойное" программирование?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]