Аппараттық және бағдарламалық қамтамасыз етуді орнату

Блок-схемаларды құру онлайн сызу io. Ио тілінің пайда болу тарихы

Сәлеметсіз бе, құрметті Хабражител. Назарларыңызға Франческо Зуппичинидің Draw.io-дан Vue.js қолданбасына мақаласының аудармасын ұсынамын.


Бұл менің Habré сайтындағы бірінші жарияланым және мен UML диаграммасынан Vue.js қолданбасын жасауға мүмкіндік беретін тамаша құрал туралы мақаланы аударудан бастауды шештім.
Таң қалдыңыз ба? Мен оны көргенде таң қалдым.


Әрине, кез келген бета нұсқасындағыдай, жұмыс істеуге болатын нәрсе бар. Мысалы, мен авторға бірінші рет хабарласып, құрамдас үлгі құрылымына және жол атауына түзетулер енгізгім келетінін айттым. Автор бір сағаттың ішінде байланысқа шығып, кодты GitHub сайтына орналастырып, шағын оқулық жазды. PR-ды қабылдағаннан кейін түпнұсқаға сілтеме арқылы мақаланы аударуға рұқсат алынды.


Кімге бұл қызық - мен каттың астынан сұраймын.

Draw.io қолданбасынан Vue.js қолданбасына дейін


Қолданбаны құру draw.io-да график салу сияқты оңай болуы керек
Франческо Саверио

Егер мен сізге мұны өзгерте алатыныңызды айтсам ше?






Нәтиже - керемет өнімді құруды бастау үшін қажет барлық файлдар мен импорттары бар Vue.js жобасы. Керемет, иә?


Мен қысқаша демонстрациялық бейне жасадым, оны мына жерден көре аласыз:


Веб-қосымша - бұл жай ғана график

Әрбір веб-қосымшаны график түрінде көрсетуге болады
Кішкене ойланайық. React, Angular немесе Vue сияқты фреймворкті пайдаланған кезде сізде әрқашан бір түбір құрамдас болады.


Біздің мысалда түбір компонент компонент болып табылады Қолданба, қалғанының бәрі тек графикалық түйін. Біз бірінші деңгейде анықтай аламыз Үйжәне индекстік түйіндертікелей балалар ретінде Қолданба.


Веб-қосымшаларды әзірлеудегі жалпы стандарт құрамдастарды графикаға негізделген каталог құрылымында сақтау болып табылады. Сондықтан, әдетте әрбір компонент үшін бірдей атпен каталог жасалады, мұнда компоненттің өзі және оның барлық еншілестері орналасады.


Мысалы, Индексөздігінен құрастырылған субграфтың түбірі, пайдаланушыжәне пост. Сондықтан қолданбалы құрылымдарда бұл абстракцияны еліктеу мағынасы бар.




Бұл екі артықшылықты қамтамасыз етеді: тармақшалар тәуелсіз болғандықтан, ауқымдылық және қолданбаның құрылымы мен логикасын оңай түсіну.


Оның үстіне, адам әрқашан көре алады жалпы құрылымқолданбаларды тек графикке қарау арқылы.

Графиктен қолданбаға дейін

Сонымен, біз әрбір веб-қосымшаның шын мәнінде график екенін айттық, сондықтан біз оларды одан жасай аламыз.


Өйткені, графиктен басталатын әрбір файл қарапайым. Сізге тек ағаш қиылысын тауып, әрбір файлды жергілікті түбірлік каталогта жасау керек және оны рекурсивті түрде орындауға болады.


Мәселе мынада, біз қазіргі веб-қосымшаларда құрамдас бөліктер басқа құрамдастарды импорттайтынын және пайдаланатынын білеміз. Сондықтан біз олардың әрқайсысын тәуелділіктерімен байланыстырып, оларды ішіне импорттауға арналған дұрыс синтаксисті қамтитын ағымдағы бағдарламалау тіліне негізделген динамикалық үлгіні жасауымыз керек.


JavaScript-те файлдар келесідей импортталады:


италияны "италиядан" импорттау // толық модульді импорттау ( спагетти) "италиядан" // бір нысанды италиядан импорттау

Сонымен, графиктен қолданбаға өту үшін біз әрбір файлды жасап, оны графиктің өзіне негізделген дұрыс орынға қойып, тәуелділікті импорттау үлгісін дұрыс көрсетуіміз керек.

Drawio2Vuejs

Қолданбаңызды draw.io ішінде салуға және Vue.js қолданбасын жасау үшін экспортталған xml файлын пайдалануға мүмкіндік беретін бума жасадым. деп аталады graph2app-drawio2vuejs.


Пакетті мына жерден табуға болады:



Негізі бұл жаңа идея емес, мен әзірледім біраз уақыт бұрын python көмегімен дәл солай істеу тәсілі:



Бірақ мынаны есте сақтаңыз жаңа нұсқасы npm пакеті әлдеқайда жақсы.


Ең алдымен, пакетті npm көмегімен жаһандық түрде орнатыңыз:


$ npm i -g graph2app-drawio2vuejs

Енді сіз оны терминалда пәрменмен пайдалана аласыз:


$drawio2vuejs

Бірақ, әрине, бірнеше дәлелдерді беру керек:


$ drawio2vuejs --help Қолданылуы: Draw.io сайтындағы drawio2vuejs scaffold Vuejs қолданбасы Опциялар: -V, --нұсқасы -d, --dist нұсқа нөмірін шығарады Шығару мақсаты -x, --xml xmlPath -h, --help пайдалану ақпаратын шығару

