Гэр / Нийгмийн сүлжээ / Орос хэл дээр Draw.io. Операторуудыг Io хэл дээр ашиглах боломжтой

Орос хэл дээр Draw.io. Операторуудыг Io хэл дээр ашиглах боломжтой

Draw.io- үнэгүй програм, бизнесийн үйл явцын диаграмм болон урсгалын диаграммыг загварчлахад зориулагдсан. -тай нэгтгэх сонголт бий Google Docs, Dropbox, OneDrive, JIRA, Confluence, Chrome болон GitHub. Confluence Server болон JIRA Cloud нэмэлтүүд нь төлбөртэй нэмэлтүүд юм. Google Drive-тай синхрончлох онлайн хувилбар нь Google Apps-ийн дэмжлэгтэй болон дэмжлэггүй 2 хувилбараар санал болгож байна. Вэб хувилбараас гадна Windows, MacOS, Linux-ийг дэмждэг PC суулгагч байдаг.

Энэхүү програм нь бизнесийн үйл явцын диаграммыг бий болгох хэрэгсэл хэрэгтэй байгаа компанийн менежерүүд болон удирдлагуудад хэрэгтэй болно. Энэхүү үйлчилгээ нь танилцуулга, мэдээллийн сан үүсгэх, инженерийн болон сүлжээний диаграмм байгуулах, програм хангамжийн зураг төсөл боловсруулахтай холбоотой мэргэжлийн хүмүүст тохиромжтой.

Засварлагчийг ашигласнаар та диаграмаас эхлээд ямар ч схемийн зургийг үүсгэж болно цахилгаан хэлхээбизнесийн загвар бүтэц рүү. Боломжуудын дунд диаграмм, график, 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 хэлийг дэмждэг

Эцэст нь би хайж байсан зүйлээ олсон. Бизнесийн үйл явцыг тайлбарлах чадварыг дэмждэг үнэгүй загварчлалын хэрэгсэл - Draw.io

Draw.ioнь диаграмм болон графикийг онлайнаар үүсгэх хэрэгсэл юм. Үүний зэрэгцээ зүрх сэтгэлийнхээ хүссэн бүх зүйлийг зурах боломжийг олгодог асар олон тооны загварууд. Багаж хэрэгсэл Draw.io MS Visio-г маш их санагдуулдаг бөгөөд үүнд зориулж хийсэн байж магадгүй, гэхдээ програм Microsoft програмтөлсөн, мөн онлайн үйлчилгээ Draw.io- бүрэн үнэ төлбөргүй, хамгийн чухал нь бүртгүүлэх шаардлагагүй.

Үүнтэй төстэй функц нь үүлэн хувилбарт аль хэдийн байгаа - энэ бол систем юм энэ системтөлбөртэй боловч захиалга нь хямд боловч үнэ төлбөргүй өрсөлдөхөд хэцүү байдаг.

тухай санал бодол Draw.io

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

Блок загварыг онлайнаар үүсгэхийн тулд та хийх ёстой зүйл бол хэрэгсэлд шинэ баримт бичиг үүсгэх явдал юм.

MS Visio-ийн нэгэн адил объектын самбар дээр та категорийг сонгож, объектыг хулганы курсороор загвар талбар руу шилжүүлэх хэрэгтэй. Олон тооны объектууд байдаг тул тэдгээр нь бизнесийн үйл явцын бүрэн загварыг бий болгоход хангалттай байдаг (объект, загваруудын багц ноцтой хязгаарлагдмал байдагтай адилгүй).

Загварын объектуудыг хооронд нь холбохын тулд та объектыг сонгож, хулганын заагчийг нөгөө рүү шилжүүлэх хэрэгтэй бөгөөд үүний дараа та объект руу чирэх шаардлагатай ногоон туг гарч ирнэ.

Хамгийн гол нь бизнес процессын загвар үүсгэсний дараа File - Export цэсээр дамжуулан өөрийн компьютерт зургийн форматаар (PNG, GIF, JPG, PDF) экспортлох боломжтой.

Мэдээжийн хэрэг, үүлний онцлог - Draw.io үйлчилгээ нь Google Drive-тай синхрончлогдсон бөгөөд энэ нь төслийг Google Drive-д шууд хадгалах боломжийг олгодог.

