← Цялата документация Документация · Актуализирана 2026-07-05

Системата N2

N2 — възли, направени от възли: системата за композиране на Flowzart и регистрите за споделяне на построеното.

N2: възли, направени от възли

N2 (системата „възел-възел”) е композиращата страна на Flowzart: процес може да се превърне във възел, а всеки така построен възел сам е сглобен от по-малки възли. Името е концепцията на квадрат — възли, направени от възли.

Най-лесният начин да си го представите е руската вложена кукла (в приложението днес тези възли още носят това име — Матрьошка). Отваряте външната, намирате друга вътре, отваряте тази, намирате друга. Платното на Flowzart работи по същия начин. Възел на външното платно може да бъде напълно оформен процес сам по себе си, със собствени възли, собствена логика и собствени изходи.

Вижте анатомията на един възел → — интерактивно разглобяване на възел: щракнете върху всеки порт, поле, тайна и бутон, за да видите кой вътрешен възел го добавя.

Всяко ниво на влагане е независимо. Външният процес не се интересува как е изграден вътрешният; той се интересува само какво влиза и какво излиза. И всяко ниво остава проверимо: отварянето на N2 възел разкрива вътрешното му платно точно както ако беше горното ниво. Нищо не е скрито. Нищо не е непрозрачно.

Това има значение поради две причини:

  • Композиция без сложност. Процес от сто плоски възела е неподдръжаем. Същият процес, групиран на вложени части (една за извличане, една за преобразуване, една за доставяне), се побира в главата ви. Всяка част е единица, за която можете да разсъждавате изолирано.
  • Повторно използване без дублиране. Вложен процес може да бъде запазен като възел и пуснат в други процеси, третиран като една композируема единица вместо копи-пейстнати възли разпръснати из файлове. (Дали редакциите на вътрешния процес се разпространяват към всяко място, където се използва, е отворен въпрос; вижте “Работа с N2” по-долу.)

Регистри

Регистър е място, където потребителите на Flowzart публикуват възли за други потребители да инсталират. Някои възли са вградени, доставени от Flowzart. Други са създадени от общността: някой изгражда полезен N2 процес, запазва го като възел и го публикува в регистър. Всеки с достъп до този регистър може да го изтегли в собственото си платно и да започне да го използва.

Три неща произтичат от това:

  • Персонализираните възли са от първи клас. Възел, който потребител е изградил, и възел, който Flowzart е доставил, се държат по същия начин на платното. Няма второ ниво.
  • Разпространението е по избор. Публикуването на възел е преднамерено действие. Възлите остават локални, докато авторът им не ги изпрати някъде.
  • Регистрите могат да са споделени или частни. Екип може да поддържа регистър, ограничен до себе си. Общността може да поддържа публични. Същият възел може да живее и в двата, при различни версии.

Споделяне на корекции нагоре по веригата

Това, което тази комбинация отключва, е необичайно. Когато потребител инсталира възел от общността и намери бъг в него, може да го отвори, да го поправи на собственото си платно и да предложи корекцията обратно на регистъра, от който го е получил. Поддръжникът преглежда промяната. Ако е добра, тя се слива. От този момент нататък всеки потребител на този възел получава корекцията при следващото си обновяване.

Това не е заобикалящо решение, наслоено отгоре; това е начинът, по който системата е изградена. Персонализираните възли са процеси, процесите са проверими и регистрите имат път за принос. Бъговете в споделените градивни елементи не седят там вечно, очаквайки първоначалния автор да ги забележи. Всеки може да ги поеме.

Работа с N2

От процес към възел: договорът. Процес се превръща във възел чрез деклариране на договор (в приложението днес етикетиран „Матрьошка договор”): спецификация на публичния интерфейс на процеса (неговите входове и изходи), която останалата част от платното третира като повърхността на възела. След като договорът е деклариран, системата ImEx (Внос/Износ) се грижи за останалото: процесът може да бъде експортиран като възел, импортиран в други процеси и композиран наравно с всеки вграден възел.

Един процес може да декларира повече от един договор. Всеки договор се експортира като отделен възел. Така един добре проектиран процес може да произведе семейство свързани персонализирани възли, всеки различно повърхностно API над споделен вътрешен граф. Полезно, когато няколко възела споделят повечето от логиката си, но се различават по това кои входове и изходи излагат.

Повторно използване без редеклариране. Във вътрешния процес, който стои зад договор, композирате със същата палитра от възли като всеки друг процес, включително възли, които вече сте дефинирали другаде или импортирали чрез ImEx. Не ги редекларирате; реферирате към тях. Възел, който изградите, може да използва други N2 възли, които вече сте изградили, изграждайки възможности от по-висок ред от такива от по-нисък ред, без дублиране на логика. Точно това прави регистрите мултипликативни, а не адитивни: всеки възел в регистъра може да композира с всеки друг възел, а получената графика остава толкова проверима, колкото и оригиналната.

Отваряне на N2 възел. Двойно щракнете върху всеки N2 възел на платното, за да слезете в неговия вътрешен процес. Вюпортът заменя текущия изглед с вътрешния; брошурата за навигация в горната част показва пътя обратно, а Esc връща едно ниво нагоре. Същият жест работи на всяко ниво на влагане. Влагането стига до десет нива, същият лимит, който двигателят налага при изпълнение на процеса.

Работа с регистри

Публикуване на възел. Щракнете с десен бутон върху всеки възел, който притежавате на платното, и изберете „Публикувай“. Диалог пита в кой регистър да се качи. Ако регистърът публикува директно, възелът се появява веднага; ако изисква одобрение, качването ви става заявка за промяна, която преглеждащ приема, преди възелът да излезе. И в двата случая всеки с достъп до регистъра може да го инсталира, щом е вътре.

Откриване на възли. Индексната страница на регистър изброява всеки публикуван възел. Търсенето хваща името, описанието или типа на възела, а списъкът се филтрира по категория, така че намирането на градивен елемент е няколко натискания на клавиши.

Принос на корекция. Инсталирайте възела като всеки друг. Когато намерите нещо за промяна, отворете го на собственото си платно. Локалното копие е ваше да редактирате свободно. Когато корекцията е готова, публикувайте я обратно към регистъра, от който е дошъл възелът: при регистър с одобрение това създава заявка за промяна с предложената ви версия, която поддръжникът преглежда и приема или отхвърля. Щом бъде приета, регистърът поднася поправения възел на всички. Това е историята за споделянето на корекции нагоре по веригата, изведена през платното.

Нива на достъп. Всеки може да създаде регистър от страницата Регистри, а всеки регистър има едно от три нива на достъп: публичен, който всеки може да разглежда и от който всеки може да инсталира, и така живее библиотеката на общността; споделен, видим в пространството, на което принадлежи; и частен. Един екип обикновено държи вътрешните си възли в споделен за пространството регистър и тегли от публичните за общи градивни елементи.

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