Draw.io xml файлына жолды беруді ұмытпаңыз.


Сурет салу уақыты келді! draw.io сайтына өтіп, таңдаңыз UMLсол жақ панельде және түймесін басыңыз Нысан:




Енді сіз бірінші түйінді жасау арқылы бастай аласыз. Бұл сіздің түбірлік құрамдасыңыз болатынын есте сақтаңыз. Менің жағдайларым үшін түбірлік компонент әрқашан бірінші түйінол диаграммада көрсетілген.




Содан кейін жасағыңыз келетін қолданба негізінде басқа түйінді қосуға болады.




Енді біз қалаймыз Үйболды еншілес элемент Қолданба. Сондықтан басыңыз Үйжәне қосылу үшін көрсеткіні пайдаланыңыз Қолданба.





Біз де қаласақ ше Қолданбаимпорт Үйтәуелділік ретінде? түймесін басыңыз көрсеткіні пайдаланыңызсол жақтағы UML бөлімінде және оны келесіден орналастырыңыз Қолданба v Үй.




Жақсы! Сіз өзіңіздің бірінші графикті жасадыңыз! Оны негізінде Vuejs қолданбасын жасау үшін қолданайық.


Бізге файл керек дедік xmlсондықтан оны экспорттаңыз қысусыз. басыңыз Файл > Басқаша экспорттау > XML > Қысылған (жоқ).


Енді Vue пәрмен жолын пайдаланып негізгі Vue.js қолданбасын жасаңыз:


$ vue init веб-пакет қолданбасы

Мұны орындағаннан кейін біз графиктен қолданбаны жасауға дайынбыз:


$drawio2vuejs --xml= dist=

Мен үшін команда келесідей болады:


$ drawio2vuejs --xml=/Users/VaeVictis/Desktop/app.xml --dist=/Users/VaeVictis/Desktop/app/src

Егер бәрі дұрыс жұмыс істеп тұрса, келесі нәтижені көру керек:



Файл app.vueүшін дұрыс импортты қоса отырып, бұрыннан бар болғандықтан жаңартылады Үй. Сондай-ақ жаңа компонент жасалады Үй. ашсақ app.vue, біз көруіміз керек:



Құрамдас және қалта дұрыс импортталған Үйфайлмен home.vueдұрыс құрылды!

graph2 қолданбасы

Пакет drawio2vuejsМен әзірлеген басқа пакетті пайдаланып әзірленген: graph2 қолданбасы.



Жақында мен бұл туралы үш бөлікті пайдаланып модульді қалай қолдану керектігі туралы мақала жасаймын:

  • GraphBuilder

Қолданба, мұнда негізгі логика болса, графиктен каталог пен файлдарды жасайды. Дана көмегімен жасалған график GraphBuilder. Біздің жағдайда мен құрдым DrawIoGraphBuilder, ол draw.io сайтынан XML файлын талдау үшін кеңейтеді.
graph2app-drawio-graph-Builder


Әзірлеушілер графикалық талдау үшін негізгі дананы интерфейстердің басқа түрлерімен кеңейте алады.


файлграфиктегі түйіндердің абстракциясы болып табылады. Ода бар үлгіКомпонент қайдан жасалған. Осылайша, қашан graph2 қолданбасыграфикті алады, оған да дананы қажет етеді файлкөрсету әдісін шақыру және файлды дұрыс сақтау.



Көріп отырғаныңыздай, пакетте бар модульдік құрылым. Біз де солай пайдалана аламыз DrawIoGraphBuilderбасқа данасымен файлмысалы, бірдей draw.io графигінен React қолданбаларын жасау.

Қорытынды

Сізге бұл мақала ұнайды деп үміттенемін. Қолданбаны визуализациялау өнімділікті жақсарта алатынына сенімдімін. Кітапхана әлі бета нұсқасында және біраз жақсартуды қажет етеді. Бұл идея халыққа ұнап, дамуға үлес қосады деп ойлаймын.


Маған өз пікіріңізді білдірсеңіз. Қызығушылықтарыңызға рахмет.


Франческо Саверио

Тегтер: тегтерді қосыңыз

Draw.io- тегін қолданба, бизнес-процестердің диаграммалары мен блок-схемаларын модельдеуге арналған. Google Docs, Dropbox, OneDrive, JIRA, Confluence, Chrome және GitHub бағдарламаларымен біріктіру мүмкіндігі бар. Confluence Server және JIRA Cloud қондырмасы ақылы қондырмалар болып табылады. Google Drive-пен синхрондауға арналған онлайн нұсқасы 2 нұсқада ұсынылады - Google Apps қолдауымен және қолдаусыз. Веб-нұсқадан басқа, Windows, MacOS және Linux жүйелеріне қолдау көрсететін ДК орнатушысы бар.

Қолданба бизнес-процестердің диаграммаларын құру құралын қажет ететін компаниялардың менеджерлері мен басшылары үшін пайдалы болады. Сервис қызметі презентациялар мен деректер қорын құру, инженерлік және желілік диаграммаларды құру, бағдарламалық қамтамасыз етуді жобалаумен байланысты кәсіпқойлар үшін қолайлы.