Ерөнхийдөө энэ хэрэгсэл надад таалагдсан бололтой Draw.ioбизнесийн үйл явцыг онлайнаар үзүүлэхэд маш тохиромжтой. Холбооны түвшинд томоохон төслүүдэд өрсөлдөөн бараг байхгүй хэвээр байгаа ч бизнесийн үйл явцыг дүрсэлсэн жижиг компаниудын хувьд энэ нь маш тохиромжтой хэрэгсэл юм.

Аливаа инженер, мэдээллийн технологийн мэргэжилтэн, маркетер, бизнесийн шинжээч, менежерийн ажил нь янз бүрийн диаграмм, диаграмм, график үүсгэх хэрэгцээтэй холбоотой байдаг. Эдгээр зорилгын үүднээс холбоос дээр байгаа "сугалах" үйлчилгээ нь маш сайн юм.

Үүний гол давуу тал нь үнэ төлбөргүй байдаг. Нөөцийг ашиглахад ямар ч төлбөр байхгүй бөгөөд энэ нь илүү тааламжтай болгодог. Нэмж дурдахад, бүрэн эрхт ажилд орохын тулд та бүртгүүлж, сайт дээрх уйтгартай зөвшөөрлийн процессыг давах шаардлагагүй болно.

Орохдоо нүүр хуудастөслийг хадгалах замыг сонгох. Эцсийн үр дүнг алсын санах ойд - "үүл" ("Google Drive", "Dropbox", "OneDrive"), "GitHub" нөөц, "Төхөөрөмж" -ийн хатуу диск эсвэл шууд орчинд хадгалах боломжтой. вэб програм хөгжүүлэлт болон Trello программуудыг удирдах.

Анхдагч байдлаар, сонгосон тохиргоог ирээдүйд хадгалахын тулд нүдийг тэмдэглэнэ.

Онлайн үйлчилгээний боломжуудтай танилцах ажлыг хялбарчлахын тулд "Хэл" дээр дарж интерфейсийн хэлийг өөрчилье.

Шаардлагатай хэлийг тохируулсны дараа өөрчлөлтүүд хүчин төгөлдөр болохын тулд хуудсыг дахин ачаалах шаардлагатай болно.

Одоо шинэ төсөл үүсгэхийн тулд "Шинэ диаграмм үүсгэх" товчийг дарсны дараа ажлын график хэсэгт шилжих болно.

Та хоосон талбарыг нээж, диаграммыг өөрөө үүсгэж болно, эсвэл янз бүрийн график загваруудын номын санг ашиглаж болно. "Исикавагийн диаграммууд" ("загасны сүүл" гэж нэрлэдэг), "Бизнесийн үйл явцыг дүрслэх схемүүд", "Бүтцийн диаграммууд", "урсгалын схемүүд", " Цахилгаан хэлхээ”, “Програмын блокууд” - энэ бол хоосон зүйл болж байгаа зүйлийн зөвхөн өчүүхэн хэсэг юм.

Хэрэглэгчдийн сонирхлыг татдаг зүйл бол draw.io үйлчилгээг ашиглан бизнесийн үйл явцыг тайлбарлах боломж юм.

Эхлэхийн тулд "Үндсэн" загвар ангиллаас "Хоосон диаграм" -ыг сонгоно уу.

Жишээ болгон бид орчин үеийн, жижиг онлайн дэлгүүрийн ажилтай холбоотой бизнесийн үндсэн үйл явцыг тайлбарлах болно.

Ажлын график хэсгийн хувьд "BPMN Ерөнхий" ба "BPMN үйл явдлууд" гэсэн хэсгүүд хэрэгтэй.

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

Диаграмм дээр үйл явдал үүсгэцгээе - онлайн дэлгүүрийг ажиллуулдаг менежерт өргөдөл хүлээн авсан баримт, үүний тулд бид өргөдлийг хүлээн авсан (ирж буй мессеж) дугтуйны дүрс болон хариу үйлдлийг дүрсэлсэн "Даалгавар" савыг чирнэ. давж заалдах.

Хоёр блокны хооронд сум байрлуулж холболт тогтооцгооё.

