menu
Меню
Drakon.Tech logo
Drakon.Tech
Начать работу
Документация по Drakon.TechПрограммирование на языке ДРАКОНОсновы программирования в Drakon.TechПродвинутые темы программированияПримеры игрThe source codeLegacy tutorials (JavaScript 0.2)

Программирование на языке ДРАКОН

Ru | En

Что такое ДРАКОН?

ДРАКОН — это графический алгоритмический язык, созданный в космической отрасли. Первоначально аэрокосмические инженеры создавали ДРАКОН, чтобы иметь дело с безумной сложностью систем управления космическими аппаратами. Авторы языка ДРАКОН тщательно спроектировали язык таким образом, чтобы снизить когнитивные усилия при работе с алгоритмами. Каждое правило и каждая функциональная возможность ДРАКОНа помогает людям быстрее понимать программы.

Drakon.Tech принёс язык ДРАКОН с небес на землю, позволяя разработчикам применять эту космическую технологию для веб-приложений.

ДРАКОН и JavaScript

Процесс разработки в Drakon.Tech включает следующие шаги:

  1. Разработчик рисует Дракон-схемы в Drakon.Tech IDE.
  2. Генератор кода создаёт JavaScript-функцию для каждой Дракон-схемы (Рис. 1). Drakon.Tech помещает эти функции в JS-файл, который можно выполнить в браузере или Node.js.

Рисунок 1. JavaScript-функция, сгенерированная из Дракон-схемы

JavaScript-функция, сгенерированная из Дракон-схемы

Разработчик задаёт логику алгоритма при помощи графических конструкций языка ДРАКОН. Затем разработчик помещает короткие кусочки кода на языке JavaScript в квадратики на диаграмме. При этом нет необходимости в ключевых словах if, else, for и while, потому что ДРАКОН позаботится о ветвлении и циклах.

В Drakon.Tech мы программируем на обычном JavaScript, но логика алгоритма задаётся графически.

Почему ДРАКОН такой классный

ДРАКОН кардинально меняет то, как человек воспринимает программы. Это прорыв в представлении алгоритмов. С одной стороны, ДРАКОН показывает логику алгоритма ясным и понятным способом. С другой — ДРАКОН даёт порядок и единообразие.

Текст не оптимален для представления алгоритмов

Структурное программирование, основанное на тексте, задаёт поток исполнения при помощи блоков текста с разным отступом. Текст с отступами подчёркивает древоподобную сущность программы, но при этом возникает необходимость раз за разом решать одну и ту же мысленную задачу. Какая строка следующая?

Современные редакторы кода пытаются облегчить решение этой проблемы при помощи вертикальных линий, которые соединяют начало и конец блока. Хотя вертикальная линия действительно помогает найти начало блока, всё равно приходится делать эту раздражающую работу — находить следующую строку (Рис. 2).

Рисунок 2. Определить, что после betterFoo() идёт bar() — задача нетривиальная.

Нетривиальная задача — найти следующу строку в коде с высокой глубиной вложенности

Блок-схемы помогают легко проследить поток исполнения

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

Рисунок 3. На Дракон-схеме очевидно, что после betterFoo() идёт именно bar().

На Дракон-схема очевидно, что после __betterFoo()__ идёт именно __bar()__

Блок-схемам не хватает порядка

Несмотря на достоинства визуального программирования, мало кто программирует блок-схемами. Разработчики предпочитают текстовые языки программирования, основанные на отступах.

Главная причина этого — структурное программирование даёт структуру. Традиционные блок-схемы, напротив, не имеют средств для поддержания порядка и поэтому являются графическим аналогом ужасного оператора goto. Слишком легко превратить блок-схему в нечитаемый клубок стрелок и прямоугольников.

ДРАКОН — это графическое структурное программирование

Графический язык ДРАКОН похож на блок-схемы, но, строго говоря, это не блок-схемы.

ДРАКОН вводит правила и соглашения, благодаря которым получаются ясные и единообразные диаграммы. Эти правила делают ДРАКОН графическим аналогом стуктурного программирования.

ДРАКОН так же превосходит блок-схемы, как структурное программирование превосходит goto.

Figure 4. ДРАКОН и традиционные блок-схемы

ДРАКОН и традиционные блок-схемы

Преимущества языка ДРАКОН

Вот несколько примеров тщательно продуманных правил ДРАКОНа:

  • Пересечения линий запрещены. Только это правило в отдельности устраняет половину проблем с блок-схемами.
  • Разрешены только прямые вертикальные и горизонтальные линии. Прямые линии под прямыми углами приводят диграммы к единообразному виду, благодаря которому в диаграммах легко ориентироваться.
  • Начало диаграммы всегда находится в левом верхнем углу. Читатель всегда знает, откуда начать.
  • Время течёт вниз; ветвление идёт вправо. Читатель всегда знает, где следующая икона.
  • Применяются обычные линии вместо стрелок.

Эти и другие правила улучшают читаемость диаграмм путём устранения зрительного шума.

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

Ветвление всегда идёт вправо, и никогда — влево. Такая предсказуемость позволяет увидеть алгоритм сразу, без предварительного изучения структуры диаграммы.

Уникальные возможности

В добавок к улучшенной читаемости, в языке ДРАКОН имеются уникальные возможности, такие как силуэт, а также представление царской дороги через алгоритм (happy path).

Силуэт

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

Рисунок 5. Силуэт.

Силуэт

Царская дорога (happy path)

Царская дорога на Дракон-схеме идёт по вертикальной линии в левой части диаграммы. Правая сторона диаграммы, в свою очередь, имеет дело с нежелательными ситуациями и ошибками. Это соглашение называется "чем правее, тем хуже".

Если читателю интересна только базовая информация об алгоритме, изучать всю диаграмму не нужно. Достаточно бросить взгляд на её левую часть.

Рисунок 6. Царская дорога в языке ДРАКОН

Царская дорога в языке ДРАКОН

Свобода от drag-and-drop

Процесс редактированя в Drakon.Tech не использует drag-and-drop. Щелчки мышью заменяют эргономически изматывающие операции по тасканию объектов мышью. Вместо того, чтобы вручную рисовать диаграмму, достаточно щёлкнуть по выделенным точкам на холсте, чтобы дать указания редактору. Диаграмму рисует не человек, а редактор.

Вот почему на создание диаграммы в Drakon.Tech уходит так мало времени.

Fast diagram creation

Лёгкость редактирования

Программирование — это непрерывный процесс улучшения кода, и поэтому традиционные среды разработки, основанные на тексте, предлагают богатые возможности редактирования. Разработчик может перемещать блоки кода при помощи операции копировать-вставить, а также нажимать кнопки "Отменить" и "Повторить". Никакой визуальный редактор не обеспечивает гибкость и лёгкость работы, сравнимую с текстовыми средами разработки. Никакой, кроме Drakon.Tech.

Лёгкость редактирования диаграмм

Инструмент выделения нескольких элементов в Drakon.Tech гарантирует, что только логически завершённые части диаграммы можно выделить, скопировать и вставить.

Всё это вместе позволяет редактировать алгоритмы в Drakon.Tech даже быстрее, чем модифицировать код в традиционном текстовом редакторе.

close
Закрыть
Drakon.Tech logo
Drakon.Tech - начало
Программирование на языке ДРАКОНОсновы программирования в Drakon.TechПродвинутые темы программированияThe source codeLegacy tutorials (JavaScript 0.2)