Редактордың көмегімен сіз кез келген схемалық кескіндерді жасай аласыз - диаграммалардан электр тізбектерібизнес-модель құрылымдарына. Мүмкіндіктердің арасында - диаграммаларды, графиктерді және UML-модельдерді құру. Пішін кітапханасында санаттарға топтастырылған ондаған пішіндер бар. Объектілерді қаріптерді, түсті, градиентті, сызық қалыңдығын, мөлдірлік деңгейін өзгерту арқылы пішімдеуге болады. Google Drive-пен синхрондау мүмкіндігінің арқасында бірнеше пайдаланушы бір уақытта құжаттармен жұмыс істей алады. Дайын кескіндерді компьютердің қатты дискісінде сақтауға немесе викилер мен блогтарға енгізуге болады. Қолжетімді экспорт пішімдері: PDF, GPG, SVG, XML және JPG.

Басты ерекшеліктер

  • -мен еркін интеграция Google қызметтері
  • Confluence және JIRA Cloud-пен ақылы интеграция
  • IE 6-8 қолдауы бар HTML клиенті
  • Смартфондар мен планшеттерге қолдау көрсету
  • Құжаттарды экспорттау PDF пішімдері, GPG, SVG, XML және JPG
  • Windows, MacOS және Linux үшін офлайн қолданба
  • 27 тілді қолдайды

Io – ықшам нысанға бағытталған программалау тілі

1-бөлім. Ио тілінің ерекшеліктері мен синтаксисіне шолу

Мазмұн сериясы:

Объектіге бағытталған бағдарламалау парадигмасына негізделген тілдер тобында Io өзінің қарапайымдылығымен және қысқалығымен ерекшеленеді. Ешқандай кемшіліктері жоқ идеалды бағдарламалар жоқ, әсіресе бағдарламалау тілін енгізуге қатысты. Сондықтан кез келген бағдарламалау тілінің (бұл жағдайда, Io) мүмкіндіктері мен ерекшеліктерін, сондай-ақ оның қажеттілігі, тиімділігі, қолданушылар үшін ыңғайлылығы туралы түпкілікті пікір айтудан бұрын, оның қолдану салаларын жеткілікті түрде егжей-тегжейлі зерделеу қажет. әзірлеуші ​​және т.

Ио тілінің пайда болу тарихы

Io тілі 2002 жылы пайда болды, оның авторы Стив Декорте бағдарламалау тілдерінің жұмыс істеу және жүзеге асыру принциптерін жақсырақ түсінуге тырысып, теорияны практикамен біріктіріп, өзінің қарапайым және қысқа тілін жазуға шешім қабылдады. Декорт Io тілін таза, прототипке негізделген, динамикалық түрде терілген объектіге бағытталған тіл болуы үшін әзірледі, ол «сынып» және «дана» арасындағы айырмашылықты болдырмайды. Wikipedia Smalltalk сияқты тілдердің Io әсерін атап өтеді («бәрі объект» принципі және динамикалық теру), Self және NewtonScript ( объектінің моделі, прототиптерге негізделген), Lisp (бағдарлама кодындағы нұсқаулар мен деректердің баламалылығы), сондай-ақ Lua және Act1.

Негізгі ақпарат

Io бағдарламасының коды ықшам, жоғары портативті құрылғы арқылы аударылады және орындалады виртуалды машина. Әртүрлі платформаларға арналған Io пакеттері оның веб-сайтында орналасқан. Io тілі BSD/MIT лицензиясының шарттары бойынша таратылады.

Негізгі қасиеттер берілген тілАвтордың өзі атап көрсеткені – концептуалды қарапайымдылық пен қысқалық, ендірілгендік (басқа тілдерде жазылған кодпен біріктіру мүмкіндігі) және кеңейтімділік, орындау уақытында ішкі объектілерді динамикалық өзгерту мүмкіндігі, интроспекция және параллелизм тұжырымдамасын жүзеге асыру.

Io-да барлық нысандар бағдарламаны орындау кезінде өзгерту мүмкіндігі бар объектілер болып табылады. Кез келген программаның коды өрнектерден тұрады, оны программаның орындалу барысында өзгертуге де болады. Өрнектер, өз кезегінде, шын мәнінде хабарламаны жіберу нұсқаулары болып табылады. Функциялар мен код блоктары деңгейінде объектілердің контекстік аумақтарының механизмі жүзеге асырылды. Акторлар параллельді есептеулерді басқару үшін пайдаланылады.

Бағдарламаның орындалуы

Io бағдарламаларында функцияның болуы талап етілмейді. негізгі()немесе орындау басталатын кейбір арнайы нысан. Осылайша, Io-бағдарламаларды белгілі бір дәрежеде сценарийлер деп санауға болады.

Бағдарламаны бастау пәрмен жолыкелесідей орындалады:

io projects/io/my_first_prog.io

Сондай-ақ 1-тізімде көрсетілгендей Io интерпретаторының интерактивті режимінде жұмыс істеуге болады.

Листинг 1. Io интерпретаторын интерактивті пайдалану
$ io Io 20070410 Io> "It"s Io интерпретатор" println It"s Io интерпретаторы ==> It"s Io интерпретатор Io>

Интерактивті режимде енгізілген өрнекті орындау нәтижесі ғана емес, сонымен қатар " префиксімен белгіленген осы өрнекпен қайтарылған мән де көрсетіледі. ==> ". Бұл жағдайда өрнекті орындау нәтижесі қайтарылатын мәнмен бірдей болады.

Айта кету керек, интерактивті режимде енгізілген өрнектер Lobby деп аталатын нысанға сәйкес келетін жалпы жоғары деңгейлі контексте орындалады.