Draw.io онлайн хэрэгслийг ашиглахад хялбар болгох үүднээс энд байна дээд самбарүйлдлийг цуцлах, масштаблах, гүйлгэх, давхаргыг удирдах товчлуурууд, түүнчлэн хамгийн их ашиглагддаг элементүүдийг (хяналтын цэгүүд, холбох сум) агуулсан удирдлага.

Хулганы зүүн товчийг давхар товшсоноор бид блок дээрх текстийг засаж, "Даалгавар" нэрийг "Захиалгат бараа байгаа эсэхийг шалгах" болгон өөрчилнө. Энэ алхамаас эхлэн онлайн дэлгүүрийн менежер захиалгын дүн шинжилгээ хийж эхлэх ёстой, учир нь үйлчлүүлэгчтэй харилцах цаашдын алхамууд үүнээс хамаарна.

Дараагийн блок нь бараа материалын үлдэгдлийг шалгах янз бүрийн үр дүнгийн үйл ажиллагааны дарааллыг тодорхойлох нөхцөл байх ёстой гэж үзэх нь логик юм.

* Бизнесийн үйл явц нь цаасан дээр биш, харин энгийн хүмүүст, компанийн ажилтнуудад зориулагдсан гэдгийг санах нь чухал. Судалгааг илүү нарийвчилсан, нарийвчилсан байх тусам ирээдүйд алдаа гарах нь бага байх болно. Үүнийг хэрэгжүүлэх амжилтын 80% нь даалгаврыг хэрхэн яаж хийхээс хамаарна.

Хэрэв бараа нөөцөд байгаа бол "Хэрэглэгчийн бөглөсөн мэдээллийн үнэн зөвийг шалгах", үгүй ​​бол "Хүргэх хугацааг яг зааж өгөх" хэсэгт очиж болно. Аливаа блок эсвэл сумны дээр сэтгэгдэл бичихийн тулд та "Ерөнхий" таб болон "Текст" элементийг сонгох хэрэгтэй. Энэ тохиолдолд эдгээр нь "Тийм / үгүй" гэсэн чиглэлийн заалтууд юм.

Сөрөг салбарыг задлан шинжилж, цаашдын үйл ажиллагааны бүх алхмуудыг диаграммд оруулцгаая.

Нэг туслах блок "Нийлүүлэгчтэй холбоо барина уу, яг хүргэх хугацааг хүснэ үү", хоёр үндсэн блок "Отгох" өөр сонголтууднөөцөд байгаа, орлуулах боломжтой бараа, "Хэрэглэгчийн мэдээллийн үнэн зөв бөглөсөн эсэхийг шалгах", үйлчлүүлэгчтэй харилцах блок "Утсаар холбогдож, хүргэлтийн дэлгэрэнгүй мэдээллийг ярилцах". Аливаа үр дүнд урьдчилан бэлдэх нь чухал бөгөөд тиймээс өөр хувилбаруудыг боловсруулах нь чухал юм. Манай тохиолдолд бид draw.io үйлчилгээнд өөр сонголттой холбоотой бизнесийн үйл явцыг бий болгосон бөгөөд энэ нь хүргэх хугацаатай санал нийлэхгүй байгаа тохиолдолд үйлчлүүлэгчээ хадгалахад тусална. Туслах блокуудыг "BPMN Ерөнхий" табаас авах боломжтой тасархай шугамаар харуулсан.

Хэрэв дэлгүүр нь үйлчлүүлэгчдийнхээ үнэнч байдлыг хангах тал дээр ажиллаж байгаа бол онлайн дэлгүүрийн буруугаас болж хугацаа хойшлогдсон тохиолдолд өөр бүтээгдэхүүнд хувийн хөнгөлөлт үзүүлэхтэй холбоотой нэг блок нэмж оруулах боломжтой. , үлдсэн барааг буруу харуулсан ("хувьцааны" сайт дээр, үнэндээ бараа дууссан)).

Одоо "Үйлчлүүлэгч захиалгыг зөвшөөрч байна" гэсэн өөр нэг нөхцөл нэмэх хэвээр байна. Энэ үе шатанд бүх үйл ажиллагааны үр дүнг шийддэг, эсвэл захиалга боловсруулалтанд орж, дараа нь "Нилүүлэлтийн үйлчилгээ" рүү очдог, эсвэл менежер захиалгаа хааж, бараагаа хүлээн авсан тухай мэдэгдэл хүлээн авахыг санал болгож байна. програмыг орхисон сайтын зочин.

