Pull to refresh

Введение в v-agent ориентированное программирование

Reading time5 min
Views13K

Предисловие с извинениями автора и опозданием на три года

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

Только пару недель назад я пришел к выводу, что применение VAOP требует от программиста, прежде всего, понимания, что алгоритм, который он реализует в коде, существует отдельно от самого кода программы, и что в этот алгоритм можно вносить изменения. К сожалению, современные программисты, начиная где-то 20-30 лет назад, стали обходить этап создания блок-схемы алгоритма, который был обязательным на заре программирования. Таким образом, для многих из них алгоритм и код программы стали восприниматься как единое целое, хотя код программы — это лишь инструкция для компьютера, написанная на языке, понятном исполнителю-компьютеру. Когда я спрашивал программистов показать мне алгоритм того, что они закодировали, они обычно указывали на код программы и пытались объяснить мне его работу, не понимая сути моего вопроса.

Вот почему, когда в своей статье я начинаю говорить об алгоритме, изобретенном "яйцеголовым", и затем описываю этот алгоритм с помощью va-script, многие не понимают, о чем идет речь. Как метко заметил мой внук: "Деда, ты пытаешься рассказать о паровозе людям, которые никогда не видели рельсов".

Вот почему, когда на первых занятиях с студентами я объясняю и демонстрирую на примерах, что алгоритм задачи, которую они должны запрограммировать, можно оформить, сохранить и редактировать отдельно от кода его реализации, они начинают осознавать все преимущества, которые предоставляет VAOP.

Затем, прочитав вместе комментарии к моей первой статье на Хабре, студенты честно признаются, что до этого момента они не полностью понимали, что такое алгоритмы и как они могут существовать отдельно. Они осознают, что va-script — это не что иное, как способ записи блок-схемы любого алгоритма, и признают, что без этого объяснения, скорее всего, также не поняли бы сути, подобно тем, кто оставлял комментарии.

Я осознаю свою долю ответственности в этом. Написав ту первую статью на Хабре, я не мог представить, что новое поколение программистов мыслит иначе, чем мы 40 лет назад. Я говорил о рельсах, стрелках и паровозах с вагонами, не учитывая изменения в восприятии. Прошу прощения, ребята. Я был не прав.

Познакомимся с v-agent ориентированным программированием предложенным в 1981 году программистом из России, выпускником МИФИ, Валерием Ракитиным.

Что еще написано автором по этой теме можно найти здесь:
https://vaop.notion.site/Articles-and-useful-resources-524bcff28774477aab091b82149307eb

Внимание! Чистая теория!

v-agent ориентированное программирование (VAOP) - это методология программирования, основанная на представлении алгоритма в виде v-agent script, который позволяет программному агенту, получившему название v-agent, выполнять операции закодированные в модулях v-agent box.

Идеологически v-agent ориентированное программирование - добивается того, чтобы алгоритм был записан в одном месте в виде, понятном всем - заказчикам, програмистам и исполняюшей среде (компьютеру), что улучшает процесс взаимодействия всех при создания программного продукта и, что особенно важно, существенно снижает затраты на этапе поддержания работы и адаптации к изменению внешних условий в Будущем.

Парадокс заключается в том, что мы должны меняться, чтобы все было по-прежнему, поэтому главная задача v-agent ориентированного программирования это обеспечить Бессмертие программного продукта при минимальных вложениях средств в его постоянную модернизацию.

Знание v-agent ориентированном подхода к программированию, будет полезно ни сколько разработчикам, которые получают деньги за не важно по какой методологии, сделанный программный продукт, а заказчикам, которые на долгие годы остаются один на один с проблемами поддержания работы программного продукта и адаптации его к изменению внешних условий. Помните, что Будущее не приходит само! Будущее мы программируем умело или не умело, поэтому надо создавать Ваше программное обеспечение, используя v-agent ориентированное программирование для того, чтобы у Вас было Будущее

Звучит туманно и не конкретно, но без теории нельзя, так как нет в мире ничего практичней хорошей теории.

Зачем, что и как?

Зачем нужно v-agent ориентированное программирование?

Для удобства работы всех участников создания программного продукта - заказчика, программиста и исполняющей среды (компьютера)

Что такое v-agent ориентированное программирование?

Представление апгоритма работы программного продукта в форме "v-agent script", понятной всем участникам разработки - заказчику, программисту и исполняющей среде (компьютеру)

Как работает программный продукт, сделанный по правилам v-agent ориентированного программирования?

Все участники создания программного продукта - заказчик, программист и исполняющая среда (компьютер) используют одну форму записи алгоритма "v-agent script". Такого нет и в одной технологии программирования.

В сравнении с другими технолониями, v-agent ориентированное программирование существенно снижает затраты как на этапе разработки, так и во время сопровождения и обновления программного продукта.

Алгоритм - это модель действий

Сравним различные формы записи алгоритмов и увидим всю уникальность v-agent ориентированного программирования.

v-agent ориентированное программирование инновация в разработке программных продуктов сравнимая с удобствами полученными человечеством при переходе от римской системы счисления к арабской (позиционной).

Сами в этом убедитесь, когда научитесь использовать форму записи алгоритмов "v-agent script"

Обычная реализация алгорима для нахождения суммы элементов массива на языке Python

M = [1,2,7,1]
sum = 0
i = 0
while i < len(M):
    sum = sum + M[i]
    i = i + 1
print("\nsum is [" + str(sum) + ']')
print('\nThe End')   

Применение v-agent ориентированное программирование (VAOP) для нахождения суммы элементов массива на языке Python

actions = {
    "Action_00":{
        "_action_description":{
            "_010":"--> init action",
            "_020":"--> Set array M, i = 0; sum = 0"
        },
        "Direction_10":"Action_10",  "_010":"Done"
    }, 
    "Action_10":{
        "_action_description":{
            "_010":"--> sum = sum + M[i]"
        },
        "Direction_10":"Action_20",  "_010":"Done"
    }, 
    "Action_20":{
        "_action_description":{
            "_010":"--> i = i + 1",
            "_020":"-->if i > len(M) - 1"
        },
        "Direction_10":"Action_END",  "_010":"Yes",
        "Direction_20":"Action_10",  "_020":"No"
    }
}

# init block
M = [1,2,7,1]
sum = 0
i = 0
current_action = "Action_00"
direction = "Direction_10"

while 1 == 1:
    # define next action
    action = actions[current_action][direction]
    previous_action = current_action
    current_action = action    
    print(previous_action,direction,current_action, i, sum)
    print('------------------------')

    if current_action in actions:
        if current_action == "Action_10":
            sum = sum + M[i]  
            direction = "Direction_10" # Done
        if current_action == "Action_20":
            i = i + 1 
            direction = "Direction_20" # No
            if i > len(M) - 1:
                direction = "Direction_10" # Yes
        continue
    break # end of loop where 1 == 1

if current_action.find("END") == 0:
       print("\n\Error: current_action:[" + current_action + "]\n")
if current_action.find("END") != 0:
    print("\nsum is [" + str(sum) + ']')
    print('\nThe End')

От автора

Я, Валерий Ракитин, автор этого комикса, изобретатель и популяризатор v-agent ориентированного программирования (VAOP) не прощаюсь с Вами. За 40 лет у меня накопился богатый опыт применения VAOP как в обработке данный, так и в Веб-программировании и я готов им поделиться.

Tags:
Hubs:
Total votes 11: ↑2 and ↓9-5
Comments214

Articles