Листинг 2. Io бағдарламасының жоғары деңгейлі контекстінің мазмұны
$io Io 20070410 Io> басып шығару Object_0x9898a88: Lobby = Object_0x9898a88 Protos = Object_0x9898550 args = әдіс(...) шығу = әдіс(...) алға = әдіс(...) launchPath = "/home/alexs/project " ==> Object_0x9898a88: Lobby = Object_0x9898a88 Protos = Object_0x9898550 args = әдіс(...) шығу = әдіс(...) алға = әдіс(...) launchPath = "/home/alexs/projects/io" Io>

Интерактивті режимде сіз сақталған бағдарламаларды да орындай аласыз бөлек файлдартөмендегідей:

doFile("my_first_prog.io")

Көрсетілген бағдарлама әдепкі бойынша сол объектінің контекстінде орындалады лобби. Егер жүктелген бағдарламаны қандай да бір басқа объектінің контекстінде орындау қажет болса, онда бұл нысанның аты әдісті шақыру алдында көрсетіледі. doFile(), ал Io тілі тұрғысынан нысанға хабарлама жіберіледі:

myMainObject doFile("my_first_prog.io")

Io тілінің синтаксисі

Io тілінің синтаксисімен танысқанда ең бірінші назар аударатын нәрсе – резервтелген кілт сөздер мен басқа тілдерден таныс операторлардың жоқтығы. ДереккөзКез келген программа тек хабарламалардан тұратын өрнектердің көмегімен жазылады, олардың әрқайсысы бағдарлама орындалып жатқан кез келген уақытта қолжетімді (және өзгеретін) объект болып табылады.

Неғұрлым түсінікті болу үшін 3-тізімде көрсетілген қатаң емес Backus-Naur пішін белгісін (литералдар тырнақшаға жазылады) пайдалануға болады.

Листинг 3. Io тілінің белгіленуі
өрнек::= (хабарлама | терминатор ) терминатор::= "\n" | ";" хабарлама::= символ [ аргументтер ] символ::= идентификатор | саны | жол аргументтері::= "(" [өрнек [ ( "," өрнек ) ] ] ")"

Io ең көп қолданылатын үш түсініктеме пішімін қолдайды: //, /* */ және # . Оларды іс жүзінде қолдану жолдары айқын.

Хабарлама кәдімгі өрнектер ретінде берілетін және хабарламаны қабылдайтын нысанмен бағаланатын дәлелдер тізімін қамтуы мүмкін.

Листинг 4. Цикл үшін хабарламаны пайдалану
Io> for(i, 1, 5, i println) 1 2 3 4 5 ==> 5 Io>

Шартты өрнектерді 5-тізімде көрсетілгендей, дәлелдер тізіміне де қосуға болады.

Листинг 5. Хабарламада шартты мәндерді қолдану
Io> бета:= 7 ==> 7 Io> альфа:= егер(бета > 5, бета, 5) ==> 7 Io>

Тағы бір рет айта кету керек, бірінші жағдайда сөздік үшінал екінші жағдайда литерал егерарнайы пішіндер немесе сақталған кілт сөздер емес, жай хабарлар.

Io тілінде қол жетімді операторлар

Оператор – атауында әріптік-цифрлық таңбалар жоқ хабарлама (тыныс белгілері мен астын сызудан басқа). Операторларға литералдар да кіреді: және, немесе, қайтару. Операторды пайдалану мысалы:

1 + 2

Io тілінің тұжырымдамасына сәйкес, бұл өрнек хабарламаны құрастырады:

1 +(2)

Яғни, сандық мән 1 хабарлама жіберілді» + "аргументпен 2 .

Күрделі өрнектерде стандартты арифметикалық операторлардың басымдығы аналогтық С арифметикалық операторларының басымдылығына сәйкес келеді.

Пайдаланушы анықтайтын мәлімдемелер солдан оңға қарай орындалады.

Io-да үш тағайындау операторы бар:

  • ::= ұяшық жасайды, сол ұяшық үшін орнатушы жасайды және ұяға мән береді;
  • := ұяшықты жасайды және оған мән береді;
  • = егер ұяшық бар болса, онда оған мән тағайындалады, in әйтпесеерекшелік тасталады.

Төменде көрсетілгендей, тағайындау операторлары құрастырылған кезде сәйкес хабарламаларға түрлендіріледі:

beta::= newSlot("бета", 7) бета:= 7 компиляция setSlot("бета", 7) бета = 7 updateSlot("бета", 7) үшін құрастырады

Жоғарыда аталған хабарламалардың әдістерін қайта анықтауға болады (яғни, өз әдістеріңізбен ауыстырылады). Атап айтқанда, жергілікті объектілер үшін әдістер updateSlot()мәндер нақты көрсетілген осы жергілікті нысандардың ұяшықтарына тағайындалған кезде ешқандай ерекшеліктер тасталмайтындай етіп қайта жазылады.

Жіптермен жұмыс

Io ішіндегі жолдар қос тырнақшаға алынған таңбалар тізбегі ретінде берілген. Егер қос тырнақша таңбасының өзі жолда болса, оны кері қиғаш сызықпен алып тастау керек, мысалы:

string:= "Io-да \ ұғымы жоқ." кілт сөз\«, тап мұндай.»

Жолда стандартты Esc таңбалары болуы мүмкін (\n, \t, \a, т.б.):

string:= "Бұл бірінші жол.\nБұл екінші жол.\nБұл үшінші жол."

Таңбалардың қашып кетуін болдырмау және мәтіннің көп жолды блоктарын табиғи түрінде жазу үшін төменде көрсетілгендей мұндай блокты үш қос тырнақшадан бастау және аяқтау қажет:

longstring:= """Io тілі "барлығы объект" концепциясына негізделген. Бастапқы код - хабарламалардан тұратын өрнектер. Операторлар да хабарлар."""

Сандық мәндер

Сандарды жазу кезінде барлық дерлік стандартты пішімдерге рұқсат етіледі, Io сонымен қатар он алтылық белгілерде сандық мәндерді жазуды қолдайды.

Листинг 6. Io жүйесінде қолдау көрсетілетін сан пішімдері
Io> 12 + 18 ==> 30 Io> 3,14 * 2 ==> 6,28000000000000002 Io> .987 + 11,003 ==> 11,9900000000000002 Io> 2e0100000000002 Io> 2e0101.01.Io> 2e401 -01. Io> 0xFF + 0x3 ==> 258 Io> 0XE - 0xa ==> 4 Io>

Арифметикалық өрнектер арифметикалық амалдарды белгілейтін операторлар интерпретатор ішінде сәйкес әдістерге шақыруға түрленетініне қарамастан (бұл механизм пайдаланушыдан жасырылған) дәстүрлі әдіс бойынша бағаланады.

Io> (9+5)*10-(2+3)*5 ==> 115

Есептеулер нәтижесін қандай да бір объектіге беру үшін әдіс қолданылады doString(), 7-тізімде көрсетілгендей.

Listing 7. doString() әдісін пайдалану
Io> myNewObject:= Нысан клон ==> Object_0x99336f0: Io> myNewObject doString("(18+25)*33") ==> 1419 Io>

Егер әдісті шақырмас бұрын doString()нысанның аты көрсетілмеген, содан кейін нәтижені есептеу және шығару ағымдағы контексте орындалады.

Io бағдарламасының мысалы

Көп жағдайда көлемі жағынан аса үлкен емес және логикалық тұрғыдан қажетсіз күрделіліксіз бағдарламаның бастапқы коды программалау тілінің синтаксисін жақсырақ түсінуге көмектеседі. Жеке банк шотымен операцияларды жеңілдетілген модельдеу бірінші тәжірибе үшін өте қолайлы. Бастапқы код 8-тізімде көрсетілген.

Листинг 8. Дербес шот бойынша операциялар
Шот:= Объект клоны Шоттағы қалдық:= 0 Шоттың депозиті:= әдісі (сома, қалдық = қалдық + сома) Шотты алу:= әдіс (сома, қалдық = қалдық - 1.005 * сома) шот:= Шот клондық шоты депозиті (5000.00) шот алу(250.00) шоттағы қалдық басып шығаруIo> doFile("my_acc.io") 4748,75 ==> 4748,75 Io>

Бұл бағдарлама алдыңғы бөлімдерде сипатталған барлық дерлік синтаксис элементтерін пайдаланады - хабарламалар, тағайындау және арифметикалық операторлар, сандық мәндер. Объектілерді, слоттарды және әдістерді құру және пайдалану серияның екінші мақаласында және бөлімде талқыланады осы сәтоларды интуитивті деңгейде түсіну жеткілікті.

Басқару құрылымдары

Io тілінде логикалық басқару құрылымдарының жұмысын қамтамасыз ету үшін арнайы синглтондар анықталады (синглтон) шын(шын) және жалған(жалған), сондай-ақ арнайы синглтон нөл, анықталмаған мәнді білдіреді («мән жоқ»).
Логикалық салыстыру операциялары мына әдістер арқылы орындалады: ==!=><>=<= , қайтып оралады шыннемесе жалған. Сонымен қатар, әдіс бар салыстыру(), ол мәндерді қайтарады -1 (Аздау), 0 (тең) немесе 1 (үлкен) және арнайы құнды салыстыру әдістерін жүзеге асыру үшін қолданылады.

Әдіс егер()келесі формада қолданылады:

егер(<условие>, [, басқа ]) егер(бөлгіш == 0, "Қате" println)

Мұнда қосымша бөлік бар басқакелтірілмесе. Шартты өрнек, егер оның нәтижесі болса, ақиқат деп есептеледі шын, ал егер шартты өрнек нәтиже берсе жалғаннемесе нөл, онда бұл жалған.

Әдіс егер()тексеру нәтижесінен есептелген хабарламаны мән ретінде қайтарады, сондықтан төмендегі өрнектер баламалы болады:

егер(сома< 100, x:= sum, x:= 100) x:= егер(сома< 100, sum, 100)

Шартты өрнектерді кеңейтілген түрде де жазуға болады:

егер(сома< 100) then(x:= sum) else(x:= 100)

Бұған қоса, шартты өрнектерді кірістіру үшін әдіске қолдау көрсетіледі elseif():

егер(сома< 10) then(x:= 0) elseif(sum < 10) then(x:= 1) else (x:= sum)

Smalltalk стиліндегі әдістерге де қолдау көрсетіледі: ifTrue(), ifFalse(), ifNil()және ifNonNil(), пішіндегі өрнектерді жазуға мүмкіндік береді:

(сома< 100) ifTrue(x:= sum) ifFalse(x:= 100)

Бұл жерде бастапқы шартты өрнек міндетті түрде жақшаға жазылуға ерекше назар аудару керек.

Циклдер

Циклдің ең қарапайым түрі - шартсыз шексіз цикл, әдіс арқылы жүзеге асырылады цикл():

цикл («шексіз цикл» println)

Егер цикл қандай да бір шарттарды тексермей, қатаң анықталған бірнеше рет қайталануы керек болса, онда әдіс қолданылады. қайталау(), 9-тізімде көрсетілгендей.