Тиймээс бид ердөө 5 минут зарцуулсны дараа борлуулалтын менежертэй холбоотой draw.io үйлчилгээнд бизнесийн үйл явцыг боловсруулсан. Үүний нэгэн адил та онлайн дэлгүүрийн үйл ажиллагаанд оролцдог бусад хэлтсийн диаграммыг тусад нь хуудсан дээр зурахаас гадна компанийн бүх үйлчилгээг нэгтгэн дүгнэж болно.

Цаашид баримт бичгийг нээхийн тулд үйлчилгээний вэбсайт руу ороод "Одоо байгаа диаграмыг нээх" гэснийг сонгосноор өмнө нь хадгалсан xml төслийг олоорой.

Өмнө нь тодорхойлсон форматын эцсийн үр дүнгээс гадна диаграмм, диаграммыг pdf болон форматаар экспортлох боломжтой. html баримтууд, түүнчлэн зураг хэлбэрээр болон вектор график(SVG).

Саяхан draw.io-г компьютер дээр програм хэлбэрээр татаж авах боломжтой болсон (ажиллах дээр ажилладаг Windows системүүд, MacOs, Chrome OS, Linux) болон суулгаарай гар утасны програмЭнэ нь iOS болон Android дээр ажилладаг.

Эдгээр зорилгын үүднээс та хяналтын самбар дээрх "Нарийвчилсан" товчийг дарж, нээгдэх цэснээс "Татаж авах" хэсгийг сонгох хэрэгтэй.

Шалгалтад оруулсан мэдээлэл нь аль салбар, үйл ажиллагааны чиглэл, үйлдвэрлэлийн салбар, програмчлал, удирдлага, дизайн, менежмент, түгээлт, нийлүүлэлт гэх мэтээс үл хамааран төсөл дээрээ ажиллаж эхлэхэд хангалттай юм.

Хэрэв танд бэрхшээл тулгарвал онлайн үйлчилгээний вэбсайтаас өгсөн заавар, албан ёсны баримт бичгийг үргэлж уншиж болно.

Сайн байна уу, эрхэм Хабразител. Би та бүхэнд Франческо Зуппичинигийн Draw.io-оос Vue.js програм руу орчуулсан нийтлэлийг толилуулж байна.


Энэ бол миний Habré дээрх анхны нийтлэл бөгөөд би UML диаграммаас Vue.js програм үүсгэх боломжийг олгодог гайхалтай хэрэгслийн тухай нийтлэлийг орчуулж эхлэхээр шийдсэн.
Гайхсан уу? Би үүнийг санамсаргүй хараад гайхсан.


Мэдээжийн хэрэг, ямар ч бета хувилбарын нэгэн адил ажиллах зүйл бий. Жишээлбэл, би хамгийн түрүүнд зохиогчтой холбоо барьж, бүрэлдэхүүн хэсгийн загвар бүтэц, замын нэршилд залруулга хийхийг хүсч байгаагаа хэлсэн. Зохиогч нэг цагийн дотор холбогдож, кодыг GitHub дээр байрлуулж, жижиг заавар бичсэн. PR-ыг хүлээн авсны дараа нийтлэлийг эх хувь руу нь линкээр орчуулах зөвшөөрөл авсан.


Энэ нь хэнд сонирхолтой вэ - би катаас асууж байна.

Draw.io-оос Vue.js програм руу


Аппликейшн бүтээх нь draw.io дээр график зурахтай адил хялбар байх ёстой
Франческо Саверио

Хэрэв та үүнийг өөрчилж чадна гэж хэлвэл яах вэ:






Үүний үр дүнд та гайхалтай бүтээгдэхүүнээ бүтээхэд шаардлагатай бүх файл, импортыг агуулсан Vue.js төсөл юм. Гайхалтай, тийм үү?


Би богино хэмжээний демо видео хийсэн бөгөөд та эндээс үзэх боломжтой.


Вэб програм бол зүгээр л график юм

