{"id":2280,"date":"2026-06-19T16:41:05","date_gmt":"2026-06-19T16:41:05","guid":{"rendered":"https:\/\/www.vpascode.com\/vn\/plantuml-mermaid-graphviz-choose-guide\/"},"modified":"2026-06-19T16:41:05","modified_gmt":"2026-06-19T16:41:05","slug":"plantuml-mermaid-graphviz-choose-guide","status":"publish","type":"post","link":"https:\/\/www.vpascode.com\/vn\/plantuml-mermaid-graphviz-choose-guide\/","title":{"rendered":"PlantUML, Mermaid hay Graphviz? B\u1ea1n n\u00ean ch\u1ecdn c\u00f4ng c\u1ee5 n\u00e0o?"},"content":{"rendered":"<p><img fetchpriority=\"high\" alt=\"Hero banner illustration comparing diagramming tools PlantUML, Mermaid, and GraphViz with code blocks and visual flowcharts.\" class=\"alignnone size-full wp-image-1705\" decoding=\"async\" fetchpriority=\"high\" height=\"768\" sizes=\"(max-width: 1376px) 100vw, 1376px\" src=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/06\/plantuml-mermaid-graphviz-comparison-guide.jpg\" srcset=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/06\/plantuml-mermaid-graphviz-comparison-guide.jpg 1376w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/06\/plantuml-mermaid-graphviz-comparison-guide-300x167.jpg 300w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/06\/plantuml-mermaid-graphviz-comparison-guide-1024x572.jpg 1024w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/06\/plantuml-mermaid-graphviz-comparison-guide-768x429.jpg 768w\" width=\"1376\"\/><\/p>\n<p>Trong th\u1ebf gi\u1edbi ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m, m\u1ed9t b\u1ee9c tranh th\u1ef1c s\u1ef1 \u0111\u00e1ng gi\u00e1 ng\u00e0n l\u1eddi n\u00f3i. C\u00e1c s\u01a1 \u0111\u1ed3 ki\u1ebfn tr\u00fac, s\u01a1 \u0111\u1ed3 lu\u1ed3ng v\u00e0 s\u01a1 \u0111\u1ed3 tr\u00ecnh t\u1ef1 l\u00e0 y\u1ebfu t\u1ed1 thi\u1ebft y\u1ebfu \u0111\u1ec3 t\u00e0i li\u1ec7u h\u00f3a, l\u1eadp k\u1ebf ho\u1ea1ch v\u00e0 truy\u1ec1n \u0111\u1ea1t c\u00e1c \u00fd t\u01b0\u1edfng ph\u1ee9c t\u1ea1p. Tuy nhi\u00ean, ph\u01b0\u01a1ng ph\u00e1p k\u00e9o-th\u1ea3 truy\u1ec1n th\u1ed1ng \u0111\u1ec3 t\u1ea1o ra c\u00e1c h\u00ecnh \u1ea3nh n\u00e0y c\u00f3 th\u1ec3 ch\u1eadm, kh\u00f4ng nh\u1ea5t qu\u00e1n v\u00e0 kh\u00f3 ki\u1ec3m so\u00e1t phi\u00ean b\u1ea3n. \u0110\u00e2y ch\u00ednh l\u00e0 n\u01a1i m\u00e0 &#8220;&#8221;<a href=\"\/overview\"><strong>s\u01a1 \u0111\u1ed3 d\u01b0\u1edbi d\u1ea1ng m\u00e3&#8221;<\/strong><\/a>th\u00ec ph\u00e1t huy t\u00e1c d\u1ee5ng, v\u00e0 ba nh\u00e0 cung c\u1ea5p ch\u00ednh th\u1ed1ng tr\u1ecb l\u0129nh v\u1ef1c n\u00e0y: PlantUML, Mermaid v\u00e0 Graphviz.<\/p>\n<p>T\u1ea1i &#8220;<strong>Visual Paradigm&#8221;<\/strong>, ch\u00fang t\u00f4i hi\u1ec3u r\u1eb1ng m\u1ed7i c\u00f4ng c\u1ee5 trong s\u1ed1 n\u00e0y \u0111\u1ec1u c\u00f3 nh\u1eefng \u0111i\u1ec3m m\u1ea1nh ri\u00eang. \u0110\u00f3 l\u00e0 l\u00fd do ch\u00fang t\u00f4i \u0111\u00e3 t\u1ea1o ra &#8220;<a href=\"https:\/\/www.vpascode.com\/\" rel=\"noopener\" target=\"_blank\">VPasCode&#8221;<\/a>, n\u1ec1n t\u1ea3ng th\u1ed1ng nh\u1ea5t c\u1ee7a ch\u00fang t\u00f4i, mang c\u1ea3 ba c\u00f4ng c\u1ee5 n\u00e0y\u2014v\u00e0 h\u01a1n th\u1ebf n\u1eefa\u2014v\u00e0o m\u1ed9t tr\u00ecnh so\u1ea1n th\u1ea3o \u0111\u00e1m m\u00e2y duy nh\u1ea5t, m\u1ea1nh m\u1ebd. H\u01b0\u1edbng d\u1eabn n\u00e0y s\u1ebd gi\u00fap b\u1ea1n l\u00e0m ch\u1ee7 nh\u1eefng \u0111i\u1ec3m m\u1ea1nh c\u1ee7a t\u1eebng c\u00fa ph\u00e1p, gi\u00fap b\u1ea1n d\u1ec5 d\u00e0ng ch\u1ecdn \u0111\u00fang c\u00f4ng c\u1ee5 cho tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng c\u1ee5 th\u1ec3 c\u1ee7a m\u00ecnh trong khi v\u1eabn duy tr\u00ec m\u1ed9t quy tr\u00ecnh l\u00e0m vi\u1ec7c nh\u1ea5t qu\u00e1n.<\/p>\n<h2>M\u1ed9t ng\u00f4i nh\u00e0 th\u1ed1ng nh\u1ea5t cho s\u01a1 \u0111\u1ed3 d\u01b0\u1edbi d\u1ea1ng m\u00e3<\/h2>\n<p>Tr\u01b0\u1edbc khi \u0111i s\u00e2u v\u00e0o so s\u00e1nh, \u0111i\u1ec1u \u0111\u00e1ng l\u01b0u \u00fd l\u00e0 s\u1ee9c m\u1ea1nh c\u1ee7a m\u1ed9t &#8220;<strong>n\u1ec1n t\u1ea3ng th\u1ed1ng nh\u1ea5t&#8221;.<\/strong> Trong qu\u00e1 kh\u1ee9, vi\u1ec7c s\u1eed d\u1ee5ng c\u00e1c c\u00f4ng c\u1ee5 n\u00e0y c\u00f3 ngh\u0129a l\u00e0 qu\u1ea3n l\u00fd c\u00e1c m\u00f4i tr\u01b0\u1eddng c\u1ee5c b\u1ed9 r\u1eddi r\u1ea1c, c\u00e0i \u0111\u1eb7t c\u00e1c ph\u1ee5 thu\u1ed9c, ho\u1eb7c chuy\u1ec3n \u0111\u1ed5i gi\u1eefa c\u00e1c c\u00f4ng c\u1ee5 web kh\u00f4ng li\u00ean k\u1ebft. &#8220;<a href=\"https:\/\/www.vpascode.com\/\" rel=\"noopener\" target=\"_blank\">VPasCode&#8221;<\/a> lo\u1ea1i b\u1ecf s\u1ef1 c\u1ea3n tr\u1edf n\u00e0y b\u1eb1ng c\u00e1ch cung c\u1ea5p m\u1ed9t b\u1ea3ng v\u1ebd ch\u1ec9nh s\u1eeda t\u1eadp trung v\u00e0 m\u1ed9t c\u00f4ng c\u1ee5 s\u01a1 \u0111\u1ed3 d\u01b0\u1edbi d\u1ea1ng m\u00e3 linh ho\u1ea1t, t\u1ef1 \u0111\u1ed9ng ph\u00e1t hi\u1ec7n v\u00e0 chuy\u1ec3n \u0111\u1ed5i ngay l\u1eadp t\u1ee9c v\u0103n b\u1ea3n sang \u0111\u1ecbnh d\u1ea1ng s\u01a1 \u0111\u1ed3 cho c\u1ea3 c\u00fa ph\u00e1p Mermaid, PlantUML v\u00e0 Graphviz.<\/p>\n<p>H\u00e3y xem x\u00e9t quy tr\u00ecnh l\u00e0m vi\u1ec7c \u0111i\u1ec3n h\u00ecnh: m\u1ed9t nh\u00e0 ph\u00e1t tri\u1ec3n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng Mermaid \u0111\u1ec3 t\u1ea1o nhanh m\u1ed9t s\u01a1 \u0111\u1ed3 lu\u1ed3ng trong file README, PlantUML cho s\u01a1 \u0111\u1ed3 l\u1edbp UML chi ti\u1ebft, v\u00e0 Graphviz cho c\u1ea5u tr\u00fac m\u1ea1ng ph\u1ee9c t\u1ea1p. VPasCode cho ph\u00e9p h\u1ecd th\u1ef1c hi\u1ec7n c\u1ea3 ba vi\u1ec7c n\u00e0y, \u0111\u1ea3m b\u1ea3o vi\u1ec7c hi\u1ec3n th\u1ecb nh\u1ea5t qu\u00e1n, th\u1eddi gian th\u1ef1c v\u00e0 chia s\u1ebb d\u1ec5 d\u00e0ng.<\/p>\n<h2>PlantUML: Ti\u00eau chu\u1ea9n doanh nghi\u1ec7p<\/h2>\n<p>PlantUML l\u00e0 m\u1ed9t c\u00f4ng c\u1ee5 s\u01a1 \u0111\u1ed3 d\u01b0\u1edbi d\u1ea1ng m\u00e3 tr\u01b0\u1edfng th\u00e0nh v\u00e0 m\u1ea1nh m\u1ebd, c\u00f3 ngu\u1ed3n g\u1ed1c s\u00e2u xa trong k\u1ef9 thu\u1eadt ph\u1ea7n m\u1ec1m doanh nghi\u1ec7p, chuy\u00ean bi\u1ebfn \u0111\u1ed5i c\u00e1c m\u00f4 h\u00ecnh s\u01a1 \u0111\u1ed3 ki\u1ebfn tr\u00fac ph\u1ee9c t\u1ea1p t\u1eeb v\u0103n b\u1ea3n th\u00e0nh c\u00e1c h\u00ecnh \u1ea3nh tr\u1ef1c quan s\u1ea1ch s\u1ebd.<\/p>\n<p><img alt=\"PlantUML class diagram generated using a text to diagram workflow in a diagram-as-code tool\" class=\"alignnone wp-image-854 size-full\" decoding=\"async\" height=\"792\" sizes=\"(max-width: 1264px) 100vw, 1264px\" src=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/06\/img_6a356fb65ee33.png\" srcset=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/06\/img_6a356fb65ee33.png 1264w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/06\/img_6a356fb65ee33-300x188.png 300w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/06\/img_6a356fb65ee33-1024x642.png 1024w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/06\/img_6a356fb65ee33-768x481.png 768w\" width=\"1264\"\/><\/p>\n<p>C\u00fa ph\u00e1p c\u1ee7a n\u00f3, d\u00f9 \u0111\u00f4i khi b\u1ecb coi l\u00e0 d\u00e0i d\u00f2ng, l\u1ea1i r\u1ea5t bi\u1ec3u c\u1ea3m. PlantUML s\u1eed d\u1ee5ng c\u00f4ng c\u1ee5 b\u1ed1 c\u1ee5c Graphviz theo m\u1eb7c \u0111\u1ecbnh, \u0111\u00e2y \u0111\u00e3 l\u00e0 ti\u00eau chu\u1ea9n v\u00e0ng cho vi\u1ec7c b\u1ed1 c\u1ee5c \u0111\u1ed3 th\u1ecb ph\u00e2n c\u1ea5p trong nhi\u1ec1u th\u1eadp k\u1ef7. \u0110i\u1ec1u n\u00e0y \u0111\u1ea3m b\u1ea3o r\u1eb1ng ngay c\u1ea3 nh\u1eefng s\u01a1 \u0111\u1ed3 ph\u1ee9c t\u1ea1p v\u1edbi nhi\u1ec1u n\u00fat c\u0169ng duy tr\u00ec v\u1ebb ngo\u00e0i chuy\u00ean nghi\u1ec7p, s\u1ea1ch s\u1ebd v\u00e0 c\u00f3 c\u1ea5u tr\u00fac t\u1ed1t.<\/p>\n<h3>C\u00e1c tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng t\u1ed1t nh\u1ea5t cho PlantUML:<\/h3>\n<ul>\n<li><strong>Ki\u1ebfn tr\u00fac doanh nghi\u1ec7p:<\/strong>Vi\u1ec7c h\u1ed7 tr\u1ee3 ArchiMate v\u00e0 C4 khi\u1ebfn n\u00f3 tr\u1edf n\u00ean l\u00fd t\u01b0\u1edfng \u0111\u1ec3 t\u00e0i li\u1ec7u h\u00f3a c\u00e1c c\u1ea3nh quan h\u1ec7 th\u1ed1ng quy m\u00f4 l\u1edbn.<\/li>\n<li><strong>M\u00f4 h\u00ecnh h\u00f3a UML ph\u1ee9c t\u1ea1p:<\/strong>\u0110\u1ed1i v\u1edbi c\u00e1c s\u01a1 \u0111\u1ed3 l\u1edbp chi ti\u1ebft, s\u01a1 \u0111\u1ed3 th\u00e0nh ph\u1ea7n v\u00e0 s\u01a1 \u0111\u1ed3 tri\u1ec3n khai, PlantUML l\u00e0 kh\u00f4ng c\u00f3 \u0111\u1ed1i th\u1ee7 .<\/li>\n<li><strong>S\u01a1 \u0111\u1ed3 l\u1edbn:<\/strong>Khi b\u1ea1n c\u1ea7n t\u1ea1o c\u00e1c s\u01a1 \u0111\u1ed3 c\u00f3 h\u01a1n 30 n\u00fat, c\u00f4ng c\u1ee5 b\u1ed1 c\u1ee5c m\u1ea1nh m\u1ebd c\u1ee7a PlantUML ph\u00e1t huy t\u00e1c d\u1ee5ng, gi\u1ea3m thi\u1ec3u t\u1ed1i \u0111a c\u00e1c \u0111\u01b0\u1eddng ch\u1ed3ng ch\u00e9o v\u00e0 c\u1eaft nhau .<\/li>\n<li><strong>C\u00e1c \u0111\u1ed9i ng\u0169 c\u00f3 n\u1ec1n t\u1ea3ng Java\/JetBrains:<\/strong>PlantUML t\u00edch h\u1ee3p li\u1ec1n m\u1ea1ch v\u1edbi c\u00e1c IDE c\u1ee7a JetBrains v\u00e0 l\u00e0 m\u1ed9t c\u00f4ng c\u1ee5 quen thu\u1ed9c \u0111\u1ed1i v\u1edbi c\u1ed9ng \u0111\u1ed3ng Java .<\/li>\n<\/ul>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:XLPBRziu4BuRy7yWieSutNMnlGgBeaxI0W6IRP6W2nJePIIDPM8fKY17ATp7V--851MHjfDB70_dyStZc_4xHs2fRzLoiLnK2fmJjxAqOFVYnt8Xn5feQB4G3sIbRe84wjgYSwcmsncTwFqvwDrXMw9TjVwZ4E7hHI4UZQo3aiNMF6AYTrD7FuackxiXR5UI_nGHvI0vuczIFE5BeGxEyeX_YGEhqXY5eADxwgq-xdvI_7LGpC4W5FIFB42GaII5gQZhIoNTRYZRWRW2aaP_GU17gMdqwpQF81MKWwS4T8DqZSHlRdMHjiWXZKPIITglU1geTvFvL3EV4PIEB5GaGcgNnlmVXqIwKcT3qjFEs6n6eC4hqskQK7ji6wywXpOhuFjvcArK-22_uzrb8Mh3bS1HRcmBb0QhpJUj3DIVhKfpZW-hDBiGxXFh4TRpeDm3jRqreUPfZCheMkPYdzF3tEX4QdVGm7UfyQc8hiT_-q2LiK1hXgZwzb1SyPJRQo3kzV0tSNpzttNqMVVMGxYJkYTqCmUrj5XHtY85kkcvJQdKzQMVqACJDi_8iod6phbrQfzWoqvVs2RHczl9RfxrKExIM6k-dTmDp_7tMLrkuwLtZNvNUFBSIaT9oa63KTvZPMmTSxV-MvvxG9hY7tg4kIZ0pANIVUIci_egXShJ0Ahg5Ij-u7aQNYCxPaW_p4Pjo__duA0Dr9mJou_a8OnF8EkiM1tiO-m3KeKQIz0JfGYsspn-ZHsVeXOrfMpghAdut4o5pgv9sDYd3y9eVkyh-iBnQ50ZymNliJEMLibR2vfvSQCV6Q2n-opHSt6ZULTB0bqXjqzvrWtJwfQB-H7uv-TwxLVd4N5S24UUcDBBXTzA_klxuE59CDzRv-BAj9rnVZC9qBNOD8t5naEQpllPcpF1XcUSr_uiChSGEt3YxGGWqvh3AeRjnqT5lwW_DBvWbdVAxBtoSZ66IxLpAarWyeTezkRrwrSvA8jRjCXDUDRoRs_f6L5CNH-ndOkDSwQIlbmnio67zVhj4OnXBhpjcDLnlShYKmnj20MPJfZjr912NF5eML32xTsG3Es0elklUjn_OTpvO-Zhy3F6yyJxixBPqSpZM95DFDibE0ot-wlcYob0AQ76u7m-UNf1yRI-OwVyW_0t\" rel=\"noopener noreferrer\" target=\"_blank\">\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:ZLO_Zzis5DyD-3iGr-6SD0wQrIY2v7e9Ui2v3UxQ0XqfYPQ8KAH2FZfmcWv5XymPEdNefK6692WGeDiPHGS3zptqJVf8IeeesvSkjFdutllztZzIzmnG3ROKuz5ub0fg33dbYQPwHNuQZmYP4abBDYFdeBdCWuHccMR6nCAgK3BI-zpfpLcPC3qf_S-CXEsD6LagdWKbpKgrP97UITRwYJJHtGcmSi9ncRKidMI7lqvnZo_1P70sHBn5jgmIfGIZidKFLilTxZl5dxUIwGn2GZyR00GPS10i5bKs4TmKBcrRufG2L_97Hl6GIsZycljBoWLDdAU8TCxWc06UcScDk4I6GMF41OVL1Bi1hEdCkvpvY6XYGDCKI0ZjIAd7RPDmayX1arWeb1xq2CtPLyfAw5XxRlUzQfzQBu4F-Z0BBjWvVyRcHpEIASm4Q-HAbnHYi4mzbKBHx7ijufZRWqaSNO1xX7h0iZuera0iJbN8UOoHAfdneTZ7TDutsXFQdERq6PViOnADPT_OC2fDWgP8KTXoMvnYb-jZ2bXhjqQEZtyuRdrcLdiASoujCDDpa77DKXYMI52PMonJB3KsyHswiyFw4VbfQh67ixNlFc4bElt4RT9wCmMl-b6xT2TAQ_LqxzrmtVnUgujbFFAkcRyh_F2SSWDHo443MPwnLEciZLtxtJ3sm3Jcxsh4Xg90SoZbvbiiEgfFOghO3LIaLg3YG-mdTzfEHu_fmrwhBV3_a1mjmsZs1yktv3QDHvHdWsHLTDLYRmrLo36diXife8l543zZ5Jv59PCGJrEbLOhFJPVemMiIRkpz3q9ZVkOp-ed78sUIuRomCrOf3PFehAGIv-94Bf6Wqgj1e8TaNgzVSlB4OfH5lNv10DVtb3okB_yTZ_hFm9VFfrD_UUuGjrV2ZYCSwl78tqj--o1u-2Zetro7vBjw_PlZyReYoyq5RY__gffz-xuVt3aWQ7SW2rwlVx47xVJEIBhvczpjA6mhzhcXDhfzI_-7WMk06G6xgjU_IfBLwpSoTsRZKOEyPJSShexQyA2rl7FxziqXFoXeYIGv5i9UP_k5j_LJWaRrvIj5D0ty3j7bvftqnOGsJXVET7ft1yadjhvyBOdO_EFCc-1sgyOuKW4Ze2gY5bsPPkJhjfrUOhv0MxTk_YnxC1AApOKioDAnl8Md5vmOV-YAlyHilaWn1OgKLn-m1sI3f7bUG0-hITXflVwz8kdLA_In_WCHiP491CjSEZV8-Wr-1Y12m18EmIB7gmy13H7kuISMVbV-1m00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\n\r\nclass Library {\r\n  - name: String\r\n  - address: String\r\n  - phone: String\r\n  + addMember(member: Member): void\r\n  + removeMember(memberId: String): void\r\n  + addItem(item: LibraryItem): void\r\n  + removeItem(itemId: String): void\r\n  + lendItem(memberId: String, itemId: String): boolean\r\n  + returnItem(itemId: String): boolean\r\n}\r\n\r\nclass LibraryItem {\r\n  # itemId: String\r\n  # title: String\r\n  # publisher: String\r\n  # publicationYear: int\r\n  # isAvailable: boolean\r\n  + getDetails(): String\r\n  + setAvailability(status: boolean): void\r\n}\r\n\r\nabstract class Book {\r\n  - isbn: String\r\n  - author: String\r\n  - pageCount: int\r\n  + getAuthor(): String\r\n}\r\n\r\nclass EBook {\r\n  - fileSizeMB: double\r\n  - format: String\r\n  - downloadUrl: String\r\n  + download(): void\r\n}\r\n\r\nclass PrintedBook {\r\n  - shelfLocation: String\r\n  - condition: String\r\n  + getShelfLocation(): String\r\n}\r\n\r\nclass Magazine {\r\n  - issueNumber: int\r\n  - volumeNumber: int\r\n  - coverDate: Date\r\n}\r\n\r\nclass DVD {\r\n  - durationMinutes: int\r\n  - director: String\r\n  - language: String\r\n  - subtitlesAvailable: boolean\r\n}\r\n\r\nclass Member {\r\n  - memberId: String\r\n  - name: String\r\n  - email: String\r\n  - phone: String\r\n  - membershipDate: Date\r\n  + borrowItem(item: LibraryItem): boolean\r\n  + returnItem(item: LibraryItem): boolean\r\n  + getBorrowedItems(): List\r\n}\r\n\r\nclass BorrowingRecord {\r\n  - recordId: String\r\n  - borrowDate: Date\r\n  - dueDate: Date\r\n  - returnDate: Date\r\n  - isOverdue(): boolean\r\n  - calculateFine(): double\r\n}\r\n\r\nclass Fine {\r\n  - fineId: String\r\n  - amount: double\r\n  - issueDate: Date\r\n  - isPaid: boolean\r\n  + payFine(): void\r\n}\r\n\r\nclass Librarian {\r\n  - staffId: String\r\n  - department: String\r\n  + processBorrowing(member: Member, item: LibraryItem): void\r\n  + processReturn(item: LibraryItem): void\r\n  + generateReport(): void\r\n  + manageInventory(): void\r\n}\r\n\r\n' M\u1ed1i quan h\u1ec7 th\u1eeba k\u1ebf\r\nLibraryItem &lt;|-- Book\r\nLibraryItem &lt;|-- Magazine\r\nLibraryItem &lt;|-- DVD\r\nBook &lt;|-- EBook\r\nBook &lt;|-- PrintedBook ' T\u1ed5 h\u1ee3p v\u00e0 T\u1eadp h\u1ee3p Library \"1\" -- \"nhi\u1ec1u\" Member : c\u00f3 &gt;\r\nLibrary \"1\" -- \"nhi\u1ec1u\" LibraryItem : ch\u1ee9a &gt;\r\nLibrary \"1\" -- \"nhi\u1ec1u\" Librarian : tuy\u1ec3n d\u1ee5ng &gt;\r\n\r\nMember \"1\" -- \"nhi\u1ec1u\" BorrowingRecord : c\u00f3 &gt;\r\nBorrowingRecord \"1\" -- \"1..*\" LibraryItem : tham chi\u1ebfu &gt;\r\nBorrowingRecord \"1\" -- \"0..*\" Fine : t\u1ea1o ra &gt;\r\n\r\n' Li\u00ean k\u1ebft\r\nLibrarian --&gt; BorrowingRecord : qu\u1ea3n l\u00fd &gt;\r\nMember --&gt; BorrowingRecord : t\u1ea1o ra &gt;\r\n\r\nnote top of Library : H\u1ec7 th\u1ed1ng trung t\u00e2m qu\u1ea3n l\u00fdnth\u00e0nh vi\u00ean, t\u00e0i s\u1ea3n v\u00e0 vi\u1ec7c cho m\u01b0\u1ee3n\r\nnote right of LibraryItem : L\u1edbp c\u01a1 s\u1edf tr\u1eeb t\u01b0\u1ee3ngncho t\u1ea5t c\u1ea3 t\u00e0i li\u1ec7u th\u01b0 vi\u1ec7n\r\n@enduml<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:ZLO_Zzis5DyD-3iGr-6SD0wQrIY2v7e9Ui2v3UxQ0XqfYPQ8KAH2FZfmcWv5XymPEdNefK6692WGeDiPHGS3zptqJVf8IeeesvSkjFdutllztZzIzmnG3ROKuz5ub0fg33dbYQPwHNuQZmYP4abBDYFdeBdCWuHccMR6nCAgK3BI-zpfpLcPC3qf_S-CXEsD6LagdWKbpKgrP97UITRwYJJHtGcmSi9ncRKidMI7lqvnZo_1P70sHBn5jgmIfGIZidKFLilTxZl5dxUIwGn2GZyR00GPS10i5bKs4TmKBcrRufG2L_97Hl6GIsZycljBoWLDdAU8TCxWc06UcScDk4I6GMF41OVL1Bi1hEdCkvpvY6XYGDCKI0ZjIAd7RPDmayX1arWeb1xq2CtPLyfAw5XxRlUzQfzQBu4F-Z0BBjWvVyRcHpEIASm4Q-HAbnHYi4mzbKBHx7ijufZRWqaSNO1xX7h0iZuera0iJbN8UOoHAfdneTZ7TDutsXFQdERq6PViOnADPT_OC2fDWgP8KTXoMvnYb-jZ2bXhjqQEZtyuRdrcLdiASoujCDDpa77DKXYMI52PMonJB3KsyHswiyFw4VbfQh67ixNlFc4bElt4RT9wCmMl-b6xT2TAQ_LqxzrmtVnUgujbFFAkcRyh_F2SSWDHo443MPwnLEciZLtxtJ3sm3Jcxsh4Xg90SoZbvbiiEgfFOghO3LIaLg3YG-mdTzfEHu_fmrwhBV3_a1mjmsZs1yktv3QDHvHdWsHLTDLYRmrLo36diXife8l543zZ5Jv59PCGJrEbLOhFJPVemMiIRkpz3q9ZVkOp-ed78sUIuRomCrOf3PFehAGIv-94Bf6Wqgj1e8TaNgzVSlB4OfH5lNv10DVtb3okB_yTZ_hFm9VFfrD_UUuGjrV2ZYCSwl78tqj--o1u-2Zetro7vBjw_PlZyReYoyq5RY__gffz-xuVt3aWQ7SW2rwlVx47xVJEIBhvczpjA6mhzhcXDhfzI_-7WMk06G6xgjU_IfBLwpSoTsRZKOEyPJSShexQyA2rl7FxziqXFoXeYIGv5i9UP_k5j_LJWaRrvIj5D0ty3j7bvftqnOGsJXVET7ft1yadjhvyBOdO_EFCc-1sgyOuKW4Ze2gY5bsPPkJhjfrUOhv0MxTk_YnxC1AApOKioDAnl8Md5vmOV-YAlyHilaWn1OgKLn-m1sI3f7bUG0-hITXflVwz8kdLA_In_WCHiP491CjSEZV8-Wr-1Y12m18EmIB7gmy13H7kuISMVbV-1m00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n             <\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:XLPBRziu4BuRy7yWieSutNMnlGgBeaxI0W6IRP6W2nJePIIDPM8fKY17ATp7V--851MHjfDB70_dyStZc_4xHs2fRzLoiLnK2fmJjxAqOFVYnt8Xn5feQB4G3sIbRe84wjgYSwcmsncTwFqvwDrXMw9TjVwZ4E7hHI4UZQo3aiNMF6AYTrD7FuackxiXR5UI_nGHvI0vuczIFE5BeGxEyeX_YGEhqXY5eADxwgq-xdvI_7LGpC4W5FIFB42GaII5gQZhIoNTRYZRWRW2aaP_GU17gMdqwpQF81MKWwS4T8DqZSHlRdMHjiWXZKPIITglU1geTvFvL3EV4PIEB5GaGcgNnlmVXqIwKcT3qjFEs6n6eC4hqskQK7ji6wywXpOhuFjvcArK-22_uzrb8Mh3bS1HRcmBb0QhpJUj3DIVhKfpZW-hDBiGxXFh4TRpeDm3jRqreUPfZCheMkPYdzF3tEX4QdVGm7UfyQc8hiT_-q2LiK1hXgZwzb1SyPJRQo3kzV0tSNpzttNqMVVMGxYJkYTqCmUrj5XHtY85kkcvJQdKzQMVqACJDi_8iod6phbrQfzWoqvVs2RHczl9RfxrKExIM6k-dTmDp_7tMLrkuwLtZNvNUFBSIaT9oa63KTvZPMmTSxV-MvvxG9hY7tg4kIZ0pANIVUIci_egXShJ0Ahg5Ij-u7aQNYCxPaW_p4Pjo__duA0Dr9mJou_a8OnF8EkiM1tiO-m3KeKQIz0JfGYsspn-ZHsVeXOrfMpghAdut4o5pgv9sDYd3y9eVkyh-iBnQ50ZymNliJEMLibR2vfvSQCV6Q2n-opHSt6ZULTB0bqXjqzvrWtJwfQB-H7uv-TwxLVd4N5S24UUcDBBXTzA_klxuE59CDzRv-BAj9rnVZC9qBNOD8t5naEQpllPcpF1XcUSr_uiChSGEt3YxGGWqvh3AeRjnqT5lwW_DBvWbdVAxBtoSZ66IxLpAarWyeTezkRrwrSvA8jRjCXDUDRoRs_f6L5CNH-ndOkDSwQIlbmnio67zVhj4OnXBhpjcDLnlShYKmnj20MPJfZjr912NF5eML32xTsG3Es0elklUjn_OTpvO-Zhy3F6yyJxixBPqSpZM95DFDibE0ot-wlcYob0AQ76u7m-UNf1yRI-OwVyW_0t\" rel=\"noopener noreferrer\" target=\"_blank\">\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span>\n<\/a>\n<\/div>\n<\/div>\n<h2>Mermaid: Nh\u00e0 v\u00f4 \u0111\u1ecbch th\u00e2n thi\u1ec7n v\u1edbi Markdown<\/h2>\n<p><strong>Mermaid<\/strong>\u0111\u00e3 b\u00f9ng n\u1ed5 v\u1ec1 \u0111\u1ed9 ph\u1ed5 bi\u1ebfn, ph\u1ea7n l\u1edbn nh\u1edd v\u00e0o kh\u1ea3 n\u0103ng t\u00edch h\u1ee3p s\u1eb5n trong c\u00e1c c\u00f4ng c\u1ee5 nh\u01b0 GitHub, GitLab, Notion v\u00e0 Obsidian. C\u00fa ph\u00e1p c\u1ee7a n\u00f3 \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 g\u1ea7n g\u0169i v\u1edbi Markdown, khi\u1ebfn vi\u1ec7c h\u1ecdc v\u00e0 s\u1eed d\u1ee5ng tr\u1edf n\u00ean c\u1ef1c k\u1ef3 d\u1ec5 d\u00e0ng, \u0111\u1eb7c bi\u1ec7t \u0111\u1ed1i v\u1edbi c\u00e1c l\u1eadp tr\u00ecnh vi\u00ean \u0111\u00e3 quen thu\u1ed9c v\u1edbi vi\u1ec7c vi\u1ebft b\u1eb1ng v\u0103n b\u1ea3n thu\u1ea7n.<\/p>\n<p id=\"ySGhaBA\"><img alt=\"Mermaid flowchart preview using a text to diagram editor inside a diagram-as-code tool\" class=\"alignnone wp-image-855 size-full\" decoding=\"async\" height=\"792\" sizes=\"(max-width: 1264px) 100vw, 1264px\" src=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/06\/img_6a35703b518b4.png\" srcset=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/06\/img_6a35703b518b4.png 1264w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/06\/img_6a35703b518b4-300x188.png 300w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/06\/img_6a35703b518b4-1024x642.png 1024w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/06\/img_6a35703b518b4-768x481.png 768w\" width=\"1264\"\/><\/p>\n<p>Mermaid h\u1ed7 tr\u1ee3 m\u1ed9t b\u1ed9 lo\u1ea1i s\u01a1 \u0111\u1ed3 r\u1ed9ng l\u1edbn v\u00e0 \u0111ang ph\u00e1t tri\u1ec3n, bao g\u1ed3m: s\u01a1 \u0111\u1ed3 lu\u1ed3ng, s\u01a1 \u0111\u1ed3 tr\u00ecnh t\u1ef1, s\u01a1 \u0111\u1ed3 l\u1edbp, s\u01a1 \u0111\u1ed3 quan h\u1ec7 th\u1ef1c th\u1ec3, b\u1ea3n \u0111\u1ed3 t\u01b0 duy, C4, bi\u1ec3u \u0111\u1ed3 Git, Kanban v\u00e0 nhi\u1ec1u h\u01a1n n\u1eefa. C\u00fa ph\u00e1p c\u1ee7a n\u00f3 \u0111\u1ecdc gi\u1ed1ng nh\u01b0 m\u1ed9t danh s\u00e1ch r\u00e0ng bu\u1ed9c ho\u1eb7c m\u00e3 gi\u1ea3, \u0111i\u1ec1u m\u00e0 nhi\u1ec1u ng\u01b0\u1eddi th\u1ea5y tr\u1ef1c quan \u0111\u1ec3 m\u00f4 t\u1ea3 lu\u1ed3ng quy tr\u00ecnh.<\/p>\n<h3>C\u00e1c tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng t\u1ed1t nh\u1ea5t cho Mermaid:<\/h3>\n<ul>\n<li><strong>T\u00e0i li\u1ec7u trong kho l\u01b0u tr\u1eef:<\/strong>\u0110\u1ed1i v\u1edbi c\u00e1c t\u1ec7p README, wiki v\u00e0 t\u00e0i li\u1ec7u markdown, Mermaid l\u00e0 l\u1ef1a ch\u1ecdn m\u1eb7c \u0111\u1ecbnh nh\u1edd kh\u1ea3 n\u0103ng hi\u1ec3n th\u1ecb s\u1eb5n c\u00f3 tr\u00ean GitHub v\u00e0 GitLab.<\/li>\n<li><strong>Ph\u00e1c th\u1ea3o nhanh &amp; \u00dd t\u01b0\u1edfng:<\/strong>\u0110\u01b0\u1eddng cong h\u1ecdc t\u1eadp th\u1ea5p c\u1ee7a n\u00f3 khi\u1ebfn n\u00f3 ho\u00e0n h\u1ea3o \u0111\u1ec3 ph\u00e1c th\u1ea3o \u00fd t\u01b0\u1edfng nhanh ch\u00f3ng. Khi b\u1ea1n y\u00eau c\u1ea7u m\u1ed9t AI LLM cung c\u1ea5p gi\u1ea3i ph\u00e1p chuy\u1ec3n \u0111\u1ed5i v\u0103n b\u1ea3n th\u00e0nh s\u01a1 \u0111\u1ed3, n\u00f3 g\u1ea7n nh\u01b0 lu\u00f4n tr\u1ea3 v\u1ec1 c\u00fa ph\u00e1p Mermaid, bi\u1ebfn n\u00f3 th\u00e0nh m\u1ed9t c\u00f4ng c\u1ee5 s\u01a1 \u0111\u1ed3 d\u01b0\u1edbi d\u1ea1ng m\u00e3 d\u1ec5 ti\u1ebfp c\u1eadn cho t\u00e0i li\u1ec7u ph\u00e1t tri\u1ec3n nhanh ch\u00f3ng.<\/li>\n<li><strong>C\u00e1c nh\u00f3m t\u1eadp trung v\u00e0o Agile &amp; Giao di\u1ec7n tr\u01b0\u1edbc:<\/strong>\u0110\u00e2y l\u00e0 l\u1ef1a ch\u1ecdn y\u00eau th\u00edch c\u1ee7a c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n giao di\u1ec7n tr\u01b0\u1edbc v\u00e0 c\u00e1c nh\u00f3m agile, nh\u1eefng ng\u01b0\u1eddi \u01b0u ti\u00ean t\u1ed1c \u0111\u1ed9 v\u00e0 s\u1ef1 \u0111\u01a1n gi\u1ea3n h\u01a1n l\u00e0 m\u00f4 h\u00ecnh h\u00f3a doanh nghi\u1ec7p ph\u1ee9c t\u1ea1p.<\/li>\n<li><strong>H\u00e0nh tr\u00ecnh ng\u01b0\u1eddi d\u00f9ng v\u00e0 quy tr\u00ecnh \u0111\u01a1n gi\u1ea3n:<\/strong>\u0110\u1ed1i v\u1edbi s\u01a1 \u0111\u1ed3 lu\u1ed3ng v\u00e0 b\u1ea3n \u0111\u1ed3 h\u00e0nh tr\u00ecnh ng\u01b0\u1eddi d\u00f9ng, Mermaid nhanh ch\u00f3ng, s\u1ea1ch s\u1ebd v\u00e0 hi\u1ec7u qu\u1ea3.<\/li>\n<\/ul>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">Mermaid<\/span>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#mermaid:eNpdkd9ugjAUh+9NfIfzAmZvsAUFFP+wBd3F0nDRtGfapLSkLRije\/fRomDkjpyv3+932l+pz+xEjYNDPJ1A90UkRZTwrc4oJWgDOSKHHXLBqISIt4JhCbPZO8yvmQXhgCpIKjRHVOzy8Ted9J65Z24\/aG+wIAvauQYI9mi8xnr9UoPTkBTl87Fc3yAme3ZC3kiEWDPXoVFda6FchcqVj5g4VElI5Bwq\/oJ4IAlASu6OpKWyoU5oNSjSQCyvsaBHpa2wsKMcx02W4yYrcjBIgx6+JFXlM+FLZ+TTcDRwQOvskJCFhDUpkKFoMUyhQNvIAHlk3dd8nFiF3w1JtexeCIbUO70J4+11f6lqpysLWVUb3SIfW2\/H1jsf3E3NBd6g0I0TCqE3z5q6fOb9DnmHu8Yo\/y79rd2RvO\/4DwW\/pJQ=\" rel=\"noopener noreferrer\" target=\"_blank\">\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\n<span>Ch\u1ec9nh s\u1eeda Mermaid trong VPasCode<\/span>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">Mermaid<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#mermaid:eNptUs9KwzAYvwu+w\/cC4hsobtOpm0Oht9DDjLqUbdmcqTqcB08eRHR48iBYy5AKgjpFbA4eUnyPvIlfUusKmkND4ff9\/n3ZaXUOKKv3BDil6SnAs0CKOg7bIJiOR31oMvXKG3hpebENrKPjdwpUx\/ccxNcT7COIQx+Ejj9dmJmZg8JRcqnu+kDVGLrIEXrQUrcgel9PWt4gFTKFXUMYR9wwjbrzx9NTqXjBUAyKajyAIilree7BlpZnlKGQHKVo\/MrIz6wkQ1TmqKRekDsHcPOMFZtiACVSVQ8cWiknWvjgsKkCCntJ5GYmSjbHInFYvW3kn4H6Wl7TFP\/Du2hBS6TwM41GVMAZNDwV\/DItWVDZNBLaQmiaOhl2EDyJXZ7EXiYVDGTTBWgxGXpanvhYH1p28+gs0gpJLrEJAUzdYgOHKhLAGwzHTtu\/RlaskVVSQ\/1HDk2UELDr43b+DBj4ahoum162vxXi+OqOm4ch7\/81VrG46pHTM2S+SSsj9ITVhGY1+BSE1clFr06ir5F1HBiZnuWVB7PgsO0ObKk3z2xZnmG7TS3Hbn4wa6FGNvx6HxcbBx40sI9ufq8GX0szfQNKDzRD\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Mermaid in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-mermaid\"><code class=\"language-mermaid\" data-language=\"mermaid\" class=\"language-mermaid\">flowchart TD\r\n    A[C\u1ea3m th\u1ea5y kh\u00f4ng kh\u1ecfe ho\u1eb7c c\u1ea7n t\u01b0 v\u1ea5n y t\u1ebf] --&gt; B{\u0110\u00e2y c\u00f3 ph\u1ea3i l\u00e0 tr\u01b0\u1eddng h\u1ee3p kh\u1ea9n c\u1ea5p?}\r\n\r\n    B --&gt;|C\u00f3| C[G\u1ecdi d\u1ecbch v\u1ee5 c\u1ea5p c\u1ee9u ho\u1eb7c \u0111\u1ebfn ph\u00f2ng c\u1ea5p c\u1ee9u]\r\n    B --&gt;|Kh\u00f4ng| D[L\u00ean l\u1ecbch h\u1eb9n b\u00e1c s\u0129]\r\n\r\n    D --&gt; E[Tham d\u1ef1 cu\u1ed9c h\u1eb9n]\r\n    E --&gt; F[B\u00e1c s\u0129 \u0111\u00e1nh gi\u00e1]\r\n\r\n    F --&gt; G{\u0110\u00e3 c\u00f3 ch\u1ea9n \u0111o\u00e1n?}\r\n\r\n    G --&gt;|C\u00f3| H[K\u1ebf ho\u1ea1ch \u0111i\u1ec1u tr\u1ecb]\r\n    G --&gt;|Kh\u00f4ng| I[\u0110\u1eb7t h\u00e0ng x\u00e9t nghi\u1ec7m]\r\n\r\n    I --&gt; J[Nh\u1eadn k\u1ebft qu\u1ea3 x\u00e9t nghi\u1ec7m]\r\n    J --&gt; F\r\n\r\n    H --&gt; K[Tu\u00e2n th\u1ee7 \u0111i\u1ec1u tr\u1ecb]\r\n    K --&gt; L{Tri\u1ec7u ch\u1ee9ng \u0111\u00e3 c\u1ea3i thi\u1ec7n?}\r\n\r\n    L --&gt;|C\u00f3| M[Ph\u1ee5c h\u1ed3i \/ Theo d\u00f5i \u0111\u1ecbnh k\u1ef3]\r\n    L --&gt;|Kh\u00f4ng| N[Quay l\u1ea1i g\u1eb7p b\u00e1c s\u0129]\r\n    N --&gt; F<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#mermaid:eNptUs9KwzAYvwu+w\/cC4hsobtOpm0Oht9DDjLqUbdmcqTqcB08eRHR48iBYy5AKgjpFbA4eUnyPvIlfUusKmkND4ff9\/n3ZaXUOKKv3BDil6SnAs0CKOg7bIJiOR31oMvXKG3hpebENrKPjdwpUx\/ccxNcT7COIQx+Ejj9dmJmZg8JRcqnu+kDVGLrIEXrQUrcgel9PWt4gFTKFXUMYR9wwjbrzx9NTqXjBUAyKajyAIilree7BlpZnlKGQHKVo\/MrIz6wkQ1TmqKRekDsHcPOMFZtiACVSVQ8cWiknWvjgsKkCCntJ5GYmSjbHInFYvW3kn4H6Wl7TFP\/Du2hBS6TwM41GVMAZNDwV\/DItWVDZNBLaQmiaOhl2EDyJXZ7EXiYVDGTTBWgxGXpanvhYH1p28+gs0gpJLrEJAUzdYgOHKhLAGwzHTtu\/RlaskVVSQ\/1HDk2UELDr43b+DBj4ahoum162vxXi+OqOm4ch7\/81VrG46pHTM2S+SSsj9ITVhGY1+BSE1clFr06ir5F1HBiZnuWVB7PgsO0ObKk3z2xZnmG7TS3Hbn4wa6FGNvx6HxcbBx40sI9ufq8GX0szfQNKDzRD\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Mermaid in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n             <\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#mermaid:eNpdkd9ugjAUh+9NfIfzAmZvsAUFFP+wBd3F0nDRtGfapLSkLRije\/fRomDkjpyv3+932l+pz+xEjYNDPJ1A90UkRZTwrc4oJWgDOSKHHXLBqISIt4JhCbPZO8yvmQXhgCpIKjRHVOzy8Ted9J65Z24\/aG+wIAvauQYI9mi8xnr9UoPTkBTl87Fc3yAme3ZC3kiEWDPXoVFda6FchcqVj5g4VElI5Bwq\/oJ4IAlASu6OpKWyoU5oNSjSQCyvsaBHpa2wsKMcx02W4yYrcjBIgx6+JFXlM+FLZ+TTcDRwQOvskJCFhDUpkKFoMUyhQNvIAHlk3dd8nFiF3w1JtexeCIbUO70J4+11f6lqpysLWVUb3SIfW2\/H1jsf3E3NBd6g0I0TCqE3z5q6fOb9DnmHu8Yo\/y79rd2RvO\/4DwW\/pJQ=\" rel=\"noopener noreferrer\" target=\"_blank\">\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\n<span>Ch\u1ec9nh s\u1eeda Mermaid trong VPasCode<\/span>\n<\/a>\n<\/div>\n<\/div>\n<h2>Graphviz: \u00d4ng t\u1ed5 c\u1ee7a b\u1ed1 c\u1ee5c t\u1ef1 \u0111\u1ed9ng<\/h2>\n<p><strong>Graphviz<\/strong>l\u00e0 c\u00f4ng c\u1ee5 l\u00e2u \u0111\u1eddi v\u00e0 \u0111\u01b0\u1ee3c thi\u1ebft l\u1eadp v\u1eefng ch\u1eafc nh\u1ea5t trong ba c\u00f4ng c\u1ee5, s\u1eed d\u1ee5ng ng\u00f4n ng\u1eef DOT. M\u1eb7c d\u00f9 c\u00fa ph\u00e1p c\u1ee7a n\u00f3 c\u00f3 th\u1ec3 l\u00e0 ph\u1ee9c t\u1ea1p nh\u1ea5t v\u00e0 th\u01b0\u1eddng \u0111\u01b0\u1ee3c m\u00f4 t\u1ea3 l\u00e0 c\u00f3 \u0111\u01b0\u1eddng cong h\u1ecdc t\u1eadp d\u1ed1c h\u01a1n, nh\u01b0ng c\u00f4ng c\u1ee5 b\u1ed1 c\u1ee5c c\u1ee7a n\u00f3 l\u00e0 huy\u1ec1n tho\u1ea1i.<\/p>\n<p id=\"nonyeIx\"><img loading=\"lazy\" alt=\"Graphviz network topology generated with a text to diagram engine in a diagram-as-code tool\" class=\"alignnone wp-image-856 size-full\" decoding=\"async\" height=\"792\" loading=\"lazy\" sizes=\"auto, (max-width: 1264px) 100vw, 1264px\" src=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/06\/img_6a35708457ed3.png\" srcset=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/06\/img_6a35708457ed3.png 1264w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/06\/img_6a35708457ed3-300x188.png 300w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/06\/img_6a35708457ed3-1024x642.png 1024w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/06\/img_6a35708457ed3-768x481.png 768w\" width=\"1264\"\/><\/p>\n<p>N\u1ebfu Mermaid v\u00e0 PlantUML t\u1eadp trung v\u00e0o vi\u1ec7c tr\u1eebu t\u01b0\u1ee3ng h\u00f3a vi\u1ec7c b\u1ed1 c\u1ee5c, th\u00ec Graphviz mang l\u1ea1i cho b\u1ea1n kh\u1ea3 n\u0103ng ki\u1ec3m so\u00e1t chi ti\u1ebft trong khi d\u1ef1a v\u00e0o h\u00e0ng th\u1eadp k\u1ef7 nghi\u00ean c\u1ee9u thu\u1eadt to\u00e1n \u0111\u1ec3 t\u1ea1o ra c\u00e1c h\u00ecnh \u1ea3nh tr\u1ef1c quan s\u1ea1ch s\u1ebd v\u00e0 t\u1ed1i \u01b0u cho c\u00e1c \u0111\u1ed3 th\u1ecb, m\u1ea1ng l\u01b0\u1edbi v\u00e0 c\u1ea5u tr\u00fac d\u1eef li\u1ec7u ph\u1ee9c t\u1ea1p.<\/p>\n<h3>C\u00e1c tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng t\u1ed1t nh\u1ea5t cho Graphviz:<\/h3>\n<ul>\n<li><strong>Topo m\u1ea1ng ph\u1ee9c t\u1ea1p:<\/strong>\u0110\u1ed1i v\u1edbi s\u01a1 \u0111\u1ed3 m\u1ea1ng, lu\u1ed3ng d\u1eef li\u1ec7u v\u00e0 c\u00e1c ph\u1ee5 thu\u1ed9c ph\u1ee9c t\u1ea1p, Graphviz l\u00e0 kh\u00f4ng th\u1ec3 s\u00e1nh k\u1ecbp.<\/li>\n<li><strong>\u0110\u1ed3 th\u1ecb phi tuy\u1ebfn t\u00ednh v\u00e0 ph\u1ee9c t\u1ea1p:<\/strong>Khi s\u01a1 \u0111\u1ed3 c\u1ee7a b\u1ea1n kh\u00f4ng ph\u1ea3i l\u00e0 lu\u1ed3ng tuy\u1ebfn t\u00ednh \u0111\u01a1n gi\u1ea3n m\u00e0 l\u00e0 m\u1ed9t m\u1ea1ng l\u01b0\u1edbi d\u00e0y \u0111\u1eb7c c\u00e1c m\u1ed1i quan h\u1ec7, thu\u1eadt to\u00e1n c\u1ee7a Graphviz c\u00f3 th\u1ec3 x\u1eed l\u00fd n\u00f3 m\u1ed9t c\u00e1ch tuy\u1ec7t \u0111\u1eb9p.<\/li>\n<li><strong>M\u1ee5c \u0111\u00edch h\u1ecdc thu\u1eadt v\u00e0 nghi\u00ean c\u1ee9u:<\/strong>\u0110\u1ed9 ch\u00ednh x\u00e1c v\u00e0 kh\u1ea3 n\u0103ng ki\u1ec3m so\u00e1t b\u1ed1 c\u1ee5c c\u1ee7a n\u00f3 khi\u1ebfn n\u00f3 tr\u1edf th\u00e0nh l\u1ef1a ch\u1ecdn y\u00eau th\u00edch trong m\u00f4i tr\u01b0\u1eddng h\u1ecdc thu\u1eadt \u0111\u1ec3 tr\u1ef1c quan h\u00f3a c\u00e1c \u0111\u1ed3 th\u1ecb t\u00ednh to\u00e1n, automata v\u00e0 c\u00e2y quy\u1ebft \u0111\u1ecbnh.<\/li>\n<\/ul>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">Graphviz<\/span>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#graphviz:eNqNVE1v2kAQvVfqfxi5l0QCAoQSqsiVyHdSkhKImkPaw3p3jFdZdq3ZBUKr\/veOcSBOegg+rOzx2\/fevhlb6QmJPIMTTSgDqhsMC0eP56vin48fgK\/U2WDFFOPoAs0cg5ai1ictTM0L6+seSadRCTUiQRNHJ9oH0smMCeFCT7J6fy40v9NGhyXcYwJjpLmW6OHUTrRFGLlZ0HYCdy53xk2WVT7jZByF6MWM178xbnXLAgn7qDTFg9FhWSjXvT04Ny4RBk4NTtEGGIelKSS+z5FIK\/Ql0DqF8LDVGWvgM5FjnLgnvmU6hqfaGFQ1cjOrUDFEsn+Ko08tbH\/ZT7hQINbFtJeKVHIxR7vQKmRxuwZTQZxBHDUb7Vqz0Yp+lcZQTbY3thbodg46vaQq0Gp8roEgcotVbM1Gj\/k3GT33AW7cJpDBES8Pz53s26UUPsDACQVHwggrkX7anRt2\/ASnbHF3E4t009xZjvr1mROB3bSaTLPd68iD9TH7ed7ayF1rSc4\/e7q0PhR60C8E2eDVmMdlrsnZVUOL0m6Fpv0OzRHTnDsYzWzQU37UVpBGv6EYodJ+w3Fp69c4dbSEYyEzLFdmKFHfcFn\/IcwMYUiaG7isxFCMmUJ603mUSu1XUsBWS3V6a+2TaugjNCJoZ3l4h0iePyZk\/6w9dD5MCMe3AxhnghQMnTPvKSdJeqCa1cnsiv2OiKpj0CeZ6cB\/gBkVX0wxeWsTPtP5y2TUv75uGJw5WhROdu77Z3CcoXxExYkevtnR3nbHip33vG4G3M5w3YkqtL09dMXKMW9wIxRq75742FAEesc\/Ei9k+I9+2z1\/\/wE8uKfi\" rel=\"noopener noreferrer\" target=\"_blank\">\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\n<span>Ch\u1ec9nh s\u1eeda Graphviz trong VPasCode<\/span>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">Graphviz<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#graphviz:eNqlVE1P20AQvVfqfxi5FyoFSEIKqZArhaDSlhDxEZUD6mG93sQrnF13vQHSqqceOFSV4FhVSE0RooeiUtFe7EMPRvkf\/icdOyQYOIBaHyxrPDPv7XtPa\/OWIp4D81wxqpldZ3pbqs2FtPj2\/j3ApymFFqTNTOMZc7eY5pTkKooTN+cT4Y\/7TPGmMWh1icVc02hIT7qy1YXzvTj8IBzQnW4c\/BFA4\/CYpNVPogW034N5bKAObMXhEawzC5ad6KsAHfUEVKOzQSusxcFvAX70BYeqRGbBXElNQxuXTH3+hpmF6UFBEbFpc2XWVmcHhcF7chIWHA7n+9G3EUU7Dnq4ftmJg2MkEIcn0JCImHA+ooM5IW0GG3fSIwe+QzxmWnIHP3XXxfYmd11m55TsCJvZ2EJRJWUaDwqs+HjKwkLSMSw2y03SpFj0mNjmtnbMYg7aRLW4MI38RDGXnygYrwbEmN26O7EhwHRpplS2sgCFiUc5IErJ7VTF\/EQZ948kq0Y9CiIKdNa0wd\/aHL42LtyfSyyjiY1WHPxETXUcHHKoiC4lvhZj1URpB+p4kJ2HI6GobHtSMKGvqmARNt3MapUvlkt0ZnjwiucVRsDPha+JoAxecrTzMlcVMVZPaC9Fvzho1T+NwwOkVUc3X6w9zKwq3rpqDuk7\/dN+EhWtou94DuHgf\/DS3Dbw+4BDixPMDSap14UFOUJYZTb3r8qUDH\/GIMbhbhsaSuJaa1QXYw2VhA9XRSeItOhEZ2R8gUc9xE5A04UZCbsux2Spazli1LanMgqyQsEulYek5rPW1fqnnXT3D1jp4BmQxS6Kh7jtixO20Uuksix93VJsbaV2G7xlNWfsfDbs02SqRIxsspbicJ\/D6yEiXCRkkaeXBuoc0FHOxp9cNR2qDl4u4XvsS9o9GDvfiw5hk2OtjbME1itP0YLZaxuK\/7ohRccdV91E8zpdzEhwJOCGs9nZ4n\/Mprho2OWgQ2RyWVJAJ9Kr7COdxKvtBuCdh979BZcEO2U=\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Graphviz in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-graphviz\"><code class=\"language-graphviz\" data-language=\"graphviz\" class=\"language-graphviz\">digraph DirectedNetworkGraph {\r\n    fontname=\"Helvetica,Arial,sans-serif\"\r\n    label=\"Topology \u0110\u1ecbnh tuy\u1ebfn c\u1ee7a \u0110\u1ed9ng c\u01a1 D\u1ecbch v\u1ee5 Web Ph\u00e2n t\u00e1n C\u00f3 \u0110\u1ed9 S\u1eb5n s\u00e0ng Cao\"\r\n    labelloc=\"t\"\r\n    fontsize=16\r\n    rankdir=LR;\r\n    \r\n    \/\/ Ghi \u0111\u00e8 \u0110\u1ecbnh d\u1ea1ng Ph\u1ea7n t\u1eed To\u00e0n c\u1ee5c\r\n    node [fontname=\"Helvetica,Arial,sans-serif\", shape=box, style=\"filled,rounded\", color=\"#1e293b\", fillcolor=\"#f8fafc\", penwidth=2, margin=\"0.2,0.1\"]\r\n    edge [fontname=\"Helvetica,Arial,sans-serif\", color=\"#64748b\", penwidth=1.5, arrowsize=0.8]\r\n\r\n    \/\/ C\u00e1c n\u00fat D\u1ecbch v\u1ee5\r\n    LB   [label=\"B\u1ed9 c\u00e2n b\u1eb1ng t\u1ea3i Anycastn(C\u1ea1nh Nginx)\", shape=component, fillcolor=\"#bae6fd\", color=\"#0284c7\"]\r\n    App1 [label=\"Instance Vi d\u1ecbch v\u1ee5 An(N\u00fat M\u00f4i tr\u01b0\u1eddng NodeJS)\"]\r\n    App2 [label=\"Instance Vi d\u1ecbch v\u1ee5 Bn(Ch\u01b0\u01a1ng tr\u00ecnh nh\u1ecb ph\u00e2n Th\u1eddi gian ch\u1ea1y Go)\"]\r\n    Redis [label=\"B\u1ed9 nh\u1edb \u0111\u1ec7m Trong b\u1ed9 nh\u1edbn(Tr\u1ee5c ch\u00ednh Kh\u00f3a-Gi\u00e1 tr\u1ecb Redis)\", shape=cylinder, fillcolor=\"#fecdd3\", color=\"#e11d48\"]\r\n    DB   [label=\"L\u01b0u tr\u1eef Quan h\u1ec7n(Nh\u00f3m ph\u00e2n m\u1ea3nh PostgreSQL)\", shape=cylinder, fillcolor=\"#bbf7d0\", color=\"#16a34a\"]\r\n\r\n    \/\/ M\u1ed1i quan h\u1ec7 C\u1ea1nh Ki\u1ebfn tr\u00fac\r\n    LB -&gt; App1 [label=\" Chuy\u1ec3n ti\u1ebfp (\u0110\u00e3 ki\u1ec3m tra WAF)\"];\r\n    LB -&gt; App2 [label=\" Chuy\u1ec3n ti\u1ebfp (\u0110\u00e3 ki\u1ec3m tra WAF)\"];\r\n    App1 -&gt; Redis [label=\" Truy v\u1ea5n B\u1ed9 nh\u1edb \u0111\u1ec7m\"];\r\n    App2 -&gt; Redis [label=\" Truy v\u1ea5n B\u1ed9 nh\u1edb \u0111\u1ec7m\"];\r\n    App1 -&gt; DB [label=\" Thao t\u00e1c SQL \u0110\u1ecdc\/Ghi\"];\r\n    App2 -&gt; DB [label=\" Thao t\u00e1c SQL \u0110\u1ecdc\/Ghi\"];\r\n}<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#graphviz:eNqlVE1P20AQvVfqfxi5FyoFSEIKqZArhaDSlhDxEZUD6mG93sQrnF13vQHSqqceOFSV4FhVSE0RooeiUtFe7EMPRvkf\/icdOyQYOIBaHyxrPDPv7XtPa\/OWIp4D81wxqpldZ3pbqs2FtPj2\/j3ApymFFqTNTOMZc7eY5pTkKooTN+cT4Y\/7TPGmMWh1icVc02hIT7qy1YXzvTj8IBzQnW4c\/BFA4\/CYpNVPogW034N5bKAObMXhEawzC5ad6KsAHfUEVKOzQSusxcFvAX70BYeqRGbBXElNQxuXTH3+hpmF6UFBEbFpc2XWVmcHhcF7chIWHA7n+9G3EUU7Dnq4ftmJg2MkEIcn0JCImHA+ooM5IW0GG3fSIwe+QzxmWnIHP3XXxfYmd11m55TsCJvZ2EJRJWUaDwqs+HjKwkLSMSw2y03SpFj0mNjmtnbMYg7aRLW4MI38RDGXnygYrwbEmN26O7EhwHRpplS2sgCFiUc5IErJ7VTF\/EQZ948kq0Y9CiIKdNa0wd\/aHL42LtyfSyyjiY1WHPxETXUcHHKoiC4lvhZj1URpB+p4kJ2HI6GobHtSMKGvqmARNt3MapUvlkt0ZnjwiucVRsDPha+JoAxecrTzMlcVMVZPaC9Fvzho1T+NwwOkVUc3X6w9zKwq3rpqDuk7\/dN+EhWtou94DuHgf\/DS3Dbw+4BDixPMDSap14UFOUJYZTb3r8qUDH\/GIMbhbhsaSuJaa1QXYw2VhA9XRSeItOhEZ2R8gUc9xE5A04UZCbsux2Spazli1LanMgqyQsEulYek5rPW1fqnnXT3D1jp4BmQxS6Kh7jtixO20Uuksix93VJsbaV2G7xlNWfsfDbs02SqRIxsspbicJ\/D6yEiXCRkkaeXBuoc0FHOxp9cNR2qDl4u4XvsS9o9GDvfiw5hk2OtjbME1itP0YLZaxuK\/7ohRccdV91E8zpdzEhwJOCGs9nZ4n\/Mprho2OWgQ2RyWVJAJ9Kr7COdxKvtBuCdh979BZcEO2U=\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Graphviz in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n             <\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#graphviz:eNqNVE1v2kAQvVfqfxi5l0QCAoQSqsiVyHdSkhKImkPaw3p3jFdZdq3ZBUKr\/veOcSBOegg+rOzx2\/fevhlb6QmJPIMTTSgDqhsMC0eP56vin48fgK\/U2WDFFOPoAs0cg5ai1ictTM0L6+seSadRCTUiQRNHJ9oH0smMCeFCT7J6fy40v9NGhyXcYwJjpLmW6OHUTrRFGLlZ0HYCdy53xk2WVT7jZByF6MWM178xbnXLAgn7qDTFg9FhWSjXvT04Ny4RBk4NTtEGGIelKSS+z5FIK\/Ql0DqF8LDVGWvgM5FjnLgnvmU6hqfaGFQ1cjOrUDFEsn+Ko08tbH\/ZT7hQINbFtJeKVHIxR7vQKmRxuwZTQZxBHDUb7Vqz0Yp+lcZQTbY3thbodg46vaQq0Gp8roEgcotVbM1Gj\/k3GT33AW7cJpDBES8Pz53s26UUPsDACQVHwggrkX7anRt2\/ASnbHF3E4t009xZjvr1mROB3bSaTLPd68iD9TH7ed7ayF1rSc4\/e7q0PhR60C8E2eDVmMdlrsnZVUOL0m6Fpv0OzRHTnDsYzWzQU37UVpBGv6EYodJ+w3Fp69c4dbSEYyEzLFdmKFHfcFn\/IcwMYUiaG7isxFCMmUJ603mUSu1XUsBWS3V6a+2TaugjNCJoZ3l4h0iePyZk\/6w9dD5MCMe3AxhnghQMnTPvKSdJeqCa1cnsiv2OiKpj0CeZ6cB\/gBkVX0wxeWsTPtP5y2TUv75uGJw5WhROdu77Z3CcoXxExYkevtnR3nbHip33vG4G3M5w3YkqtL09dMXKMW9wIxRq75742FAEesc\/Ei9k+I9+2z1\/\/wE8uKfi\" rel=\"noopener noreferrer\" target=\"_blank\">\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\n<span>Ch\u1ec9nh s\u1eeda Graphviz trong VPasCode<\/span>\n<\/a>\n<\/div>\n<\/div>\n<h2>Tr\u1ea3i nghi\u1ec7m VPasCode Th\u1ed1ng nh\u1ea5t<\/h2>\n<p>V\u1eady, b\u1ea1n n\u00ean ch\u1ecdn c\u00e1i n\u00e0o? C\u00e2u tr\u1ea3 l\u1eddi th\u01b0\u1eddng ph\u1ee5 thu\u1ed9c v\u00e0o n\u01a1i l\u01b0u tr\u1eef s\u01a1 \u0111\u1ed3 v\u00e0 m\u1ee9c \u0111\u1ed9 ph\u1ee9c t\u1ea1p c\u1ee7a n\u00f3. Quy t\u1eafc ra quy\u1ebft \u0111\u1ecbnh trong 60 gi\u00e2y th\u01b0\u1eddng \u0111\u01b0\u1ee3c t\u00f3m t\u1eaft nh\u01b0 sau: n\u1ebfu c\u1ea7n hi\u1ec3n th\u1ecb tr\u00ean GitHub, h\u00e3y d\u00f9ng Mermaid; n\u1ebfu l\u00e0 s\u01a1 \u0111\u1ed3 l\u1edbp ho\u1eb7c tri\u1ec3n khai ph\u1ee9c t\u1ea1p, h\u00e3y d\u00f9ng PlantUML; n\u1ebfu l\u00e0 m\u1ea1ng ph\u1ee9c t\u1ea1p, h\u00e3y d\u00f9ng Graphviz.<\/p>\n<p>\u0110i\u1ec3m tuy\u1ec7t v\u1eddi c\u1ee7a <strong>VPasCode<\/strong> l\u00e0 b\u1ea1n kh\u00f4ng c\u00f2n ph\u1ea3i ch\u1ecdn ch\u1ec9 m\u1ed9t c\u00f4ng c\u1ee5 cho to\u00e0n b\u1ed9 d\u1ef1 \u00e1n c\u1ee7a m\u00ecnh. B\u1ea1n c\u00f3 th\u1ec3 t\u1eadn d\u1ee5ng \u0111i\u1ec3m m\u1ea1nh c\u1ee7a c\u1ea3 ba. C\u00e1ch ti\u1ebfp c\u1eadn <strong>th\u1ed1ng nh\u1ea5t n\u00e0y<\/strong> kh\u00f4ng ch\u1ec9 ti\u1ebft ki\u1ec7m th\u1eddi gian m\u00e0 c\u00f2n \u0111\u1ea3m b\u1ea3o t\u00ednh nh\u1ea5t qu\u00e1n trong to\u00e0n b\u1ed9 t\u00e0i li\u1ec7u c\u1ee7a b\u1ea1n. B\u1ea1n s\u1ebd nh\u1eadn \u0111\u01b0\u1ee3c b\u1ea3n xem tr\u01b0\u1edbc th\u1eddi gian th\u1ef1c, <a href=\"https:\/\/www.vpascode.com\/never-get-stuck-on-syntax-again-ai-error-fixing-in-vpascode\/\">s\u1eeda l\u1ed7i h\u1ed7 tr\u1ee3 b\u1edfi AI<\/a> v\u00e0 chia s\u1ebb d\u1ec5 d\u00e0ng qua URL, t\u1ea5t c\u1ea3 trong m\u1ed9t giao di\u1ec7n hi\u1ec7n \u0111\u1ea1i duy nh\u1ea5t.<\/p>\n<p>H\u01a1n n\u1eefa, khi b\u1ea1n c\u1ea7n n\u00e2ng c\u1ea5p s\u01a1 \u0111\u1ed3 c\u1ee7a m\u00ecnh l\u00ean t\u1ea7m cao m\u1edbi cho t\u00e0i li\u1ec7u s\u00e2u h\u01a1n v\u00e0 c\u1ed9ng t\u00e1c, VPasCode t\u00edch h\u1ee3p li\u1ec1n m\u1ea1ch v\u1edbi <strong>Visual Paradigm OpenDocs<\/strong>. B\u1ea1n c\u00f3 th\u1ec3 <a href=\"https:\/\/www.vpascode.com\/seamlessly-connect-diagrams-to-documentation-with-opendocs\/\">g\u1eedi s\u01a1 \u0111\u1ed3 c\u1ee7a m\u00ecnh tr\u1ef1c ti\u1ebfp \u0111\u1ebfn OpenDocs<\/a> \u0111\u1ec3 tinh ch\u1ec9nh v\u00e0 t\u1ea1o t\u00e0i li\u1ec7u th\u00eam, x\u00e2y d\u1ef1ng m\u1ed9t quy tr\u00ecnh t\u00e0i li\u1ec7u to\u00e0n di\u1ec7n m\u1ea1nh m\u1ebd.<\/p>\n<p>S\u1eb5n s\u00e0ng tr\u1ea3i nghi\u1ec7m s\u1ee9c m\u1ea1nh c\u1ee7a c\u00f4ng c\u1ee5 s\u01a1 \u0111\u1ed3 d\u01b0\u1edbi d\u1ea1ng m\u00e3 th\u1ed1ng nh\u1ea5t v\u00e0 kh\u1ea3 n\u0103ng chuy\u1ec3n \u0111\u1ed5i v\u0103n b\u1ea3n th\u00e0nh s\u01a1 \u0111\u1ed3 m\u1ed9t c\u00e1ch d\u1ec5 d\u00e0ng? H\u00e3y th\u1eed VPasCode ngay h\u00f4m nay\u2014c\u00e1c t\u00ednh n\u0103ng ch\u1ec9nh s\u1eeda v\u00e0 hi\u1ec3n th\u1ecb c\u1ed1t l\u00f5i ho\u00e0n to\u00e0n mi\u1ec5n ph\u00ed.<\/p>\n<h3 style=\"margin-top: 0; margin-bottom: 12px; font-size: 20px; color: #0f172a;\">X\u00e2y d\u1ef1ng S\u01a1 \u0111\u1ed3 Nhanh h\u01a1n v\u1edbi VPasCode<\/h3>\n<p style=\"margin-bottom: 20px; color: #334155; line-height: 1.6;\">Chuy\u1ec3n \u0111\u1ed5i v\u0103n b\u1ea3n th\u00e0nh s\u01a1 \u0111\u1ed3 ngay l\u1eadp t\u1ee9c v\u1edbi c\u00f4ng c\u1ee5 s\u01a1 \u0111\u1ed3 d\u01b0\u1edbi d\u1ea1ng m\u00e3 th\u1ed1ng nh\u1ea5t c\u1ee7a ch\u00fang t\u00f4i, h\u1ed7 tr\u1ee3 PlantUML, Mermaid v\u00e0 Graphviz.<\/p>\n<p><a href=\"https:\/\/www.vpascode.com\/editor\/\" style=\"display: inline-block; padding: 12px 24px; background-color: #0284c7; color: #ffffff; text-decoration: none; border-radius: 4px; font-weight: 600;\">B\u1eaft \u0111\u1ea7u S\u01a1 \u0111\u1ed3 d\u01b0\u1edbi d\u1ea1ng M\u00e3 MI\u1ec4N PH\u00cd<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"Trong th\u1ebf gi\u1edbi ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m, m\u1ed9t b\u1ee9c tranh th\u1ef1c s\u1ef1 \u0111\u00e1ng gi\u00e1 ng\u00e0n l\u1eddi n\u00f3i. C\u00e1c s\u01a1 \u0111\u1ed3 ki\u1ebfn tr\u00fac, s\u01a1 \u0111\u1ed3 lu\u1ed3ng v\u00e0 s\u01a1 \u0111\u1ed3 tr\u00ecnh t\u1ef1 l\u00e0 y\u1ebfu t\u1ed1 thi\u1ebft y\u1ebfu \u0111\u1ec3 t\u00e0i li\u1ec7u h\u00f3a, l\u1eadp&#8230;","protected":false},"author":4,"featured_media":2281,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_title":"PlantUML vs Mermaid vs Graphviz | Text to Diagram with VPasCode","_yoast_wpseo_metadesc":"Compare PlantUML, Mermaid, and Graphviz to choose the best format. Use VPasCode as your all-in-one diagram-as-code tool for instant text to diagram generation.","inline_featured_image":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"source_url":"","fifu_image_url":"","fifu_image_alt":"","_fifu_image_alt":"","fifu_alt":"","_fifu_alt":"","fifu_image_title":"","_fifu_image_title":"","fifu_input_alt":"","vp_image_hash":"","footnotes":""},"categories":[19],"tags":[],"asset-category":[],"class_list":["post-2280","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials-guides"],"source_url":"","fifu_image_url":"","fifu_image_alt":"","vp_image_hash":"","yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>PlantUML vs Mermaid vs Graphviz | Text to Diagram with VPasCode<\/title>\n<meta name=\"description\" content=\"Compare PlantUML, Mermaid, and Graphviz to choose the best format. Use VPasCode as your all-in-one diagram-as-code tool for instant text to diagram generation.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.vpascode.com\/vn\/plantuml-mermaid-graphviz-choose-guide\/\" \/>\n<meta property=\"og:locale\" content=\"vi_VN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PlantUML vs Mermaid vs Graphviz | Text to Diagram with VPasCode\" \/>\n<meta property=\"og:description\" content=\"Compare PlantUML, Mermaid, and Graphviz to choose the best format. Use VPasCode as your all-in-one diagram-as-code tool for instant text to diagram generation.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.vpascode.com\/vn\/plantuml-mermaid-graphviz-choose-guide\/\" \/>\n<meta property=\"og:site_name\" content=\"VPasCode\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-19T16:41:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/06\/plantuml-mermaid-graphviz-comparison-guide-2.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1376\" \/>\n\t<meta property=\"og:image:height\" content=\"768\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"jick\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi\" \/>\n\t<meta name=\"twitter:data1\" content=\"\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 ph\u00fat\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/plantuml-mermaid-graphviz-choose-guide\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/plantuml-mermaid-graphviz-choose-guide\\\/\"},\"author\":{\"name\":\"jick\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#\\\/schema\\\/person\\\/cd8aa8455bd8bc6827b3efdfa79ad3a6\"},\"headline\":\"PlantUML, Mermaid hay Graphviz? B\u1ea1n n\u00ean ch\u1ecdn c\u00f4ng c\u1ee5 n\u00e0o?\",\"datePublished\":\"2026-06-19T16:41:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/plantuml-mermaid-graphviz-choose-guide\\\/\"},\"wordCount\":2450,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/plantuml-mermaid-graphviz-choose-guide\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/wp-content\\\/uploads\\\/sites\\\/12\\\/2026\\\/06\\\/plantuml-mermaid-graphviz-comparison-guide-2.jpg\",\"articleSection\":[\"Tutorials &amp; Guides\"],\"inLanguage\":\"vi\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/plantuml-mermaid-graphviz-choose-guide\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/plantuml-mermaid-graphviz-choose-guide\\\/\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/plantuml-mermaid-graphviz-choose-guide\\\/\",\"name\":\"PlantUML vs Mermaid vs Graphviz | Text to Diagram with VPasCode\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/plantuml-mermaid-graphviz-choose-guide\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/plantuml-mermaid-graphviz-choose-guide\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/wp-content\\\/uploads\\\/sites\\\/12\\\/2026\\\/06\\\/plantuml-mermaid-graphviz-comparison-guide-2.jpg\",\"datePublished\":\"2026-06-19T16:41:05+00:00\",\"description\":\"Compare PlantUML, Mermaid, and Graphviz to choose the best format. Use VPasCode as your all-in-one diagram-as-code tool for instant text to diagram generation.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/plantuml-mermaid-graphviz-choose-guide\\\/#breadcrumb\"},\"inLanguage\":\"vi\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/plantuml-mermaid-graphviz-choose-guide\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"vi\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/plantuml-mermaid-graphviz-choose-guide\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/wp-content\\\/uploads\\\/sites\\\/12\\\/2026\\\/06\\\/plantuml-mermaid-graphviz-comparison-guide-2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/wp-content\\\/uploads\\\/sites\\\/12\\\/2026\\\/06\\\/plantuml-mermaid-graphviz-comparison-guide-2.jpg\",\"width\":1376,\"height\":768},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/plantuml-mermaid-graphviz-choose-guide\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PlantUML, Mermaid hay Graphviz? B\u1ea1n n\u00ean ch\u1ecdn c\u00f4ng c\u1ee5 n\u00e0o?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#website\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/\",\"name\":\"VPasCode\",\"description\":\"by Visual Paradigm\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"vi\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#organization\",\"name\":\"VPasCode\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"vi\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/wp-content\\\/uploads\\\/sites\\\/12\\\/2026\\\/06\\\/cropped-vp-online-logo-v1.png\",\"contentUrl\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/wp-content\\\/uploads\\\/sites\\\/12\\\/2026\\\/06\\\/cropped-vp-online-logo-v1.png\",\"width\":128,\"height\":138,\"caption\":\"VPasCode\"},\"image\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#\\\/schema\\\/person\\\/cd8aa8455bd8bc6827b3efdfa79ad3a6\",\"name\":\"jick\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"vi\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0c89451a99649a6ebefa14a9167db0960c327e8c33ea79fdb68fc38aa18d768a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0c89451a99649a6ebefa14a9167db0960c327e8c33ea79fdb68fc38aa18d768a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0c89451a99649a6ebefa14a9167db0960c327e8c33ea79fdb68fc38aa18d768a?s=96&d=mm&r=g\",\"caption\":\"jick\"},\"url\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/author\\\/jick\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PlantUML vs Mermaid vs Graphviz | Text to Diagram with VPasCode","description":"Compare PlantUML, Mermaid, and Graphviz to choose the best format. Use VPasCode as your all-in-one diagram-as-code tool for instant text to diagram generation.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.vpascode.com\/vn\/plantuml-mermaid-graphviz-choose-guide\/","og_locale":"vi_VN","og_type":"article","og_title":"PlantUML vs Mermaid vs Graphviz | Text to Diagram with VPasCode","og_description":"Compare PlantUML, Mermaid, and Graphviz to choose the best format. Use VPasCode as your all-in-one diagram-as-code tool for instant text to diagram generation.","og_url":"https:\/\/www.vpascode.com\/vn\/plantuml-mermaid-graphviz-choose-guide\/","og_site_name":"VPasCode","article_published_time":"2026-06-19T16:41:05+00:00","og_image":[{"width":1376,"height":768,"url":"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/06\/plantuml-mermaid-graphviz-comparison-guide-2.jpg","type":"image\/jpeg"}],"author":"jick","twitter_card":"summary_large_image","twitter_misc":{"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi":false,"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc":"6 ph\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.vpascode.com\/vn\/plantuml-mermaid-graphviz-choose-guide\/#article","isPartOf":{"@id":"https:\/\/www.vpascode.com\/vn\/plantuml-mermaid-graphviz-choose-guide\/"},"author":{"name":"jick","@id":"https:\/\/www.vpascode.com\/vn\/#\/schema\/person\/cd8aa8455bd8bc6827b3efdfa79ad3a6"},"headline":"PlantUML, Mermaid hay Graphviz? B\u1ea1n n\u00ean ch\u1ecdn c\u00f4ng c\u1ee5 n\u00e0o?","datePublished":"2026-06-19T16:41:05+00:00","mainEntityOfPage":{"@id":"https:\/\/www.vpascode.com\/vn\/plantuml-mermaid-graphviz-choose-guide\/"},"wordCount":2450,"commentCount":0,"publisher":{"@id":"https:\/\/www.vpascode.com\/vn\/#organization"},"image":{"@id":"https:\/\/www.vpascode.com\/vn\/plantuml-mermaid-graphviz-choose-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/06\/plantuml-mermaid-graphviz-comparison-guide-2.jpg","articleSection":["Tutorials &amp; Guides"],"inLanguage":"vi","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.vpascode.com\/vn\/plantuml-mermaid-graphviz-choose-guide\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.vpascode.com\/vn\/plantuml-mermaid-graphviz-choose-guide\/","url":"https:\/\/www.vpascode.com\/vn\/plantuml-mermaid-graphviz-choose-guide\/","name":"PlantUML vs Mermaid vs Graphviz | Text to Diagram with VPasCode","isPartOf":{"@id":"https:\/\/www.vpascode.com\/vn\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.vpascode.com\/vn\/plantuml-mermaid-graphviz-choose-guide\/#primaryimage"},"image":{"@id":"https:\/\/www.vpascode.com\/vn\/plantuml-mermaid-graphviz-choose-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/06\/plantuml-mermaid-graphviz-comparison-guide-2.jpg","datePublished":"2026-06-19T16:41:05+00:00","description":"Compare PlantUML, Mermaid, and Graphviz to choose the best format. Use VPasCode as your all-in-one diagram-as-code tool for instant text to diagram generation.","breadcrumb":{"@id":"https:\/\/www.vpascode.com\/vn\/plantuml-mermaid-graphviz-choose-guide\/#breadcrumb"},"inLanguage":"vi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.vpascode.com\/vn\/plantuml-mermaid-graphviz-choose-guide\/"]}]},{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/www.vpascode.com\/vn\/plantuml-mermaid-graphviz-choose-guide\/#primaryimage","url":"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/06\/plantuml-mermaid-graphviz-comparison-guide-2.jpg","contentUrl":"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/06\/plantuml-mermaid-graphviz-comparison-guide-2.jpg","width":1376,"height":768},{"@type":"BreadcrumbList","@id":"https:\/\/www.vpascode.com\/vn\/plantuml-mermaid-graphviz-choose-guide\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.vpascode.com\/vn\/"},{"@type":"ListItem","position":2,"name":"PlantUML, Mermaid hay Graphviz? B\u1ea1n n\u00ean ch\u1ecdn c\u00f4ng c\u1ee5 n\u00e0o?"}]},{"@type":"WebSite","@id":"https:\/\/www.vpascode.com\/vn\/#website","url":"https:\/\/www.vpascode.com\/vn\/","name":"VPasCode","description":"by Visual Paradigm","publisher":{"@id":"https:\/\/www.vpascode.com\/vn\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.vpascode.com\/vn\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"vi"},{"@type":"Organization","@id":"https:\/\/www.vpascode.com\/vn\/#organization","name":"VPasCode","url":"https:\/\/www.vpascode.com\/vn\/","logo":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/www.vpascode.com\/vn\/#\/schema\/logo\/image\/","url":"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/06\/cropped-vp-online-logo-v1.png","contentUrl":"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/06\/cropped-vp-online-logo-v1.png","width":128,"height":138,"caption":"VPasCode"},"image":{"@id":"https:\/\/www.vpascode.com\/vn\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.vpascode.com\/vn\/#\/schema\/person\/cd8aa8455bd8bc6827b3efdfa79ad3a6","name":"jick","image":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/secure.gravatar.com\/avatar\/0c89451a99649a6ebefa14a9167db0960c327e8c33ea79fdb68fc38aa18d768a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/0c89451a99649a6ebefa14a9167db0960c327e8c33ea79fdb68fc38aa18d768a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0c89451a99649a6ebefa14a9167db0960c327e8c33ea79fdb68fc38aa18d768a?s=96&d=mm&r=g","caption":"jick"},"url":"https:\/\/www.vpascode.com\/vn\/author\/jick\/"}]}},"_links":{"self":[{"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/posts\/2280","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/comments?post=2280"}],"version-history":[{"count":0,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/posts\/2280\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/media\/2281"}],"wp:attachment":[{"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/media?parent=2280"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/categories?post=2280"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/tags?post=2280"},{"taxonomy":"asset-category","embeddable":true,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/asset-category?post=2280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}