Листинг 9. Repeat() әдісін қолдану
Io> 3 қайталау («Ескерту!» println) Ескерту! Ескерту! Ескерту! ==> Ескерту! Io>

Цикл, нақты сомақайталануы алдын ала белгісіз, бірақ қайталанулар орындалатын белгілі бір шарт көрсетілген әдіс арқылы жазылады. while():

кезінде(<условное_выражение>, <сообщение>)

Бұл циклдің ерекшелігі, егер циклдің негізгі бөлігінде бірнеше хабарламаны жазу қажет болса, бұл хабарламалар бір-бірінен өту белгісімен бөлінуі керек. жаңа жол, үтір емес, әйтпесе цикл дұрыс орындалмайды. Сонымен қатар, шартты өрнекті бірінші жолда қалдырып, циклдің негізгі бөлігіндегі әрбір хабарламаны бөлек жолға жазған жөн. 10 листингте көрсетілген бұл пішін көбірек таныс болады.

Листинг 10. while циклінің мысалы
Io> a:= 10 ==> 10 Io> while(a< 20,)->a println)-> a = a + 2)->) 10 12 14 16 18 ==> 20 Io>

Әдіс үшін()белгілі бір шекаралық мәндермен және берілген қарсы қадаммен циклды ұйымдастыруға мүмкіндік береді. Бұл циклдің жалпы түрі келесідей:

үшін(<счётчик>, <начальное_значение>, <конечное_значение>, [<шаг>,] <сообщение>).

Есептегішті өзгерту қадамы көрсетілмесе, әдепкі бойынша 1-ге тең қадам мәні қабылданады.

Листинг 11. Ұйымдастыру үлгісі цикл үшін
//бұл циклде есептегішті өзгерту қадамы көрсетілмеген Io> for(i, 0, 3, i println) 0 1 2 3 ==> 3 //осы циклде есептегішті өзгерту қадамы көрсетілген. Io> for(i, 0, 10, 3, i println) 0 3 6 9 ==> 9 Io>

Жоғарыдағы кез келген циклдің денесінде орындалу ретін өзгерту әдістерін қолдануға болады: жалғастыруцикл денесінің қалған бөлігін елемеуге және жаңа итерацияны бастауға мүмкіндік береді, және үзілісбүкіл циклды дереу аяқтайды.

Листинг 12. Циклдің орындалу ретін бақылау
Io> for(i, 1, 10,)-> if(i == 2, жалғастыр))-> if(i > 7, break))-> i print)->) 134567==> нөл Io>

Айта кету керек, циклды стандартты емес аяқтаған жағдайда ( үзіліс) қайтарылатын мән анықталмаған болып саналады (деп белгіленеді нөл).

Әдіс қайтарукод блогының кез келген бөлігінен немесе қажетті қайтару мәні бар әдіс денесінен шығуға мүмкіндік береді, мысалы:

Листинг 13. Әдістен мәнді қайтару үшін қайтару әдісін пайдалану
Io> тест:= әдіс("бірінші" println; "екінші" println; қайтару "шығу"; "үшінші" println) ==> әдіс ("бірінші" println; "екінші" println; қайтару "шығу"; "үшінші" println) Io> бірінші секундты сынау ==> Io шығу>

Io тілі циклды да жүзеге асырады әрқайсысы үшін, бірақ оның практикалық қолданылуы дәстүрлі циклдарды пайдаланудан біршама ерекшеленеді, сондықтан бұл цикл алдағы мақалаларда қарастырылады.

Қорытынды

Ио тілі – таза объектілік тіл, яғни «барлығы – объект» ұғымының жүзеге асуы. Оның синтаксисі қарапайым және түсінікті, бірақ бір қарағанда әдеттен тыс болып көрінуі мүмкін. Io барлық де-факто стандартты құрылымдар мен операторларды жүзеге асырады.

Сериядағы бірінші мақала сипатталған Жалпы сипаттамаларжәне Io программалау тілінің синтаксисі. Екінші мақалада тілдің объектілік жүйесі, ал үшінші мақалада Io-ның қосымша мүмкіндіктері мен мүмкіндіктері қарастырылады.

Кез келген инженердің, IT маманының, маркетологтың, бизнес-аналитиктің, менеджердің жұмысы әртүрлі диаграммаларды, блок-схемалар мен графиктерді құру қажеттілігімен байланысты. Осы мақсаттар үшін сілтемеде қол жетімді «ұтыс» қызметі тамаша.

Оның басты артықшылығы – тегін. Ресурсты пайдалану үшін ақы алынбайды, бұл оны одан да жағымды етеді. Сонымен қатар, толыққанды жұмыс үшін сізге тіркелудің және сайтта жалықтыратын авторизация процесінен өтудің қажеті жоқ.

Кірген кезде басты бетжобаны сақтау жолын таңдаңыз. Соңғы нәтижелерді қашықтағы жадта – «бұлттарда» («Google Drive», «Dropbox», «OneDrive»), «GitHub» ресурсында, «Құрылғының» қатты дискісінде немесе тікелей ортада сақтауға болады. веб-қосымшаларды әзірлеуді және Trello бағдарламаларын басқару.

Әдепкі бойынша, таңдалған параметрлерді болашақта сақтау үшін құсбелгі қойылады.

Онлайн сервистің мүмкіндіктерімен танысу тапсырмасын жеңілдету үшін «Тіл» түймесін басу арқылы интерфейс тілін өзгертейік.