Вэб програм бүрийг график хэлбэрээр илэрхийлж болно
Жаахан бодоцгооё. Та React, Angular эсвэл Vue гэх мэт фреймворк ашиглах үед танд үргэлж нэг үндсэн бүрэлдэхүүн хэсэг байх болно.


Бидний жишээн дээр үндсэн бүрэлдэхүүн хэсэг нь бүрэлдэхүүн хэсэг юм Апп, бусад бүх зүйл зүгээр л график зангилаа юм. Бид эхний түвшинд тодорхойлж чадна Гэрболон индекс зангилаашууд хүүхдүүд шиг Апп.


Вэб програм хөгжүүлэх нийтлэг стандарт бол бүрэлдэхүүн хэсгүүдийг график дээр суурилсан лавлах бүтцэд хадгалах явдал юм. Иймд бүрэлдэхүүн хэсэг нь өөрөө болон түүний бүх хүүхдүүд байрладаг бүрэлдэхүүн тус бүрт ижил нэртэй лавлахыг ихэвчлэн үүсгэдэг.


Жишээлбэл, Индекснь өөрөө бүрдсэн дэд графын үндэс, хэрэглэгчболон бичлэг. Тиймээс хэрэглээний бүтцэд энэ хийсвэрлэлийг дуурайх нь утга учиртай юм.




Энэ нь дэд хэсгүүд нь бие даасан байдаг тул өргөтгөх боломжтой, програмын бүтэц, логикийг хялбархан ойлгох гэсэн хоёр давуу талыг өгдөг.


Түүнээс гадна хүн үргэлж харж болно ерөнхий бүтэцзүгээр л график харах замаар програмууд.

Графикаас програм хүртэл

Тиймээс бид вэб аппликейшн бүр нь график байдаг тул үүнээс тэдгээрийг үүсгэж болно гэж бид хэлсэн.


Эцсийн эцэст, графикаар эхэлсэн файл бүр энгийн байдаг. Та зүгээр л модны огтлолцлыг олж, файл бүрийг локал үндсэн лавлахдаа үүсгэх хэрэгтэй бөгөөд та үүнийг рекурсив байдлаар хийж болно.


Асуудал нь орчин үеийн вэб програмуудад бүрэлдэхүүн хэсгүүд нь бусад бүрэлдэхүүн хэсгүүдийг импортлож ашигладаг болохыг бид мэднэ. Тиймээс бид тус бүрийг хамааралтай нь холбож, дотор нь импортлох зөв синтаксийг агуулсан одоогийн програмчлалын хэл дээр суурилсан динамик загвар үүсгэх хэрэгтэй.


AT 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 хэсэгт, үүнийг байрлуул Апп in Гэр.




Сайн байна! Та анхны графикаа үүсгэлээ! Үүнийг ашиглан Vuejs програмыг түүн дээр үндэслэн бүтээцгээе.


Бидэнд файл хэрэгтэй гэж хэлсэн xmlтэгэхээр экспортолно шахалтгүйгээр. дарна уу Файл > Экспорт хийх > XML > Шахсан (байхгүй).


Одоо Vue командын мөрийг ашиглан үндсэн Vue.js програмыг үүсгэ:


$ vue init webpack програм

Үүнийг хийсний дараа бид графикаас програм үүсгэхэд бэлэн боллоо.


$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 програм.



Удахгүй би энэ талаар гурван хэсгийг ашиглан модулийг хэрхэн ашиглах талаар нийтлэл гаргах гэж байна.

  • График бүтээгч

Апп, үндсэн логик нь хаана байна, графикаас лавлах болон файлуудыг үүсгэдэг. Графикийг жишээ ашиглан хийсэн График бүтээгч. Манай тохиолдолд би бүтээсэн DrawIoGraphBuilder, энэ нь draw.io-оос XML файлыг задлан шинжлэхийн тулд үүнийг өргөтгөдөг.
graph2app-drawio-graph-Builder


Хөгжүүлэгчид бусад төрлийн интерфэйсүүдтэй график шинжилгээ хийх үндсэн жишээг өргөтгөх боломжтой болно.


Файлграфик дээрх зангилааны хийсвэрлэл юм. Түүнд байгаа дээжБүрэлдэхүүн хэсэг нь үүсгэгддэг. Тиймээс, хэзээ graph2 програмГрафикийг авдаг, үүнд бас жишээ хэрэгтэй Файлүүн дээр дүрслэх аргыг дуудаж файлыг зөв хадгалах.