Қажетті тілді орнатқаннан кейін өзгертулер күшіне енуі үшін бетті қайта жүктеу қажет.

Енді жаңа жобаны құруға көшейік, ол үшін «Жаңа диаграмма құру» түймесін басамыз, содан кейін жұмыстың графикалық бөлігіне көшу орын алады.

Сіз бос өрісті ашып, диаграмманы өзіңіз жасай аласыз немесе әртүрлі графикалық үлгілердің кітапханасын пайдалана аласыз. «Исикава диаграммалары» («балық құйрығы» деген атпен), «Бизнес-процестерді сипаттау схемалары», «Құрылымдық диаграммалар», «Блок-схемалар», « Электрлік тізбектер», «Бағдарлама блоктары» - бұл бос орындар ретінде бар нәрселердің аз ғана бөлігі.

Draw.io қызметін пайдалана отырып, бизнес-процестерді сипаттау мүмкіндігі пайдаланушылар үшін үлкен қызығушылық тудырады.

Бастау үшін «Негізгі» үлгі санатынан «Бос диаграмма» таңдаңыз.

Мысал ретінде біз заманауи, шағын интернет-дүкеннің жұмысымен байланысты негізгі бизнес-процестерді сипаттайтын боламыз.

Жұмыстың графикалық бөлігі үшін бізге «BPMN General» және «BPMN Events» бөлімдері қажет.

Мысалды қарастырған кезде біз дүкенді жылжытудың тар ерекшеліктеріне, директологтың, іздеу жүйесін оңтайландырушының, мазмұн менеджерінің жұмысына, жүйелік әкімші, олар да кәсіпорынның өміріне тікелей қатысады және бастапқы нүкте үшін біз клиенттен тапсырысты алуды және өңдеу жағында жасалуы керек қадамдарды қарастырамыз.

Диаграммада оқиғаны жасайық - интернет-дүкенді жүргізетін менеджерге өтінімді алу, ол үшін біз тінтуірдің көмегімен өтінімнің қабылданғанын білдіретін конверт белгішесін сүйрейміз ( кіріс хабарлама) және сұрауға жауапты сипаттайтын «Тапсырмалар» контейнері.

Екі блоктың арасына стрелка қою арқылы байланыс орнатайық.

Draw.io онлайн құралын пайдаланудың ыңғайлылығы үшін бар жоғарғы панельәрекеттерден бас тартуға, масштабтауға, айналдыруға және қабаттарды басқаруға арналған түймелерді, сондай-ақ жиі қолданылатын элементтерді (басқару нүктелері, байланыстыру көрсеткілері) қамтитын басқару.

Тінтуірдің сол жақ батырмасын екі рет басу арқылы біз блоктағы мәтінді өңдейміз, «Тапсырма» атауын «Қоймада тапсырыс берілген тауарлардың бар-жоғын тексеру» деп өзгертеміз. Дәл осы қадамнан бастап интернет-дүкеннің менеджері тапсырысты талдауды бастауы керек, өйткені клиентпен қарым-қатынастағы келесі қадамдар соған байланысты.

Келесі блок тауарлы-материалдық қорлар қалдықтарын тексерудің әртүрлі нәтижелері бойынша әрекеттердің реттілігін анықтайтын шарт болуы керек деп есептеу қисынды.

* Бизнес-процестер қағаз үшін емес, қарапайым адамдарға, компания қызметкерлеріне жазылатынын есте ұстаған жөн. Зерттеу неғұрлым егжей-тегжейлі және егжей-тегжейлі болса, болашақта қателер азырақ болады. Оны жүзеге асырудың табыстылығының 80% тапсырманы қоюға байланысты.

Егер тауар қоймада болса, «Пайдаланушы толтырған деректердің дұрыстығын тексеру» бөліміне, егер жоқ болса, «Нақты жеткізу күнін көрсету» бөліміне өтуге болады. Кез келген блоктың немесе көрсеткінің үстіне түсініктеме жазу үшін «Жалпы» қойындысын және «Мәтін» элементін таңдау керек. Бұл жағдайда бұл «Иә/жоқ» бағыттарының көрсеткіштері.

Теріс тармақты талдап, әрекеттің барлық келесі қадамдарын диаграммаға салайық.

Бір қосалқы блок «Жеткізушіге хабарласыңыз, нақты жеткізу мерзімін сұраңыз», екі негізгі блок «Бар және ауыстыру ретінде ұсынылуы мүмкін тауарлардың балама нұсқаларын таңдау», «Толтырылған пайдаланушы деректерінің дұрыстығын тексеру» және байланыс блогы. клиентпен «Телефон арқылы хабарласыңыз және жеткізу мәліметтерін талқылаңыз. Кез келген нәтижеге алдын ала дайындалу маңызды, сондықтан балама нұсқаларды әзірлеу керек. Біздің жағдайда біз draw.io қызметінде жеткізу мерзімімен келіспеген жағдайда клиентті ұстап қалуға көмектесетін баламалы нұсқаларды таңдаумен байланысты бизнес-процесті жасадық. Көмекші блоктар "BPMN General" қойындысында қолжетімді нүктелі сызық ретінде көрсетіледі.

Егер дүкен өз тұтынушыларының адалдығымен жұмыс жасаса, онда интернет-дүкеннің кінәсінен мерзімдер кешіктірілсе, баламалы өнімге жеке жеңілдік беруге байланысты тағы бір блок қосуға болады (мысалы, , қалған тауарлар дұрыс көрсетілмеген («қоймада» сайтында, ал Іс жүзінде тауар аяқталды)).