Таны харж байгаагаар багц нь модульчлагдсан бүтэцтэй. Бид ижил зүйлийг ашиглаж болно DrawIoGraphBuilderөөр жишээтэй ФайлЖишээ нь, ижил draw.io графикаас React програмуудыг үүсгэх.

Дүгнэлт

Энэ нийтлэл танд таалагдана гэж найдаж байна. Програмыг дүрслэн харуулах нь гүйцэтгэлийг сайжруулна гэдэгт би итгэлтэй байна. Номын сангийн бета хувилбар хэвээр байгаа бөгөөд сайжруулах шаардлагатай байна. Энэ санаа нь хүмүүст таалагдаж, хөгжилд хувь нэмрээ оруулна гэж бодож байна.


Надад санал бодлоо хэлээрэй. Сонирхсон танд баярлалаа.


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

Шошго: шошго нэмэх

Io - авсаархан объект хандалтат програмчлалын хэл

1-р хэсэг. Io хэлний онцлог, синтаксийн тойм

Агуулгын цуврал:

Объект хандалтат програмчлалын парадигм дээр суурилсан хэлний бүлэгт Io нь энгийн бөгөөд товч байдлаараа ялгардаг. Ялангуяа програмчлалын хэлийг хэрэгжүүлэхэд ямар ч алдаа дутагдалгүй төгс програм байдаггүй. Тийм ч учраас аливаа програмчлалын хэлний хэрэгцээ, үр ашиг, тав тухтай байдлын талаар эцсийн дүгнэлт гаргахын өмнө түүний чадвар, онцлог шинж чанаруудыг (энэ тохиолдолд Io), түүнчлэн түүний хэрэглээний талбарыг хангалттай нарийвчлан судлах шаардлагатай байдаг. хөгжүүлэгч гэх мэт.

Ио хэлний үүссэн түүх

Ио хэл нь 2002 онд түүний зохиогч Стив Декорте програмчлалын хэлний үйл ажиллагаа, хэрэгжүүлэх зарчмуудыг илүү сайн ойлгохыг хичээж, онолыг практиктай хослуулж, өөрийн энгийн бөгөөд товч хэлээр бичихээр шийдсэн үед гарч ирэв. Decort нь Io хэлийг цэвэр, прототип дээр суурилсан, динамикаар бичигдсэн объект хандалтат хэл байхаар зохион бүтээсэн бөгөөд энэ нь "анги" ба "инстанс" гэсэн ялгааг арилгадаг. Википедиа нь Smalltalk ("бүх зүйл бол объект" гэсэн зарчим ба динамик бичих), Self болон NewtonScript (прототип дээр суурилсан объектын загвар), Lisp (заавар, өгөгдлийн дүйцэхүйц байдал) зэрэг хэлнүүдийн Io-д үзүүлэх нөлөөг тэмдэглэв. програмын код), түүнчлэн Lua болон act1.

Ерөнхий мэдээлэл

Io програмын кодыг авсаархан, зөөврийн компьютер ашиглан орчуулж, гүйцэтгэдэг виртуал машин. Төрөл бүрийн платформд зориулсан Io багцууд түүний вэб сайт дээр байрладаг. Io хэлийг BSD/MIT лицензийн нөхцлийн дагуу түгээдэг.

Үндсэн шинж чанарууд өгөгдсөн хэлЗохиогч өөрөө онцолж буй зүйл бол концепцийн энгийн бөгөөд товчлол, агуулах чадвар (бусад хэл дээр бичигдсэн кодтой хослуулах чадвар) ба өргөтгөх чадвар, ажиллах үед дотоод объектыг динамикаар өөрчлөх чадвар, дотоод ажиглалт, параллелизмын үзэл баримтлалын хэрэгжилт юм.

Io-д бүх объектууд нь програмыг гүйцэтгэх явцад өөрчлөгдөх чадвартай объектууд юм. Аливаа програмын код нь илэрхийллээс бүрдэх бөгөөд програмыг гүйцэтгэх явцад мөн өөрчилж болно. Илэрхийлэл нь эргээд үнэндээ мессеж дамжуулах заавар юм. Функц болон кодын блокуудын түвшинд объектуудын хамрах хүрээний механизмыг хэрэгжүүлсэн. Зэрэгцээ тооцооллыг удирдахад жүжигчид ашиглагддаг.

Програмын гүйцэтгэл

Io програмуудад функц байх шаардлагагүй. гол()эсвэл гүйцэтгэл эхлэх ёстой зарим тусгай объект. Тиймээс Io-программуудыг тодорхой хэмжээгээр скрипт гэж үзэж болно.

Програмыг эхэлж байна тушаалын мөрдараах байдлаар хийгддэг.

io төслүүд/io/my_first_prog.io

Та мөн Жагсаалт 1-д үзүүлсэн шиг Io орчуулагчийн интерактив горимд ажиллах боломжтой.

Жагсаалт 1. Io орчуулагчийг интерактив байдлаар ашиглах
$ io Io 20070410 Io> "It"s Io interpreter" println It"s Io interpreter ==> It"s Io interpreter Io>

Интерактив горимд зөвхөн оруулсан илэрхийллийн гүйцэтгэлийн үр дүнг харуулахаас гадна " угтвараар тэмдэглэгдсэн энэ илэрхийллээр буцаасан утгыг харуулна. ==> ". Энэ тохиолдолд илэрхийллийг гүйцэтгэх үр дүн нь буцах утгатай ижил байна.

Интерактив горимд оруулсан илэрхийллүүд нь Лобби нэртэй объектод харгалзах ерөнхий дээд түвшний контекстэд хийгдэнэ гэдгийг тэмдэглэх нь зүйтэй.

Жагсаалт 2. Io хөтөлбөрийн дээд түвшний контекстийн агуулга
$io Io 20070410 Io> хэвлэх Object_0x9898a88: Lobby = Object_0x9898a88 Protos = Object_0x9898550 args = method(...) exit = method(...) forward = method(...) launchPath = "/home/alexs/project/ " ==> Object_0x9898a88: Lobby = Object_0x9898a88 Protos = Object_0x9898550 args = method(...) exit = method(...) forward = method(...) 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-д гурван хуваарилалтын оператор байдаг:

  • ::= слот үүсгэж, уг үүрэнд тохируулагч үүсгэж, үүрэнд утгыг оноох;
  • := слот үүсгэж, түүнд утга онооно;
  • = хэрэв үүр байгаа бол түүнд утга оноож, эс бөгөөс үл хамаарах зүйл хийгдэнэ.

Даалгаврын операторуудыг эмхэтгэх үед зохих мессеж рүү хөрвүүлдэг бөгөөд үүнийг доор харуулав:

бета::= newSlot("бета", 7)-д 7 эмхэтгэнэ:= 7 нь setSlot("бета", 7)-д хөрвүүлэв("бета", 7) бета = updateSlot("бета", 7)-д 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> 2e010000000010102 Io> 2e014e. Io> 0xFF + 0x3 ==> 258 Io> 0XE - 0xa ==> 4 Io>

Арифметик хэллэгийг уламжлалт аргын дагуу үнэлдэг боловч арифметик үйлдлийг илэрхийлдэг операторуудыг орчуулагч дотор харгалзах аргуудын дуудлага болгон хувиргадаг (энэ механизмыг хэрэглэгчээс нуусан):

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

Тооцооллын үр дүнг зарим объект руу шилжүүлэхийн тулд энэ аргыг ашигладаг doString(), Жагсаалт 7-д харуулсны дагуу.

Жагсаалт 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 хэл дээрх логик хяналтын бүтцийн ажиллагааг хангахын тулд тусгай синглтонуудыг (singleton) тодорхойлдог. үнэн(үнэн) ба худлаа(худал) түүнчлэн тусгай синглтон тэг, тодорхойгүй утгыг илэрхийлдэг ("утгагүй").
Логик харьцуулах үйлдлүүдийг дараах аргуудыг ашиглан гүйцэтгэдэг. ==!=><>=<= , буцах үнэнэсвэл худлаа. Үүнээс гадна арга бий харьцуулах(), энэ нь утгыг буцаана -1 (бага), 0 (тэнцүү) эсвэл 1 (илүү их) ба үнэ цэнийг харьцуулах тусгай аргуудыг хэрэгжүүлэхэд ашигладаг.