Енді тағы бір шартты қосу қалды: «Клиент тапсырысқа келіседі». Бұл кезеңде барлық іс-шаралардың нәтижесі шешіледі немесе тапсырыс өңдеуге өтіп, содан кейін «Жабдықтау қызметіне» түседі немесе менеджер қоймадағы тауарлардың қабылданғаны туралы хабарлама алуды ұсынып, тапсырысты жабады, кім өтінішті қалдырды.

Осылайша, бар болғаны 5 минут уақытымызды өткізіп, біз сату менеджеріне қатысты draw.io сервисінде бизнес-процестерді әзірледік. Сол сияқты, сіз интернет-дүкеннің қызметіне қатысатын қалған бөлімдер үшін бөлек парақтарда диаграммалар жасай аласыз, сондай-ақ тұтастай алғанда компанияның барлық қызметтерін қорытындылай аласыз.

Болашақта құжатты ашу үшін қызмет веб-сайтына өтіп, «Бар диаграмманы ашу» опциясын таңдау арқылы бұрын сақталған xml жобасын табыңыз.

Бұрын көрсетілген пішімдегі соңғы нәтижелерге қосымша, диаграммалар мен диаграммаларды pdf және форматта экспорттауға болады. html құжаттары, сондай-ақ суреттер түрінде және векторлық графика(SVG).

Жақында draw.io-ны компьютерге бағдарлама ретінде жүктеп алу мүмкін болды (жұмыс істейді операциялық жүйелер Windows, MacOs, Chrome OS, Linux), сондай-ақ iOS және Android жүйелерінде жұмыс істейтін мобильді қосымша ретінде орнату.

Осы мақсаттар үшін басқару тақтасындағы «Қосымша» түймесін басып, ашылатын мәзірде «Жүктеу» тармағын таңдау керек.

Шолуда ұсынылған ақпарат сіздің жобаңызбен жұмыс істеуді бастау үшін жеткілікті, ол қай салаға, қызмет саласына немесе өндіріске жататынына, бағдарламалау, әкімшілік ету, дизайн, басқару, тарату немесе жеткізу және т.б.

Егер сізде қиындықтар туындаса, сіз әрқашан онлайн қызметтің веб-сайтында берілген нұсқаулар мен ресми құжаттаманы оқи аласыз.

Ақыры іздегенімді таптым. Бизнес үдерісін сипаттау мүмкіндіктерін қолдайтын тегін модельдеу құралы - Draw.io

Draw.ioонлайн диаграммалар мен блок-схемаларды құру құралы болып табылады. Сонымен қатар, сіздің жүрегіңіз қалаған нәрсені салуға мүмкіндік беретін көптеген шаблондар. Құралдар Draw.io MS Visio-ны өте еске түсіреді және ол үшін жасалған болуы мүмкін, дегенмен қолданба Microsoft бағдарламасытөленген және онлайн қызметі Draw.io- толығымен тегін, ең бастысы тіркеуді қажет етпейді.

Ұқсас функция бұлтты нұсқада бар - бұл жүйе, дегенмен бұл жүйеақылы, бірақ жазылым қымбат емес, бірақ тегін бәсекелесу қиын.

туралы пікір Draw.io

Және де болса да бұл құралӘдістемелік тұрғыдан бәрі жақсы емес, сурет салуға болады, әсіресе тыңдаушылар үшін модельдеу конвенциясын алдын ала орнату арқылы оқу курсы. Құрал тегін құрал сияқты әдемі болмаса да, бұлтты іске асыру оны бәсекеге қабілетті етеді.

Блок үлгісін онлайн жасау үшін сізге жай ғана жасау керек жаңа құжатқұралдар жинағында.

Объектілер панелінде MS Visio-дағыдай категорияны таңдап, нысанды тінтуір курсорымен үлгі өрісіне жылжыту керек. Нысандар өте көп, сондықтан олар толыққанды бизнес-процес үлгісін құру үшін жеткілікті (объектілер мен модельдер жиынтығы айтарлықтай шектелгеннен айырмашылығы).

Модельдік объектілерді бір-бірімен қосу үшін объектіні таңдап, тінтуір меңзерін екіншісінің үстіне жылжыту керек, содан кейін нысанға апару керек жасыл жалауша пайда болады.

Ең бастысы, бизнес-процес үлгісін жасағаннан кейін, мәзір арқылы компьютерге кескін пішімінде (PNG, GIF, JPG, PDF) экспорттауға болады: Файл - Экспорт.

Және, әрине, бұлттық мүмкіндік - Draw.io қызметі Google Drive-пен синхрондалған, бұл жобаны Google Drive-қа тікелей сақтауға мүмкіндік береді.

Жалпы, маған құрал ұнады, меніңше Draw.ioбизнес-процестерді онлайн көрсету үшін өте қолайлы. Және де болса да үлкен жобаларфедералды деңгейде бәсекелестік жоқ дерлік, олардың бизнес-процестерін сипаттайтын шағын компаниялар үшін бұл өте қолайлы құрал.

Мақала ұнады ма? Достарыңызбен бөлісіңіз!
Бұл мақала пайдалы болды ма?
Иә
Жоқ
Пікіріңізге рахмет!
Бірдеңе дұрыс болмады және сіздің дауысыңыз есептелмеді.
Рақмет сізге. Сіздің хабарламаңыз жіберілді
Мәтіннен қате таптыңыз ба?
Оны таңдаңыз, басыңыз Ctrl+Enterжәне біз оны түзетеміз!