Арга хэрэв()дараах хэлбэрээр ашигладаг.

хэрэв(<условие>, [, өөр ]) if(хүлээн авагч == 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 маягийн аргуудыг бас дэмждэг: хэрэв үнэн(), ifFalse(), ifNil()болон ifNonNil(), танд дараах хэлбэрээр илэрхийлэл бичих боломжийг олгоно.

(нийлбэр< 100) ifTrue(x:= sum) ifFalse(x:= 100)

Энд та анхны нөхцөл илэрхийллийг хаалтанд бичих ёстой гэдгийг онцгой анхаарах хэрэгтэй.

Цикл

Хамгийн энгийн гогцоо бол аргыг ашиглан хэрэгжүүлсэн болзолгүй хязгааргүй гогцоо юм давталт():

давталт("хязгааргүй давталт" println)

Хэрэв давталт ямар ч нөхцөлийг шалгахгүйгээр тодорхой тооны удаа давтагдах ёстой бол энэ аргыг хэрэглэнэ. давтах(), Жагсаалт 9-д үзүүлсэн шиг.

Жагсаалт 9. Repeat() аргыг ашиглах
Io> 3 давтан("Анхааруулга!" println) Анхааруулга! Анхааруулга! Анхааруулга! ==> Анхааруулга! Io>

Яг хэдэн давтагдах нь урьдчилан тодорхойгүй боловч давталтыг гүйцэтгэх тодорхой нөхцөлийг тодорхойлсон гогцоог аргыг ашиглан бичнэ. байхад():

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

Энэ мөчлөгийн онцлог нь хэрэв мөчлөгийн үндсэн хэсэгт нэгээс олон мессеж бичих шаардлагатай бол эдгээр мессежийг бие биенээсээ шилжих тэмдэгээр тусгаарлах ёстой. шинэ мөр, таслал биш, эс тэгвээс гогцоо зөв ажиллахгүй. Нэмж дурдахад эхний мөрөнд болзолт илэрхийлэл үлдээж, гогцоонд байгаа мессеж бүрийг тусдаа мөрөнд бичихийг зөвлөж байна. Жагсаалт 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. For давталт зохион байгуулах жишээ
//энэ гогцоонд тоолуур солих алхамыг заагаагүй байна 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, завсарлага))-> i хэвлэх)->) 134567==> nil Io>

Гогцоог стандарт бусаар дуусгах тохиолдолд ( завсарлага) буцах утгыг тодорхойгүй гэж үзнэ (гэж тэмдэглэнэ тэг).

Арга буцахКодын блок эсвэл аргын биетийн аль ч хэсгээс шаардлагатай буцаах утгатай гарах боломжийг танд олгоно, жишээлбэл:

Жагсаалт 13. Аргын утгыг буцаахын тулд буцах аргыг ашиглана
Io> тест:= арга("эхний" println; "хоёр дахь" println; буцах "гарах"; "гурав дахь" println) ==> арга ("эхний" println; "хоёр дахь" println; буцах "гарах"; "гурав дахь" println) Io> эхний секундын тест ==> Io-оос гарах>

Io хэл нь мөн давталтыг хэрэгжүүлдэг тус бүр, гэхдээ түүний практик хэрэглээ нь уламжлалт мөчлөгийг ашиглахаас арай өөр тул энэ мөчлөгийг дараагийн нийтлэлүүдэд авч үзэх болно.

Дүгнэлт

Io хэл нь цэвэр объект хэл, өөрөөр хэлбэл "бүх зүйл бол объект" гэсэн ойлголтын хэрэгжилт юм. Түүний синтакс нь энгийн бөгөөд ойлгомжтой боловч эхлээд харахад ер бусын мэт санагдаж магадгүй юм. Io нь бүх де факто стандарт бүтээц, операторуудыг хэрэгжүүлдэг.

Цувралын эхний нийтлэлийг тайлбарлав Ерөнхий шинж чанарболон Io програмчлалын хэлний синтакс. Хоёрдахь өгүүлэл нь тухайн хэлний объектын системийг, гурав дахь өгүүлэлд Io-ийн нэмэлт боломж, боломжуудыг авч үзэх болно.