{"id":11712,"date":"2026-07-15T11:18:16","date_gmt":"2026-07-15T03:18:16","guid":{"rendered":"https:\/\/blog.visual-paradigm.com\/vn\/from-big-picture-to-code-a-beginners-guide-to-visualizing-software-architecture-with-the-c4-model\/"},"modified":"2026-07-26T18:43:40","modified_gmt":"2026-07-26T10:43:40","slug":"from-big-picture-to-code-a-beginners-guide-to-visualizing-software-architecture-with-the-c4-model","status":"publish","type":"post","link":"https:\/\/blog.visual-paradigm.com\/vn\/from-big-picture-to-code-a-beginners-guide-to-visualizing-software-architecture-with-the-c4-model\/","title":{"rendered":"T\u1eeb b\u1ee9c tranh to\u00e0n c\u1ea3nh \u0111\u1ebfn m\u00e3 ngu\u1ed3n: H\u01b0\u1edbng d\u1eabn cho ng\u01b0\u1eddi m\u1edbi b\u1eaft \u0111\u1ea7u v\u1ec1 vi\u1ec7c tr\u1ef1c quan h\u00f3a ki\u1ebfn tr\u00fac ph\u1ea7n m\u1ec1m b\u1eb1ng m\u00f4 h\u00ecnh C4"},"content":{"rendered":"<h2 data-nodeid=\"77087\">Gi\u1edbi thi\u1ec7u<\/h2>\n<p data-nodeid=\"77088\">T\u00e0i li\u1ec7u ki\u1ebfn tr\u00fac ph\u1ea7n m\u1ec1m th\u01b0\u1eddng khi\u1ebfn ng\u01b0\u1eddi ta c\u1ea3m th\u1ea5y cho\u00e1ng ng\u1ee3p. C\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n ho\u1eb7c t\u1ea1o ra nh\u1eefng s\u01a1 \u0111\u1ed3 qu\u00e1 ph\u1ee9c t\u1ea1p m\u00e0 kh\u00f4ng ai hi\u1ec3u \u0111\u01b0\u1ee3c, ho\u1eb7c b\u1ecf ho\u00e0n to\u00e0n vi\u1ec7c ghi t\u00e0i li\u1ec7u, khi\u1ebfn \u0111\u1ed9i ng\u0169 b\u1ecb l\u1ea1c trong m\u00ea cung m\u00e3 ngu\u1ed3n.<\/p>\n<p data-nodeid=\"77089\">Xin gi\u1edbi thi\u1ec7u v\u1ec1\u00a0<strong data-nodeid=\"77342\">m\u00f4 h\u00ecnh C4<\/strong>\u2014m\u1ed9t c\u00e1ch ti\u1ebfp c\u1eadn \u0111\u01a1n gi\u1ea3n, ph\u00e2n c\u1ea5p \u0111\u1ec3 tr\u1ef1c quan h\u00f3a ki\u1ebfn tr\u00fac ph\u1ea7n m\u1ec1m do Simon Brown t\u1ea1o ra. H\u00e3y h\u00ecnh dung n\u00f3 nh\u01b0 Google Maps cho ph\u1ea7n m\u1ec1m c\u1ee7a b\u1ea1n: b\u1ea1n b\u1eaft \u0111\u1ea7u t\u1eeb g\u00f3c nh\u00ecn to\u00e0n c\u1ea3nh v\u00e0 d\u1ea7n d\u1ea7n thu nh\u1ecf l\u1ea1i cho \u0111\u1ebfn khi th\u1ea5y t\u1eebng con \u0111\u01b0\u1eddng v\u00e0 t\u00f2a nh\u00e0 ri\u00eang l\u1ebb.<\/p>\n<p><img alt=\"VPasCode Editor: C4 Model - Hierarchical Drill-Down Software Architecture Framework\" class=\"alignnone\" decoding=\"async\" height=\"768\" loading=\"lazy\" src=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/bananaagsiCmdnbG9iYWw6OjAwMDA1NWNmZWM3MDAyNmQ6MDAwMDAwZWI6MTo1ZjIyMzE5ODBmZDhlNTE4OjAwMDA1NWNmZWM3MDAyNmQ6MDAwMDAyZWIyODIwMzM2ODowMDA2NTY5ZDg1NDRlZjRmEAIYASIJaW1hZ2UvcG5n.png\" width=\"1408\"\/><\/p>\n<p id=\"JQKCGlL\">H\u01b0\u1edbng d\u1eabn n\u00e0y s\u1ebd d\u1eabn b\u1ea1n qua t\u1ea5t c\u1ea3 b\u1ed1n c\u1ea5p \u0111\u1ed9 c\u1ee7a m\u00f4 h\u00ecnh C4 v\u1edbi c\u00e1c v\u00ed d\u1ee5 th\u1ef1c t\u1ebf, \u0111o\u1ea1n m\u00e3 m\u1eabu PlantUML, v\u00e0 h\u01b0\u1edbng d\u1eabn s\u1eed d\u1ee5ng c\u00e1c c\u00f4ng c\u1ee5 hi\u1ec7n \u0111\u1ea1i nh\u01b0 Visual Paradigm \u0111\u1ec3 t\u1ea1o ra c\u00e1c s\u01a1 \u0111\u1ed3 ki\u1ebfn tr\u00fac chuy\u00ean nghi\u1ec7p th\u1ef1c s\u1ef1 h\u1ed7 tr\u1ee3 \u0111\u1ed9i nh\u00f3m c\u1ee7a b\u1ea1n.<\/p>\n<hr data-nodeid=\"77091\"\/>\n<h2 data-nodeid=\"77092\">\ud83c\udfaf Hi\u1ec3u r\u00f5 m\u00f4 h\u00ecnh C4 th\u00f4ng qua m\u1ed9t v\u00ed d\u1ee5 th\u1ef1c t\u1ebf<\/h2>\n<p data-nodeid=\"77093\">H\u00e3y c\u00f9ng x\u00e2y d\u1ef1ng t\u00e0i li\u1ec7u cho\u00a0<strong data-nodeid=\"77356\">\u201cPayQuick\u201d<\/strong>\u2014m\u1ed9t n\u1ec1n t\u1ea3ng thanh to\u00e1n tr\u1ef1c tuy\u1ebfn hi\u1ec7n \u0111\u1ea1i cho ph\u00e9p ng\u01b0\u1eddi d\u00f9ng g\u1eedi ti\u1ec1n, thanh to\u00e1n h\u00f3a \u0111\u01a1n v\u00e0 qu\u1ea3n l\u00fd th\u1ebb. Ch\u00fang ta s\u1ebd t\u1ea1o s\u01a1 \u0111\u1ed3 cho t\u1eebng c\u1ea5p \u0111\u1ed9 C4.<\/p>\n<hr data-nodeid=\"77094\"\/>\n<h2 data-nodeid=\"77095\">\ud83d\uddfa\ufe0f C\u1ea5p \u0111\u1ed9 1: S\u01a1 \u0111\u1ed3 b\u1ed1i c\u1ea3nh h\u1ec7 th\u1ed1ng<\/h2>\n<h3 data-nodeid=\"77096\">N\u00f3 th\u1ec3 hi\u1ec7n \u0111i\u1ec1u g\u00ec<\/h3>\n<p data-nodeid=\"77097\">G\u00f3c nh\u00ecn to\u00e0n c\u1ea3nh 30.000 feet v\u1ec1 h\u1ec7 th\u1ed1ng c\u1ee7a b\u1ea1n trong m\u00f4i tr\u01b0\u1eddng xung quanh.<\/p>\n<h3 data-nodeid=\"77098\">V\u00ed d\u1ee5 v\u1ec1 PayQuick<\/h3>\n<p data-nodeid=\"77099\"><strong data-nodeid=\"77364\">Ng\u01b0\u1eddi tham gia:<\/strong><\/p>\n<ul data-nodeid=\"77100\">\n<li data-nodeid=\"77101\">\n<p data-nodeid=\"77102\">Kh\u00e1ch h\u00e0ng c\u00e1 nh\u00e2n<\/p>\n<\/li>\n<li data-nodeid=\"77103\">\n<p data-nodeid=\"77104\">Th\u01b0\u01a1ng gia<\/p>\n<\/li>\n<li data-nodeid=\"77105\">\n<p data-nodeid=\"77106\">H\u1ec7 th\u1ed1ng ng\u00e2n h\u00e0ng<\/p>\n<\/li>\n<li data-nodeid=\"77107\">\n<p data-nodeid=\"77108\">C\u1ed5ng SMS<\/p>\n<\/li>\n<\/ul>\n<p data-nodeid=\"77109\"><strong data-nodeid=\"77372\">M\u1ed1i quan h\u1ec7:<\/strong><\/p>\n<ul data-nodeid=\"77110\">\n<li data-nodeid=\"77111\">\n<p data-nodeid=\"77112\">Kh\u00e1ch h\u00e0ng g\u1eedi ti\u1ec1n<\/p>\n<\/li>\n<li data-nodeid=\"77113\">\n<p data-nodeid=\"77114\">Th\u01b0\u01a1ng gia nh\u1eadn thanh to\u00e1n<\/p>\n<\/li>\n<li data-nodeid=\"77115\">\n<p data-nodeid=\"77116\">H\u1ec7 th\u1ed1ng t\u00edch h\u1ee3p v\u1edbi c\u00e1c ng\u00e2n h\u00e0ng b\u00ean ngo\u00e0i<\/p>\n<\/li>\n<li data-nodeid=\"77117\">\n<p data-nodeid=\"77118\">H\u1ec7 th\u1ed1ng g\u1eedi th\u00f4ng b\u00e1o SMS<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"77119\">M\u00e3 C4-PlantUML<\/h3>\n<p id=\"ABisjGM\"><img alt=\"\" class=\"alignnone size-full wp-image-25290\" decoding=\"async\" height=\"867\" loading=\"lazy\" sizes=\"auto, (max-width: 1918px) 100vw, 1918px\" src=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fcaecd99c.png\" srcset=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fcaecd99c.png 1918w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fcaecd99c-300x136.png 300w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fcaecd99c-1030x466.png 1030w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fcaecd99c-768x347.png 768w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fcaecd99c-1536x694.png 1536w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fcaecd99c-150x68.png 150w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fcaecd99c-400x181.png 400w\" width=\"1918\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">Plantuml<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/#plantuml:XPFRRjf048RlaNY7AQeg8d6uwLMbIaa8IY91uWQZgbVMiWomoXxSdJN4glhkdRKv696eNDdZ-R-P-MUufY1yA8nkjpufAtMnHDY4aDEtuT2BtM2jmgPO58HUEXlGXe5qPfXhOQEeJs6frM8u-jfFOcW-dGoDe82UGzc85K9Pz8EyAj1k1HKqGYBA7uMIhz27MSd91c8clWMuKsBjXOcf2NfojYiB2iwWxq6dZWWDetsimy4v8K7O88WyX-20q2x1E8ib27xAHGaBfJLrhev8LieDDylgwVunacwan3nGb1YUas3bdO53_GhGRjNzPhUki4lXooud_uwZnFOEKx4JOUMywLp1dtOB-5UhZiaPLUyDJLLVQxUZKy4uZH6lU6ee3XIyiBJQz_EtqTBuBNGNmZRWj_ocx1gUCEoShseatacaQ9bYmtq_2Xh87dmEOatVExmBz6nrBDBWaw5iBGBkHCcmTAUqSZ2RpY9wniPJpH8oA6V1kg1MIehuydys6g5qndUsLHBtl7klbYTsbG4U9IhUq_l0Tki5TUDeBYslMTM5L9-fleyUR1NkpWQeB8wuqy5SubvYEriydKqF55710OyhFf8Zv49wlgpJPexhu8v4THZ9uuUGyutKipsd2NmvT_-0UaZJPFOXxBqLqD7m0sCsJPFQwidDh-TvclryJ1-ooVX-_7JNvVWrg_Zl_Wy0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\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><br \/>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span><br \/>\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\/#plantuml:ZLHDRzD04Br7odyO8Ww9b3ONJaX8BQLAAvBKO5V0oTfiLjvLxRLhhzj6Y0FYq0EdY2EN6jH3GPMAu1IBar7-n_uJPfsGZqQHoC6HTsRUcttl9Jk98h5A0xzQUI0azTC10wvKb3nkjM9olkq9nTD-ch2OXb8ngRPf6BGYdqWpj9MeWI_whRr7MvOvEkvsMW5958lnoDt32I8aYxUZag1QKKBv32moV94AUW9RO4yo-3FI-IVewtmaWEhnLyc1w_mI53v7qZDp5ekJKDPfcgWmO74JQizvaL5iBAwa1xJ8GFBYYwnXnTRvBGnqVeq5dT_WS_PYU3w0XsK1IkZylOIpuWff23AgiCWamlqas3V9PAqnPqL2YZqAiHq-kSEY1vuWXckFw_5rXDnwV2jNa9JElyF9qf86i5gnXoXEu3uDKpaWyR0UaU6faGAnUkL6oWZWpIMgDU1jjGBucKxE1zoaVCUvUMkvJmWHBswY5UfIoHyKE5xwSdLD8m3bwH2LaJWJ6dQpwRkbPVSlLBrFv19bLu-D2FxaJkUV1KWFfP_T4gklZG5-yNiD67nHV9FtsXyguYLFQjB3bap0cJ3qIyn9aBWUKUoS38q1vy8N8TXTsp2rfrxouXTkqo-oqFWI6hy_KluVs2mWmdSnssU2CXCT9WVjM0mMs8j0GDcy2RHQUSdyfNokszHUobrpG-YQSC62bJiqfi2B2Au3zzR2rpGPo5GfCKOWnAyPyJ-yDPHLVpSxU9gMkT-r3ZT2hHeslVQHOyr-QmkhPb07ZcFP6y7kExJcoWp5xZhMr8VExfkZOyTzTUWSk9tzzdxlMHtFTz1P_0_w2m00\" \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\" data-nodeid=\"77120\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\n!include https:\/\/raw.githubusercontent.com\/plantuml-stdlib\/C4-PlantUML\/master\/C4_Container.puml\r\n\r\ntitle PayQuick - S\u01a1 \u0111\u1ed3 b\u1ed1i c\u1ea3nh h\u1ec7 th\u1ed1ng\r\n\r\nPerson(customer, \"Kh\u00e1ch h\u00e0ng c\u00e1 nh\u00e2n\", \"S\u1eed d\u1ee5ng \u1ee9ng d\u1ee5ng \u0111\u1ec3 g\u1eedi ti\u1ec1n v\u00e0 thanh to\u00e1n h\u00f3a \u0111\u01a1n\")\r\nPerson(merchant, \"Th\u01b0\u01a1ng gia\", \"Ch\u1ea5p nh\u1eadn thanh to\u00e1n t\u1eeb kh\u00e1ch h\u00e0ng\")\r\n\r\nSystem_Boundary(payquick, \"N\u1ec1n t\u1ea3ng PayQuick\") {\r\n    System(payquick_system, \"PayQuick\", \"Cho ph\u00e9p kh\u00e1ch h\u00e0ng th\u1ef1c hi\u1ec7n thanh to\u00e1n v\u00e0 chuy\u1ec3n kho\u1ea3n\")\r\n}\r\n\r\nSystem_Ext(bank_system, \"M\u1ea1ng l\u01b0\u1edbi ng\u00e2n h\u00e0ng\", \"X\u1eed l\u00fd chuy\u1ec3n kho\u1ea3n li\u00ean ng\u00e2n h\u00e0ng\", $tags=\"ngo\u1ea1i vi\")\r\nSystem_Ext(sms_gateway, \"Twilio SMS\", \"G\u1eedi th\u00f4ng b\u00e1o giao d\u1ecbch\", $tags=\"ngo\u1ea1i vi\")\r\nSystem_Ext(email_service, \"SendGrid\", \"G\u1eedi h\u00f3a \u0111\u01a1n email\", $tags=\"ngo\u1ea1i vi\")\r\n\r\nRel(customer, payquick_system, \"G\u1eedi ti\u1ec1n, thanh to\u00e1n h\u00f3a \u0111\u01a1n, xem giao d\u1ecbch\")\r\nRel(merchant, payquick_system, \"Nh\u1eadn thanh to\u00e1n, ph\u00e1t h\u00e0nh ho\u00e0n ti\u1ec1n\")\r\nRel(payquick_system, bank_system, \"X\u1eed l\u00fd chuy\u1ec3n kho\u1ea3n qua\", \"API\")\r\nRel(payquick_system, sms_gateway, \"G\u1eedi OTP v\u00e0 th\u00f4ng b\u00e1o qua\", \"HTTPS\")\r\nRel(payquick_system, email_service, \"G\u1eedi h\u00f3a \u0111\u01a1n qua\", \"SMTP\")\r\n\r\nLAYOUT_WITH_LEGEND()\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/#plantuml:ZLHDRzD04Br7odyO8Ww9b3ONJaX8BQLAAvBKO5V0oTfiLjvLxRLhhzj6Y0FYq0EdY2EN6jH3GPMAu1IBar7-n_uJPfsGZqQHoC6HTsRUcttl9Jk98h5A0xzQUI0azTC10wvKb3nkjM9olkq9nTD-ch2OXb8ngRPf6BGYdqWpj9MeWI_whRr7MvOvEkvsMW5958lnoDt32I8aYxUZag1QKKBv32moV94AUW9RO4yo-3FI-IVewtmaWEhnLyc1w_mI53v7qZDp5ekJKDPfcgWmO74JQizvaL5iBAwa1xJ8GFBYYwnXnTRvBGnqVeq5dT_WS_PYU3w0XsK1IkZylOIpuWff23AgiCWamlqas3V9PAqnPqL2YZqAiHq-kSEY1vuWXckFw_5rXDnwV2jNa9JElyF9qf86i5gnXoXEu3uDKpaWyR0UaU6faGAnUkL6oWZWpIMgDU1jjGBucKxE1zoaVCUvUMkvJmWHBswY5UfIoHyKE5xwSdLD8m3bwH2LaJWJ6dQpwRkbPVSlLBrFv19bLu-D2FxaJkUV1KWFfP_T4gklZG5-yNiD67nHV9FtsXyguYLFQjB3bap0cJ3qIyn9aBWUKUoS38q1vy8N8TXTsp2rfrxouXTkqo-oqFWI6hy_KluVs2mWmdSnssU2CXCT9WVjM0mMs8j0GDcy2RHQUSdyfNokszHUobrpG-YQSC62bJiqfi2B2Au3zzR2rpGPo5GfCKOWnAyPyJ-yDPHLVpSxU9gMkT-r3ZT2hHeslVQHOyr-QmkhPb07ZcFP6y7kExJcoWp5xZhMr8VExfkZOyTzTUWSk9tzzdxlMHtFTz1P_0_w2m00\" \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            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/#plantuml:XPFRRjf048RlaNY7AQeg8d6uwLMbIaa8IY91uWQZgbVMiWomoXxSdJN4glhkdRKv696eNDdZ-R-P-MUufY1yA8nkjpufAtMnHDY4aDEtuT2BtM2jmgPO58HUEXlGXe5qPfXhOQEeJs6frM8u-jfFOcW-dGoDe82UGzc85K9Pz8EyAj1k1HKqGYBA7uMIhz27MSd91c8clWMuKsBjXOcf2NfojYiB2iwWxq6dZWWDetsimy4v8K7O88WyX-20q2x1E8ib27xAHGaBfJLrhev8LieDDylgwVunacwan3nGb1YUas3bdO53_GhGRjNzPhUki4lXooud_uwZnFOEKx4JOUMywLp1dtOB-5UhZiaPLUyDJLLVQxUZKy4uZH6lU6ee3XIyiBJQz_EtqTBuBNGNmZRWj_ocx1gUCEoShseatacaQ9bYmtq_2Xh87dmEOatVExmBz6nrBDBWaw5iBGBkHCcmTAUqSZ2RpY9wniPJpH8oA6V1kg1MIehuydys6g5qndUsLHBtl7klbYTsbG4U9IhUq_l0Tki5TUDeBYslMTM5L9-fleyUR1NkpWQeB8wuqy5SubvYEriydKqF55710OyhFf8Zv49wlgpJPexhu8v4THZ9uuUGyutKipsd2NmvT_-0UaZJPFOXxBqLqD7m0sCsJPFQwidDh-TvclryJ1-ooVX-_7JNvVWrg_Zl_Wy0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\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><br \/>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"77121\">M\u1eb9o c\u1ee7a Visual Paradigm<\/h3>\n<p data-nodeid=\"77122\">Trong Visual Paradigm, h\u00e3y s\u1eed d\u1ee5ng\u00a0<strong data-nodeid=\"77389\">Tr\u1ee3 l\u00fd AI<\/strong>\u00a0\u0111\u1ec3 t\u1ea1o s\u01a1 \u0111\u1ed3 ng\u1eef c\u1ea3nh h\u1ec7 th\u1ed1ng ban \u0111\u1ea7u b\u1eb1ng c\u00e1ch m\u00f4 t\u1ea3 h\u1ec7 th\u1ed1ng c\u1ee7a b\u1ea1n b\u1eb1ng ng\u00f4n ng\u1eef t\u1ef1 nhi\u00ean:\u00a0<em data-nodeid=\"77390\">\u201cT\u1ea1o s\u01a1 \u0111\u1ed3 ng\u1eef c\u1ea3nh h\u1ec7 th\u1ed1ng cho m\u1ed9t n\u1ec1n t\u1ea3ng thanh to\u00e1n v\u1edbi kh\u00e1ch h\u00e0ng, ng\u01b0\u1eddi b\u00e1n v\u00e0 t\u00edch h\u1ee3p ng\u00e2n h\u00e0ng.\u201d<\/em><\/p>\n<hr data-nodeid=\"77123\"\/>\n<h2 data-nodeid=\"77124\">\ud83d\udce6 M\u1ee9c 2: S\u01a1 \u0111\u1ed3 Container<\/h2>\n<h3 data-nodeid=\"77125\">\u0110i\u1ec1u n\u00f3 th\u1ec3 hi\u1ec7n<\/h3>\n<p data-nodeid=\"77126\">C\u00e1c l\u1ef1a ch\u1ecdn c\u00f4ng ngh\u1ec7 ch\u00ednh v\u00e0 c\u00e1ch ch\u00fang t\u01b0\u01a1ng t\u00e1c v\u1edbi nhau.<\/p>\n<h3 data-nodeid=\"77127\">V\u00ed d\u1ee5 v\u1ec1 PayQuick<\/h3>\n<p data-nodeid=\"77128\"><strong data-nodeid=\"77398\">C\u00e1c container:<\/strong><\/p>\n<ul data-nodeid=\"77129\">\n<li data-nodeid=\"77130\">\n<p data-nodeid=\"77131\">\u1ee8ng d\u1ee5ng di \u0111\u1ed9ng (iOS\/Android)<\/p>\n<\/li>\n<li data-nodeid=\"77132\">\n<p data-nodeid=\"77133\">\u1ee8ng d\u1ee5ng web (React)<\/p>\n<\/li>\n<li data-nodeid=\"77134\">\n<p data-nodeid=\"77135\">\u1ee8ng d\u1ee5ng API (Spring Boot)<\/p>\n<\/li>\n<li data-nodeid=\"77136\">\n<p data-nodeid=\"77137\">C\u01a1 s\u1edf d\u1eef li\u1ec7u (PostgreSQL)<\/p>\n<\/li>\n<li data-nodeid=\"77138\">\n<p data-nodeid=\"77139\">H\u00e0ng \u0111\u1ee3i tin nh\u1eafn (RabbitMQ)<\/p>\n<\/li>\n<li data-nodeid=\"77140\">\n<p data-nodeid=\"77141\">B\u1ed9 nh\u1edb \u0111\u1ec7m (Redis)<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"77142\">M\u00e3 C4-PlantUML<\/h3>\n<p id=\"byhCqZP\"><img alt=\"\" class=\"alignnone size-full wp-image-25293\" decoding=\"async\" height=\"1170\" loading=\"lazy\" sizes=\"auto, (max-width: 1163px) 100vw, 1163px\" src=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fd6876068.png\" srcset=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fd6876068.png 1163w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fd6876068-298x300.png 298w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fd6876068-1024x1030.png 1024w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fd6876068-80x80.png 80w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fd6876068-768x773.png 768w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fd6876068-150x150.png 150w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fd6876068-400x402.png 400w\" width=\"1163\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">Plantuml<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/#plantuml:dLLDJnin4BqZvJ-ud58f99UUUe84-e48tMI3UenclKxYuhKNsvkmglZldV5-P1T2AvK36CVptfkPDvDBvy7w8bE3imzISrMaWksypztdoSJ2ORoLVbSaXHEM6-s5zcDkiackG5FGXVEfaibazkaYegk7-Tqa0-U5nQlr32D0Qc77UI0Od7dfbM0Hb8j2yaTsmTedx5h2ra96ho9XdT53NZXlCc57x7nM7y_n_E24OtudM6OIYMYGvynOTX09awZGRe2Byuyj2aRn7Kh3o7bzxA5GN0fkbnYmASKDpk8ICyZMKrFe56mvpA5y8hqOrah7TFt6sEpy8_izE6FuqwOoh8IjKHYHLYglyfnebmAuP_VWvLwCsAhCHSojp8Eao9gzJ54MLVkO2qCQrjJ2aS8-6oPGK_t4L917IOxuHhTyxn91cadDGAUigLA_54JqYkvO5SWbObr5ttkSRJdw8l7nUWjU7A2iWxvM_v6UUvEAyIytOZVFkHNEqTqtLALGeZM5btexOb1WjxIlUKRCOZnJCfFqSIEsJufzop1aZUNSIowgzj4DYwiR8efpYm1iQWpMwHRsK5U8en3ahp5Sg9AteDscquK-dpPURcg17TBxpdMNEIhzZZBvWWE35GbYX4uTY-Tne1CPICMwg2tnoydcN2V353mau8ZtkZu6BkFyrefuSHTelB6Dpu1pxAZ7weViq2x4Cme24i2XnaAyCHqISU0xOfdHtyfggNGTTAoUeun9KK3RMF5KO2rLIQHKtfHPmOrDtn8i2b68uHFz3eFh76m52xU12v94-lcYwnHmfUQzQh6yQcDja9VERDyy-s42-d5TkNYAHt91tGRyL5WDYj6JC8cucYfxzn1SvjPvDKoqfLO7gQG9xIEWi4kMGdKMMMypq0eA2QnMKKolwUrnNHtd-lJ33bH_kkRmYEMW6UEW56uvqmPFRkCVzmr2I_1_uRsejwEsnC6b-QMUEz_0R9VHx2J0ExFpRvGtp9q9mEsNkid1Ii88FgpYRw-dxyVtZErQrrRnKhTMPxWalE56DKYdKsWy71M9aeuGnJuib4hArNmH_HtWbScEAs8lmwvQtiIhncyd4-hu_BZNsbNMmBJckaG2_Bh-0m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\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><br \/>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span><br \/>\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\/#plantuml:dLRFQ-D65Bu7yZzCVNB0YIyzzRGR9zrjcgIEvK9lPYHDfQcb6KKQEHPb3yiUzh0iR2WzbAKqRWZj1aAoK2YrA3t8vF_GVzBtzCEI7JlGvc1RutdV-zvxt_US9u6YlWfTPtFZ4ouC9pGPiPNoWi_QRP-UxLXSsQ4U1imtf51Cg1r3kctFeGA3jWDbEbnlTpxTxkBHrqU7RPS6YlbmDEX01EM2-JjUbc1pGt7bCDAbqKd8ZI7P9jhzXCpEq_W7Ch-CzxhC3wHe6c6WfCly5cbyQISJmoPsSY6i1ZnhQNn3p3I-4XP9um_mMZoOF0Fy2JxQCft-QH2BKmd7QVnQa3EcDxRc-01js40Ry8wj-xiq_faJFPc8vGHwEhs4jzavWBmCoT26zrTpiCqDBOAItS6k38L9_QZfqUWK2qHSY114vG1buOqjyltc1e6_UTLDL-hSOGFgUH2Lnh-lgWXvzHWr53ccYezOY_GZZsc6pps5ttL2k6waqojleMXHrcOcV-45Mq89jNPkBNE1mbOHmNfB1e-aNjEjqn3FYVBJ-0qP9HSLhQpb1OabAbLFgSUN-JpjVb5rSh42k3smg69dD49oQVnZSHz78assyrtG8ljZpsT1W6VVuBITvE-iqs-4JLGOfTD_H8kCeL54sMdyqSXOMr3DUqxiT3h1kSRdHZwTie157g045qmp0F-Ck043Q-m1FdH-12MGFeWFKibISfxFWUQkbD3U0pgY2ynKTJaZOjX04HixH9rVYjK4X5JyMsw0NAHOooBv0qMUJ2Gcx4RAbb3uv-3ZecFFW0C70lDxC4nAj2Cj8y9Sofqo-ukLOzpJcoPLLAS19k-0wOCq_WNdU4iS56cOPPQ1idocdHpYq-7zNPYfvPQev8ANPIwfkLKelQW7w03oEJ7lxnx86aWOrB2HmIuCZ0WOwljiUA_TNDSc3vOornWIp-R9TT5x54McSsBPs9cCKYPw_7G9Yl732FrmuptWSHAoa3LFyHMIFKSBPYmk0OWBf3MzpVJGexhErT79WWp6bHwgSG2LAvKlqcnTvN9yKTjD-sFLrAaO3d8VmM39iPNyAggDsazkS2C03mzwFFyA4bnZqoNC045hU84R33nVZhYPhMZ4H4tqpxZ3PRuPUyofRV657LTRi9Z-UR_VrJ08Gwh5NAsYH-_NW1Uj3z9zoz7vs1qmz3oqVQ1zTLp6pxFyd-25c8U6dxrRs2WaIgv3LCPlOGtLwdKxA_7M-FS_WpxWLVCZWhqrsgZakjv1wDb2EDZRNGzJEcgDPofdZCEeS4y6-WnTYslrWq5ounKPLXTSkcNsRlOAmF3tbAFJFv9X_XjNLVtqwAJxEDYIRlFjXig5hTOeXDpRr_fhYwuPQUxBvNLSWirr-eG94_uD-XS0\" \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\" data-nodeid=\"77143\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\n!include https:\/\/raw.githubusercontent.com\/plantuml-stdlib\/C4-PlantUML\/master\/C4_Container.puml\r\n\r\ntitle PayQuick - S\u01a1 \u0111\u1ed3 Container\r\n\r\nPerson(customer, \"Kh\u00e1ch h\u00e0ng\", \"S\u1eed d\u1ee5ng \u1ee9ng d\u1ee5ng di \u0111\u1ed9ng ho\u1eb7c giao di\u1ec7n web\")\r\nPerson(merchant, \"Ng\u01b0\u1eddi b\u00e1n\", \"S\u1eed d\u1ee5ng b\u1ea3ng \u0111i\u1ec1u khi\u1ec3n web\")\r\n\r\nSystem_Boundary(payquick, \"N\u1ec1n t\u1ea3ng PayQuick\") {\r\n    Container(mobile_app, \"\u1ee8ng d\u1ee5ng di \u0111\u1ed9ng\", \"React Native, TypeScript\", \"Cung c\u1ea5p giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng cho kh\u00e1ch h\u00e0ng\")\r\n    Container(web_app, \"\u1ee8ng d\u1ee5ng web\", \"React, TypeScript\", \"Cung c\u1ea5p b\u1ea3ng \u0111i\u1ec1u khi\u1ec3n qu\u1ea3n tr\u1ecb v\u00e0 ng\u01b0\u1eddi b\u00e1n\")\r\n    \r\n    Container_Boundary(api, \"\u1ee8ng d\u1ee5ng API\") {\r\n        Container(api_gateway, \"C\u1ed5ng API\", \"Node.js, Express\", \"X\u1eed l\u00fd \u0111\u1ecbnh tuy\u1ebfn, x\u00e1c th\u1ef1c v\u00e0 gi\u1edbi h\u1ea1n t\u1ed1c \u0111\u1ed9\")\r\n        Container(payment_service, \"D\u1ecbch v\u1ee5 Thanh to\u00e1n\", \"Spring Boot, Java\", \"X\u1eed l\u00fd thanh to\u00e1n v\u00e0 chuy\u1ec3n kho\u1ea3n\")\r\n        Container(notification_service, \"D\u1ecbch v\u1ee5 Th\u00f4ng b\u00e1o\", \"Python, FastAPI\", \"G\u1eedi th\u00f4ng b\u00e1o qua SMS v\u00e0 email\")\r\n    }\r\n    \r\n    ContainerDb(database, \"C\u01a1 s\u1edf d\u1eef li\u1ec7u\", \"PostgreSQL\", \"L\u01b0u tr\u1eef t\u00e0i kho\u1ea3n ng\u01b0\u1eddi d\u00f9ng, giao d\u1ecbch v\u00e0 s\u1ed1 d\u01b0\")\r\n    ContainerDb(cache, \"B\u1ed9 nh\u1edb \u0111\u1ec7m\", \"Redis\", \"L\u01b0u tr\u1eef d\u1eef li\u1ec7u phi\u00ean v\u00e0 c\u00e1c b\u1ea3n ghi th\u01b0\u1eddng \u0111\u01b0\u1ee3c truy c\u1eadp\")\r\n    ContainerQueue(queue, \"H\u00e0ng \u0111\u1ee3i tin nh\u1eafn\", \"RabbitMQ\", \"X\u1eed l\u00fd x\u1eed l\u00fd th\u00f4ng b\u00e1o b\u1ea5t \u0111\u1ed3ng b\u1ed9\")\r\n}\r\n\r\nSystem_Ext(bank_api, \"API Ng\u00e2n h\u00e0ng\", \"T\u00edch h\u1ee3p ng\u00e2n h\u00e0ng b\u00ean ngo\u00e0i\")\r\nSystem_Ext(sms_provider, \"API SMS Twilio\")\r\n\r\nRel(customer, mobile_app, \"S\u1eed d\u1ee5ng\", \"HTTPS\")\r\nRel(merchant, web_app, \"S\u1eed d\u1ee5ng\", \"HTTPS\")\r\nRel(mobile_app, api_gateway, \"G\u1ecdi API \u0111\u1ebfn\", \"HTTPS\/JSON\")\r\nRel(web_app, api_gateway, \"G\u1ecdi API \u0111\u1ebfn\", \"HTTPS\/JSON\")\r\nRel(api_gateway, payment_service, \"\u0110\u1ecbnh tuy\u1ebfn y\u00eau c\u1ea7u \u0111\u1ebfn\", \"gRPC\")\r\nRel(api_gateway, notification_service, \"\u0110\u1ecbnh tuy\u1ebfn y\u00eau c\u1ea7u \u0111\u1ebfn\", \"gRPC\")\r\nRel(payment_service, database, \"\u0110\u1ecdc\/ghi d\u1eef li\u1ec7u v\u00e0o\", \"JDBC\")\r\nRel(payment_service, cache, \"L\u01b0u tr\u1eef d\u1eef li\u1ec7u th\u01b0\u1eddng xuy\u00ean v\u00e0o\", \"Giao th\u1ee9c Redis\")\r\nRel(notification_service, queue, \"\u0110\u0103ng t\u1ea3i s\u1ef1 ki\u1ec7n \u0111\u1ebfn\", \"AMQP\")\r\nRel(notification_service, sms_provider, \"G\u1eedi SMS qua\", \"API REST\")\r\nRel(payment_service, bank_api, \"X\u1eed l\u00fd chuy\u1ec3n kho\u1ea3n qua\", \"HTTPS\")\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/#plantuml:dLRFQ-D65Bu7yZzCVNB0YIyzzRGR9zrjcgIEvK9lPYHDfQcb6KKQEHPb3yiUzh0iR2WzbAKqRWZj1aAoK2YrA3t8vF_GVzBtzCEI7JlGvc1RutdV-zvxt_US9u6YlWfTPtFZ4ouC9pGPiPNoWi_QRP-UxLXSsQ4U1imtf51Cg1r3kctFeGA3jWDbEbnlTpxTxkBHrqU7RPS6YlbmDEX01EM2-JjUbc1pGt7bCDAbqKd8ZI7P9jhzXCpEq_W7Ch-CzxhC3wHe6c6WfCly5cbyQISJmoPsSY6i1ZnhQNn3p3I-4XP9um_mMZoOF0Fy2JxQCft-QH2BKmd7QVnQa3EcDxRc-01js40Ry8wj-xiq_faJFPc8vGHwEhs4jzavWBmCoT26zrTpiCqDBOAItS6k38L9_QZfqUWK2qHSY114vG1buOqjyltc1e6_UTLDL-hSOGFgUH2Lnh-lgWXvzHWr53ccYezOY_GZZsc6pps5ttL2k6waqojleMXHrcOcV-45Mq89jNPkBNE1mbOHmNfB1e-aNjEjqn3FYVBJ-0qP9HSLhQpb1OabAbLFgSUN-JpjVb5rSh42k3smg69dD49oQVnZSHz78assyrtG8ljZpsT1W6VVuBITvE-iqs-4JLGOfTD_H8kCeL54sMdyqSXOMr3DUqxiT3h1kSRdHZwTie157g045qmp0F-Ck043Q-m1FdH-12MGFeWFKibISfxFWUQkbD3U0pgY2ynKTJaZOjX04HixH9rVYjK4X5JyMsw0NAHOooBv0qMUJ2Gcx4RAbb3uv-3ZecFFW0C70lDxC4nAj2Cj8y9Sofqo-ukLOzpJcoPLLAS19k-0wOCq_WNdU4iS56cOPPQ1idocdHpYq-7zNPYfvPQev8ANPIwfkLKelQW7w03oEJ7lxnx86aWOrB2HmIuCZ0WOwljiUA_TNDSc3vOornWIp-R9TT5x54McSsBPs9cCKYPw_7G9Yl732FrmuptWSHAoa3LFyHMIFKSBPYmk0OWBf3MzpVJGexhErT79WWp6bHwgSG2LAvKlqcnTvN9yKTjD-sFLrAaO3d8VmM39iPNyAggDsazkS2C03mzwFFyA4bnZqoNC045hU84R33nVZhYPhMZ4H4tqpxZ3PRuPUyofRV657LTRi9Z-UR_VrJ08Gwh5NAsYH-_NW1Uj3z9zoz7vs1qmz3oqVQ1zTLp6pxFyd-25c8U6dxrRs2WaIgv3LCPlOGtLwdKxA_7M-FS_WpxWLVCZWhqrsgZakjv1wDb2EDZRNGzJEcgDPofdZCEeS4y6-WnTYslrWq5ounKPLXTSkcNsRlOAmF3tbAFJFv9X_XjNLVtqwAJxEDYIRlFjXig5hTOeXDpRr_fhYwuPQUxBvNLSWirr-eG94_uD-XS0\" \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            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/#plantuml:dLLDJnin4BqZvJ-ud58f99UUUe84-e48tMI3UenclKxYuhKNsvkmglZldV5-P1T2AvK36CVptfkPDvDBvy7w8bE3imzISrMaWksypztdoSJ2ORoLVbSaXHEM6-s5zcDkiackG5FGXVEfaibazkaYegk7-Tqa0-U5nQlr32D0Qc77UI0Od7dfbM0Hb8j2yaTsmTedx5h2ra96ho9XdT53NZXlCc57x7nM7y_n_E24OtudM6OIYMYGvynOTX09awZGRe2Byuyj2aRn7Kh3o7bzxA5GN0fkbnYmASKDpk8ICyZMKrFe56mvpA5y8hqOrah7TFt6sEpy8_izE6FuqwOoh8IjKHYHLYglyfnebmAuP_VWvLwCsAhCHSojp8Eao9gzJ54MLVkO2qCQrjJ2aS8-6oPGK_t4L917IOxuHhTyxn91cadDGAUigLA_54JqYkvO5SWbObr5ttkSRJdw8l7nUWjU7A2iWxvM_v6UUvEAyIytOZVFkHNEqTqtLALGeZM5btexOb1WjxIlUKRCOZnJCfFqSIEsJufzop1aZUNSIowgzj4DYwiR8efpYm1iQWpMwHRsK5U8en3ahp5Sg9AteDscquK-dpPURcg17TBxpdMNEIhzZZBvWWE35GbYX4uTY-Tne1CPICMwg2tnoydcN2V353mau8ZtkZu6BkFyrefuSHTelB6Dpu1pxAZ7weViq2x4Cme24i2XnaAyCHqISU0xOfdHtyfggNGTTAoUeun9KK3RMF5KO2rLIQHKtfHPmOrDtn8i2b68uHFz3eFh76m52xU12v94-lcYwnHmfUQzQh6yQcDja9VERDyy-s42-d5TkNYAHt91tGRyL5WDYj6JC8cucYfxzn1SvjPvDKoqfLO7gQG9xIEWi4kMGdKMMMypq0eA2QnMKKolwUrnNHtd-lJ33bH_kkRmYEMW6UEW56uvqmPFRkCVzmr2I_1_uRsejwEsnC6b-QMUEz_0R9VHx2J0ExFpRvGtp9q9mEsNkid1Ii88FgpYRw-dxyVtZErQrrRnKhTMPxWalE56DKYdKsWy71M9aeuGnJuib4hArNmH_HtWbScEAs8lmwvQtiIhncyd4-hu_BZNsbNMmBJckaG2_Bh-0m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\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><br \/>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"77144\">T\u00ednh n\u0103ng AI c\u1ee7a Visual Paradigm<\/h3>\n<p data-nodeid=\"77145\">S\u1eed d\u1ee5ng\u00a0<strong data-nodeid=\"77412\">K\u1ebft n\u1ed1i th\u00f4ng minh<\/strong>\u00a0v\u1edbi g\u1ee3i \u00fd AI \u0111\u1ec3 t\u1ef1 \u0111\u1ed9ng ph\u00e1t hi\u1ec7n v\u00e0 \u0111\u1ec1 xu\u1ea5t c\u00e1c m\u1ed1i quan h\u1ec7 gi\u1eefa c\u00e1c container d\u1ef1a tr\u00ean lo\u1ea1i v\u00e0 tr\u00e1ch nhi\u1ec7m c\u1ee7a ch\u00fang.<\/p>\n<hr data-nodeid=\"77146\"\/>\n<h2 data-nodeid=\"77147\">M\u1ee9c 3: S\u01a1 \u0111\u1ed3 Th\u00e0nh ph\u1ea7n<\/h2>\n<h3 data-nodeid=\"77148\">\u0110i\u1ec1u n\u00f3 th\u1ec3 hi\u1ec7n<\/h3>\n<p data-nodeid=\"77149\">C\u1ea5u tr\u00fac b\u00ean trong c\u1ee7a m\u1ed9t container duy nh\u1ea5t.<\/p>\n<h3 data-nodeid=\"77150\">V\u00ed d\u1ee5 v\u1ec1 PayQuick<\/h3>\n<p data-nodeid=\"77151\">H\u00e3y ph\u00f3ng to v\u00e0o\u00a0<strong data-nodeid=\"77424\">D\u1ecbch v\u1ee5 Thanh to\u00e1n<\/strong>\u00a0h\u1ed9p ch\u1ee9a \u0111\u1ec3 xem c\u00e1c th\u00e0nh ph\u1ea7n c\u1ee7a n\u00f3:<\/p>\n<p data-nodeid=\"77152\"><strong data-nodeid=\"77428\">C\u00e1c th\u00e0nh ph\u1ea7n:<\/strong><\/p>\n<ul data-nodeid=\"77153\">\n<li data-nodeid=\"77154\">\n<p data-nodeid=\"77155\">B\u1ed9 \u0111i\u1ec1u khi\u1ec3n Thanh to\u00e1n<\/p>\n<\/li>\n<li data-nodeid=\"77156\">\n<p data-nodeid=\"77157\">B\u1ed9 qu\u1ea3n l\u00fd Giao d\u1ecbch<\/p>\n<\/li>\n<li data-nodeid=\"77158\">\n<p data-nodeid=\"77159\">D\u1ecbch v\u1ee5 Ph\u00e1t hi\u1ec7n Gian l\u1eadn<\/p>\n<\/li>\n<li data-nodeid=\"77160\">\n<p data-nodeid=\"77161\">B\u1ed9 t\u00ednh C\u00e2n b\u1eb1ng<\/p>\n<\/li>\n<li data-nodeid=\"77162\">\n<p data-nodeid=\"77163\">L\u1edbp L\u01b0u tr\u1eef<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"77164\">M\u00e3 C4-PlantUML<\/h3>\n<p id=\"jjVtdVE\"><img alt=\"\" class=\"alignnone size-full wp-image-25295\" decoding=\"async\" height=\"852\" loading=\"lazy\" sizes=\"auto, (max-width: 1461px) 100vw, 1461px\" src=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fde8f2934.png\" srcset=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fde8f2934.png 1461w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fde8f2934-300x175.png 300w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fde8f2934-1030x601.png 1030w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fde8f2934-768x448.png 768w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fde8f2934-150x87.png 150w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fde8f2934-400x233.png 400w\" width=\"1461\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">Plantuml<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/#plantuml:ZLLDRnen4BqZyHycd1Af2QgKKqz9baPDrRGKabpHu3MBXTVUsbwsKTN_tl6Q_MHBmWa_C-_DZDyCDzQXSNagnwCpePZCOmvRvpBxQJerM5mbmctpTMwvOLevhjmLq-aqawXyqALriHJhQNHzEVVGy-EtQOhMSKFGAj9fffMFoKg1ySW99pdCyVLdBjWEBltNb7u0IsxsWd6eGs0cC36O-gYpc6-4eilhvHOp_g0Mke3hDdwdSnMZUGrN7trGHEaYtPfLTNcU1R6L3M8VODAJdrp0d_48w5FdKGVvyesMaficBggn2O7Bp0YLmEBpyWcwDrzGnP9Re0RhrF_cG0g6_ygvTNPoqPTr1fL5veHMgnGL9gNkKuC-1h0bN1L1o0_3jiHhq95g9LPeizj8NGoeRGpcyIhcZZEdlT2z1sRbcRHQpCTQBoX5N0grShQmqGPAscErDP9N65ynb2oN61Jl0XZLsB1QTKzor5J8io2DZD4hEpXG3vIu3sdwVZRl_rA3xoonwYMTi4o0HeDCPYsON3QoFV7PklEUXcUw-vWBGgoWebzR2SoynjVvRGdHNRV3v1scJNnSAOaTkb49tORZcoB1KaqpVP53zC4j1_BIAGjV_7kBACCXhinridFdIZkn4Imy79E2C6BwtaAZ4lJyzrma2fepUKLQQ3E0hGRzs9Dgr_3VqOco_p_r0-t298nNGHiI-6_QUGebh4CatCuVlCXVlueMN0wkaU4PlzUcG7hOeoK1JdjAppOOUJJ4WvDPvdkIvzIa45Tf_JT91cVy-J2jrPJ2Nk19be6fMUA-lsgQlWofzePXmJ6sqy88rtDwYwRVoOxXeordkyEy0oRq7sFToIA6BRpaAkwQy-rsT4qwDvfwQ2cBsdrbr8QRcceykY4T-lVz1m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\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><br \/>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span><br \/>\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\/#plantuml:ZLPDInj16BuB-G-lERLG3GLFFQcn5LjRead1MvZCZhj3DZFhPZOIIW_5Gm-beFHKUaagfI0DMkWfeVImul_OVz9t9cps8nkZ5sK-dkTvdtdUTztiAkAheEEMLbQve6vWCN2KyhhFAXMVdAxRN3b1A-WodqgXc53hL7Ogdak4lhJMLPRBMvNgnbfDBxrzlL_faAvYFYurgxBZIQ7lU8QWjAAuSXdKIFyWuBGDQr2_6yBjHJJv0ie91y81pud6FmNiH9DFr85UDFa13OVWXfBXK6YCLOiTSy6Wkb5tYCVsnA4yXOtq-hOCX4Ny_dJhgRvKHV44T_rclFd88_qEQcjYQJrEsHCeBo0jFuPtfHN0drb1iylQ55-wBlFn_dOq-OhLy6Zo8O2sWx_FH0PeqPd3v_K6r3sV2rkVEOec8t33lq338OL-U1K0HLS2z6Y6fLqR_qDjUMNA9w9BgE9ID3j443kHTX94uqjXa7SvaM2PUikvoXCTj-TJcVWcamkEr_kW_F2Nbf1s9w_Ws2U1rRIOObH9FuTUSyAX0bttHw5Le9neF1ABHHnf3peSwUn4iydC6GfBWTa9s9oa5i5qKjQanAM1IwQoZ2Sg725qDVmke1MDVqyvYvKqpD6f-xrmeDzav870m8uKTD4YiEvk4730yM6bjdfUI8-ut2BcSOfpDolt8OwW6TVWwlApsT3gp6j5usiARNDKudQi9wTgfvL9ZSyy6TlZtjqWjAzvSf6Pwe4TeWYyh6tffVtai4bkoyJDTdZwwUOyGNP2ANQbMiJSI5jQJ7sGH3jZodsFWSJJg2wWFPWvcCtf0ofFp5yIqNm-X5JycDDfGgZBSGtXg-OF72NX7oHkXKDPJbPVC6uRNRlHv3EF6yHaHgKk5FI4QCzHlB5r9-XHR1THO0iWDew3IqypVEEmLTi3aLn2hYk12nADrvJlzV0zP6xXm2mULLKdw9kfg3XEE6_v_DFmXL1pWwXubfX2xWKgxDhYDbmELZYBgeMpv2GWzq8LTAr9OgQwS21Za2BgNE_TdcEAQ4KtxQ96oa3cFSvqr2lzUUjecQcEqACRloRBZIhk1KpvYAUJlTIbRD2JZskSixYiL7HZpDBA9XCM_lFo7m00\" \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\" data-nodeid=\"77165\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\n!include https:\/\/raw.githubusercontent.com\/plantuml-stdlib\/C4-PlantUML\/master\/C4_Component.puml\r\n\r\ntitle PayQuick - S\u01a1 \u0111\u1ed3 th\u00e0nh ph\u1ea7n D\u1ecbch v\u1ee5 Thanh to\u00e1n\r\n\r\n!define C4ShapeInRow 4\r\n!define C4BoundaryInRow 1\r\n\r\nContainer_Boundary(payment_service, \"D\u1ecbch v\u1ee5 Thanh to\u00e1n\") {\r\n    Component(payment_controller, \"B\u1ed9 \u0111i\u1ec1u khi\u1ec3n Thanh to\u00e1n\", \"B\u1ed9 \u0111i\u1ec1u khi\u1ec3n REST Spring\", \"X\u1eed l\u00fd c\u00e1c y\u00eau c\u1ea7u thanh to\u00e1n \u0111\u1ebfn\")\r\n    Component(transaction_manager, \"B\u1ed9 qu\u1ea3n l\u00fd Giao d\u1ecbch\", \"D\u1ecbch v\u1ee5 Spring\", \"\u0110i\u1ec1u ph\u1ed1i quy tr\u00ecnh thanh to\u00e1n\")\r\n    Component(fraud_detector, \"D\u1ecbch v\u1ee5 Ph\u00e1t hi\u1ec7n Gian l\u1eadn\", \"D\u1ecbch v\u1ee5 Spring\", \"X\u00e1c minh giao d\u1ecbch \u0111\u1ec3 ph\u00e1t hi\u1ec7n gian l\u1eadn\")\r\n    Component(balance_calculator, \"B\u1ed9 t\u00ednh C\u00e2n b\u1eb1ng\", \"D\u1ecbch v\u1ee5 Spring\", \"T\u00ednh to\u00e1n v\u00e0 c\u1eadp nh\u1eadt s\u1ed1 d\u01b0 t\u00e0i kho\u1ea3n\")\r\n    Component(validation_service, \"D\u1ecbch v\u1ee5 X\u00e1c minh\", \"D\u1ecbch v\u1ee5 Spring\", \"X\u00e1c minh d\u1eef li\u1ec7u thanh to\u00e1n v\u00e0 quy t\u1eafc kinh doanh\")\r\n    \r\n    ComponentDb(transaction_repo, \"B\u1ed9 l\u01b0u tr\u1eef Giao d\u1ecbch\", \"Spring Data JPA\", \"L\u01b0u tr\u1eef c\u00e1c b\u1ea3n ghi giao d\u1ecbch\")\r\n    ComponentDb(account_repo, \"B\u1ed9 l\u01b0u tr\u1eef T\u00e0i kho\u1ea3n\", \"Spring Data JPA\", \"Qu\u1ea3n l\u00fd d\u1eef li\u1ec7u t\u00e0i kho\u1ea3n\")\r\n    ComponentDb(fraud_repo, \"B\u1ed9 l\u01b0u tr\u1eef Quy t\u1eafc Gian l\u1eadn\", \"Spring Data JPA\", \"L\u01b0u tr\u1eef c\u00e1c quy t\u1eafc ph\u00e1t hi\u1ec7n gian l\u1eadn\")\r\n    \r\n    Component(notification_client, \"Client Th\u00f4ng b\u00e1o\", \"Client Feign\", \"G\u1ecdi d\u1ecbch v\u1ee5 th\u00f4ng b\u00e1o\")\r\n    Component(bank_client, \"Client Ng\u00e2n h\u00e0ng\", \"Client Feign\", \"T\u00edch h\u1ee3p v\u1edbi API ng\u00e2n h\u00e0ng b\u00ean ngo\u00e0i\")\r\n}\r\n\r\nRel(payment_controller, transaction_manager, \"Chuy\u1ec3n ti\u1ebfp y\u00eau c\u1ea7u thanh to\u00e1n \u0111\u1ebfn\")\r\nRel(transaction_manager, fraud_detector, \"X\u00e1c minh giao d\u1ecbch v\u1edbi\")\r\nRel(transaction_manager, validation_service, \"X\u00e1c minh d\u1eef li\u1ec7u v\u1edbi\")\r\nRel(transaction_manager, balance_calculator, \"C\u1eadp nh\u1eadt s\u1ed1 d\u01b0 qua\")\r\nRel(transaction_manager, transaction_repo, \"L\u01b0u giao d\u1ecbch v\u00e0o\")\r\nRel(balance_calculator, account_repo, \"\u0110\u1ecdc\/ghi d\u1eef li\u1ec7u t\u00e0i kho\u1ea3n v\u00e0o\")\r\nRel(fraud_detector, fraud_repo, \"Ki\u1ec3m tra quy t\u1eafc \u0111\u1ed1i v\u1edbi\")\r\nRel(transaction_manager, notification_client, \"G\u1eedi th\u00f4ng b\u00e1o qua\")\r\nRel(transaction_manager, bank_client, \"X\u1eed l\u00fd chuy\u1ec3n kho\u1ea3n b\u00ean ngo\u00e0i qua\")\r\n\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/#plantuml:ZLPDInj16BuB-G-lERLG3GLFFQcn5LjRead1MvZCZhj3DZFhPZOIIW_5Gm-beFHKUaagfI0DMkWfeVImul_OVz9t9cps8nkZ5sK-dkTvdtdUTztiAkAheEEMLbQve6vWCN2KyhhFAXMVdAxRN3b1A-WodqgXc53hL7Ogdak4lhJMLPRBMvNgnbfDBxrzlL_faAvYFYurgxBZIQ7lU8QWjAAuSXdKIFyWuBGDQr2_6yBjHJJv0ie91y81pud6FmNiH9DFr85UDFa13OVWXfBXK6YCLOiTSy6Wkb5tYCVsnA4yXOtq-hOCX4Ny_dJhgRvKHV44T_rclFd88_qEQcjYQJrEsHCeBo0jFuPtfHN0drb1iylQ55-wBlFn_dOq-OhLy6Zo8O2sWx_FH0PeqPd3v_K6r3sV2rkVEOec8t33lq338OL-U1K0HLS2z6Y6fLqR_qDjUMNA9w9BgE9ID3j443kHTX94uqjXa7SvaM2PUikvoXCTj-TJcVWcamkEr_kW_F2Nbf1s9w_Ws2U1rRIOObH9FuTUSyAX0bttHw5Le9neF1ABHHnf3peSwUn4iydC6GfBWTa9s9oa5i5qKjQanAM1IwQoZ2Sg725qDVmke1MDVqyvYvKqpD6f-xrmeDzav870m8uKTD4YiEvk4730yM6bjdfUI8-ut2BcSOfpDolt8OwW6TVWwlApsT3gp6j5usiARNDKudQi9wTgfvL9ZSyy6TlZtjqWjAzvSf6Pwe4TeWYyh6tffVtai4bkoyJDTdZwwUOyGNP2ANQbMiJSI5jQJ7sGH3jZodsFWSJJg2wWFPWvcCtf0ofFp5yIqNm-X5JycDDfGgZBSGtXg-OF72NX7oHkXKDPJbPVC6uRNRlHv3EF6yHaHgKk5FI4QCzHlB5r9-XHR1THO0iWDew3IqypVEEmLTi3aLn2hYk12nADrvJlzV0zP6xXm2mULLKdw9kfg3XEE6_v_DFmXL1pWwXubfX2xWKgxDhYDbmELZYBgeMpv2GWzq8LTAr9OgQwS21Za2BgNE_TdcEAQ4KtxQ96oa3cFSvqr2lzUUjecQcEqACRloRBZIhk1KpvYAUJlTIbRD2JZskSixYiL7HZpDBA9XCM_lFo7m00\" \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            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/#plantuml:ZLLDRnen4BqZyHycd1Af2QgKKqz9baPDrRGKabpHu3MBXTVUsbwsKTN_tl6Q_MHBmWa_C-_DZDyCDzQXSNagnwCpePZCOmvRvpBxQJerM5mbmctpTMwvOLevhjmLq-aqawXyqALriHJhQNHzEVVGy-EtQOhMSKFGAj9fffMFoKg1ySW99pdCyVLdBjWEBltNb7u0IsxsWd6eGs0cC36O-gYpc6-4eilhvHOp_g0Mke3hDdwdSnMZUGrN7trGHEaYtPfLTNcU1R6L3M8VODAJdrp0d_48w5FdKGVvyesMaficBggn2O7Bp0YLmEBpyWcwDrzGnP9Re0RhrF_cG0g6_ygvTNPoqPTr1fL5veHMgnGL9gNkKuC-1h0bN1L1o0_3jiHhq95g9LPeizj8NGoeRGpcyIhcZZEdlT2z1sRbcRHQpCTQBoX5N0grShQmqGPAscErDP9N65ynb2oN61Jl0XZLsB1QTKzor5J8io2DZD4hEpXG3vIu3sdwVZRl_rA3xoonwYMTi4o0HeDCPYsON3QoFV7PklEUXcUw-vWBGgoWebzR2SoynjVvRGdHNRV3v1scJNnSAOaTkb49tORZcoB1KaqpVP53zC4j1_BIAGjV_7kBACCXhinridFdIZkn4Imy79E2C6BwtaAZ4lJyzrma2fepUKLQQ3E0hGRzs9Dgr_3VqOco_p_r0-t298nNGHiI-6_QUGebh4CatCuVlCXVlueMN0wkaU4PlzUcG7hOeoK1JdjAppOOUJJ4WvDPvdkIvzIa45Tf_JT91cVy-J2jrPJ2Nk19be6fMUA-lsgQlWofzePXmJ6sqy88rtDwYwRVoOxXeordkyEy0oRq7sFToIA6BRpaAkwQy-rsT4qwDvfwQ2cBsdrbr8QRcceykY4T-lVz1m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\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><br \/>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3 data-nodeid=\"77166\">L\u1eddi khuy\u00ean t\u1eeb Visual Paradigm<\/h3>\n<p data-nodeid=\"77167\">S\u1eed d\u1ee5ng\u00a0<strong data-nodeid=\"77441\">M\u1eabu s\u01a1 \u0111\u1ed3 Th\u00e0nh ph\u1ea7n<\/strong>\u00a0trong Visual Paradigm \u0111\u1ec3 nhanh ch\u00f3ng t\u1ea1o c\u1ea5u tr\u00fac th\u00e0nh ph\u1ea7n. Tr\u00ed tu\u1ec7 nh\u00e2n t\u1ea1o c\u00f3 th\u1ec3 g\u1ee3i \u00fd c\u00e1c m\u1eabu ph\u1ed5 bi\u1ebfn nh\u01b0 B\u1ed9 l\u01b0u tr\u1eef, L\u1edbp D\u1ecbch v\u1ee5 v\u00e0 B\u1ed9 \u0111i\u1ec1u khi\u1ec3n d\u1ef1a tr\u00ean lo\u1ea1i h\u1ed9p ch\u1ee9a c\u1ee7a b\u1ea1n.<\/p>\n<hr data-nodeid=\"77168\"\/>\n<h2 data-nodeid=\"77169\">\ud83d\udcbb M\u1ee9c \u0111\u1ed9 4: S\u01a1 \u0111\u1ed3 M\u00e3 ngu\u1ed3n (T\u00f9y ch\u1ecdn)<\/h2>\n<h3 data-nodeid=\"77170\">\u0110i\u1ec1u n\u00f3 hi\u1ec3n th\u1ecb<\/h3>\n<p data-nodeid=\"77171\">C\u00e1c l\u1edbp, giao di\u1ec7n v\u00e0 ph\u01b0\u01a1ng th\u1ee9c th\u1ef1c t\u1ebf.<\/p>\n<h3 data-nodeid=\"77172\">V\u00ed d\u1ee5: L\u1edbp FraudDetectionService<\/h3>\n<p id=\"NLhqVWO\"><img alt=\"\" class=\"alignnone size-full wp-image-25296\" decoding=\"async\" height=\"618\" loading=\"lazy\" sizes=\"auto, (max-width: 554px) 100vw, 554px\" src=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fe04527ac.png\" srcset=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fe04527ac.png 554w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fe04527ac-269x300.png 269w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fe04527ac-134x150.png 134w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fe04527ac-400x446.png 400w\" width=\"554\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">Plantuml<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/#plantuml:XPF1QiCm38RlWRo3ZnsbVO0mIkcwmQ3iq9RT5KTBJ1sxs79f6NltAKdT9Lks-IPBl_JfDrvw0aUXrcb2YZIA9mUXM2EX96ND3jr9IHGpyQ31Ux5MK3geqoHDP7inNlwU9eBFh4jlWqQ_nQFrYgoxYBVsakDOjNTWFBGTUcLqDbz5Ko4hb8UstuGpMLzqbrq7eG-QObSyWGv0s8uVqsoKf_ickuWI2Le6tMYKF-oaTJYcMzkGQumQvLzHMwdeydYMY0KMa-3HFHUPs95JfcJ5obgDODBauvjp7N7qQyhDLjphW2pEewRBk4YKYQ8tVohoJj1kUTsfcxk85ILIiyy6JwWdJ7CBHdYuIu-6CJRMb3S6phv0ZN6pU4-LGrzPNGozQTPvDC3nptNYuupvcu-urQiOyWr9eBR141kkoZLALOEEcU6RtCXLZVm3wYEJCysUmvYgqSaA3FL5BT0lFsIs63nf9XnISCR_BsWypnh0Fslx3cI2xLC54qV9TUfyFcmghI5G3KIQBD4K_D4_0G00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\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><br \/>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span><br \/>\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\/#plantuml:XPF1Qjj048Rl0ht371sCym0Yc12SGi7a48VSrwkfjNYrQtPdZKFfeOzGUkmfb1vww0jKnvQ-Xzwa8ydhIerCzZOxyytyyozxxKau2gLE4rAa4Tuu4V854afIrgpGxPL4cC7gppFy_bHNds5PLrzsQP8cKWllpm3lqmJupBhqVT3ext5dlIBhdk1TUybnh7fmmdZHTkYLqS7yAvg2B51kstuJpcHzw28x3a8VDCMkk1Sw2C9s_1YpL9wkckmy8b9e6NJ3ABzTIUjmZ5lOiDOO6UKVKLkfwEds815pp2V1etkRPx0Yfyo6YHjhDGgJ9X_-SwvJ7FsQShCRxhL5XjUHwJ8kAieWxysVmhe3sYsFEtLpvx5YWzJiiyGzwWchEGKZUhXBJmtBM5gpEMdWx9qeCMuMxwbmw0khyw4tpJgtHd3ySftuE6F-haVSwbKCzGsLYD86GsousYnGgbBec1c-oKcvAf7_GBbZvQpcWSEOAj79GXZgGwsWCtzaDXyyQGRawfzVOLzN7rzd6jipy7Nr0_Aw-jRCEe_qlSZWyEjPGgbCSKIEyoylXxrbKLVVHQF_6atEN_ul\" \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\" data-nodeid=\"77173\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\ntitle FraudDetectionService - S\u01a1 \u0111\u1ed3 L\u1edbp\r\n\r\nclass FraudDetectionService {\r\n    - FraudRulesRepository fraudRepo\r\n    - TransactionRepository txnRepo\r\n    + checkFraud(txn: Transaction): FraudResult\r\n    - evaluateRules(txn: Transaction): List&lt;Rule&gt;\r\n    - calculateRiskScore(txn: Transaction): Double\r\n    - isVelocityExceeded(userId: String): Boolean\r\n}\r\n\r\nclass FraudResult {\r\n    + isBlocked: boolean\r\n    + riskScore: double\r\n    + blockedRules: List&lt;String&gt;\r\n    + getRiskLevel(): RiskLevel\r\n}\r\n\r\nclass FraudRule {\r\n    + id: Long\r\n    + ruleName: String\r\n    + threshold: Double\r\n    + isEnabled: boolean\r\n    + evaluate(txn: Transaction): boolean\r\n}\r\n\r\nclass Transaction {\r\n    + id: String\r\n    + amount: BigDecimal\r\n    + userId: String\r\n    + timestamp: DateTime\r\n    + merchantId: String\r\n}\r\n\r\nFraudDetectionService --&gt; FraudResult : tr\u1ea3 v\u1ec1\r\nFraudDetectionService --&gt; FraudRule : s\u1eed d\u1ee5ng\r\nFraudDetectionService --&gt; Transaction : x\u00e1c minh\r\nFraudResult ..&gt; FraudRule : ch\u1ee9a\r\n\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/#plantuml:XPF1Qjj048Rl0ht371sCym0Yc12SGi7a48VSrwkfjNYrQtPdZKFfeOzGUkmfb1vww0jKnvQ-Xzwa8ydhIerCzZOxyytyyozxxKau2gLE4rAa4Tuu4V854afIrgpGxPL4cC7gppFy_bHNds5PLrzsQP8cKWllpm3lqmJupBhqVT3ext5dlIBhdk1TUybnh7fmmdZHTkYLqS7yAvg2B51kstuJpcHzw28x3a8VDCMkk1Sw2C9s_1YpL9wkckmy8b9e6NJ3ABzTIUjmZ5lOiDOO6UKVKLkfwEds815pp2V1etkRPx0Yfyo6YHjhDGgJ9X_-SwvJ7FsQShCRxhL5XjUHwJ8kAieWxysVmhe3sYsFEtLpvx5YWzJiiyGzwWchEGKZUhXBJmtBM5gpEMdWx9qeCMuMxwbmw0khyw4tpJgtHd3ySftuE6F-haVSwbKCzGsLYD86GsousYnGgbBec1c-oKcvAf7_GBbZvQpcWSEOAj79GXZgGwsWCtzaDXyyQGRawfzVOLzN7rzd6jipy7Nr0_Aw-jRCEe_qlSZWyEjPGgbCSKIEyoylXxrbKLVVHQF_6atEN_ul\" \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            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/#plantuml:XPF1QiCm38RlWRo3ZnsbVO0mIkcwmQ3iq9RT5KTBJ1sxs79f6NltAKdT9Lks-IPBl_JfDrvw0aUXrcb2YZIA9mUXM2EX96ND3jr9IHGpyQ31Ux5MK3geqoHDP7inNlwU9eBFh4jlWqQ_nQFrYgoxYBVsakDOjNTWFBGTUcLqDbz5Ko4hb8UstuGpMLzqbrq7eG-QObSyWGv0s8uVqsoKf_ickuWI2Le6tMYKF-oaTJYcMzkGQumQvLzHMwdeydYMY0KMa-3HFHUPs95JfcJ5obgDODBauvjp7N7qQyhDLjphW2pEewRBk4YKYQ8tVohoJj1kUTsfcxk85ILIiyy6JwWdJ7CBHdYuIu-6CJRMb3S6phv0ZN6pU4-LGrzPNGozQTPvDC3nptNYuupvcu-urQiOyWr9eBR141kkoZLALOEEcU6RtCXLZVm3wYEJCysUmvYgqSaA3FL5BT0lFsIs63nf9XnISCR_BsWypnh0Fslx3cI2xLC54qV9TUfyFcmghI5G3KIQBD4K_D4_0G00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\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><br \/>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"77174\"><strong data-nodeid=\"77450\">Ghi ch\u00fa:<\/strong>\u00a0S\u01a1 \u0111\u1ed3 m\u1ee9c \u0111\u1ed9 4 t\u1ed1t nh\u1ea5t n\u00ean \u0111\u01b0\u1ee3c t\u1ea1o t\u1ef1 \u0111\u1ed9ng t\u1eeb m\u00e3 ngu\u1ed3n b\u1eb1ng c\u00e1c c\u00f4ng c\u1ee5 nh\u01b0:<\/p>\n<ul data-nodeid=\"77175\">\n<li data-nodeid=\"77176\">\n<p data-nodeid=\"77177\"><strong data-nodeid=\"77457\">T\u00ednh n\u0103ng K\u1ef9 thu\u1eadt M\u00e3 ngu\u1ed3n c\u1ee7a Visual Paradigm<\/strong>\u00a0t\u00ednh n\u0103ng<\/p>\n<\/li>\n<li data-nodeid=\"77178\">\n<p data-nodeid=\"77179\">B\u1ed9 sinh s\u01a1 \u0111\u1ed3 t\u00edch h\u1ee3p trong IntelliJ IDEA<\/p>\n<\/li>\n<li data-nodeid=\"77180\">\n<p data-nodeid=\"77181\">Swagger\/OpenAPI cho t\u00e0i li\u1ec7u API<\/p>\n<\/li>\n<\/ul>\n<hr data-nodeid=\"77182\"\/>\n<h2 data-nodeid=\"77183\">\ud83d\udee0\ufe0f C\u00f4ng c\u1ee5 \u0111\u01b0\u1ee3c \u0111\u1ec1 xu\u1ea5t: Visual Paradigm + T\u00ednh n\u0103ng AI<\/h2>\n<h3 data-nodeid=\"77184\">T\u1ea1i sao ch\u1ecdn Visual Paradigm?<\/h3>\n<p data-nodeid=\"77185\">Visual Paradigm l\u00e0 m\u1ed9t c\u00f4ng c\u1ee5 m\u00f4 h\u00ecnh h\u00f3a to\u00e0n di\u1ec7n h\u1ed7 tr\u1ee3 c\u00e1c s\u01a1 \u0111\u1ed3 C4 m\u1ed9t c\u00e1ch b\u1ea3n \u0111\u1ecba v\u00e0 cung c\u1ea5p c\u00e1c t\u00ednh n\u0103ng h\u1ed7 tr\u1ee3 AI m\u1ea1nh m\u1ebd:<\/p>\n<h3 data-nodeid=\"77186\">T\u00ednh n\u0103ng ch\u00ednh cho m\u00f4 h\u00ecnh h\u00f3a C4:<\/h3>\n<ol data-nodeid=\"77187\">\n<li data-nodeid=\"77188\">\n<p data-nodeid=\"77189\"><strong data-nodeid=\"77469\">T\u1ea1o s\u01a1 \u0111\u1ed3 \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3 b\u1edfi AI<\/strong><\/p>\n<ul data-nodeid=\"77190\">\n<li data-nodeid=\"77191\">\n<p data-nodeid=\"77192\">M\u00f4 t\u1ea3 h\u1ec7 th\u1ed1ng c\u1ee7a b\u1ea1n b\u1eb1ng ti\u1ebfng Anh th\u00f4ng th\u01b0\u1eddng<\/p>\n<\/li>\n<li data-nodeid=\"77193\">\n<p data-nodeid=\"77194\">AI \u0111\u1ec1 xu\u1ea5t c\u00e1c s\u01a1 \u0111\u1ed3 c\u1ea5p \u0111\u1ed9 C4 ph\u00f9 h\u1ee3p<\/p>\n<\/li>\n<li data-nodeid=\"77195\">\n<p data-nodeid=\"77196\">T\u1ef1 \u0111\u1ed9ng t\u1ea1o c\u1ea5u tr\u00fac ban \u0111\u1ea7u<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li data-nodeid=\"77197\">\n<p data-nodeid=\"77198\"><strong data-nodeid=\"77476\">\u0110\u1ed9ng c\u01a1 b\u1ed1 c\u1ee5c th\u00f4ng minh<\/strong><\/p>\n<ul data-nodeid=\"77199\">\n<li data-nodeid=\"77200\">\n<p data-nodeid=\"77201\">S\u1eafp x\u1ebfp t\u1ef1 \u0111\u1ed9ng c\u00e1c th\u00e0nh ph\u1ea7n<\/p>\n<\/li>\n<li data-nodeid=\"77202\">\n<p data-nodeid=\"77203\">\u0110\u1ecbnh tuy\u1ebfn k\u1ebft n\u1ed1i th\u00f4ng minh<\/p>\n<\/li>\n<li data-nodeid=\"77204\">\n<p data-nodeid=\"77205\">Phong c\u00e1ch nh\u1ea5t qu\u00e1n tr\u00ean c\u00e1c s\u01a1 \u0111\u1ed3<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li data-nodeid=\"77206\">\n<p data-nodeid=\"77207\"><strong data-nodeid=\"77483\">K\u1ef9 thu\u1eadt m\u00e3 ngu\u1ed3n<\/strong><\/p>\n<ul data-nodeid=\"77208\">\n<li data-nodeid=\"77209\">\n<p data-nodeid=\"77210\">Ph\u00e2n t\u00edch ng\u01b0\u1ee3c m\u00e3 ngu\u1ed3n th\u00e0nh s\u01a1 \u0111\u1ed3 (C\u1ea5p \u0111\u1ed9 4)<\/p>\n<\/li>\n<li data-nodeid=\"77211\">\n<p data-nodeid=\"77212\">Ph\u00e2n t\u00edch ti\u1ebfn s\u01a1 \u0111\u1ed3 th\u00e0nh khung m\u00e3 ngu\u1ed3n<\/p>\n<\/li>\n<li data-nodeid=\"77213\">\n<p data-nodeid=\"77214\">Gi\u1eef cho s\u01a1 \u0111\u1ed3 \u0111\u1ed3ng b\u1ed9 v\u1edbi c\u01a1 s\u1edf m\u00e3 ngu\u1ed3n<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li data-nodeid=\"77215\">\n<p data-nodeid=\"77216\"><strong data-nodeid=\"77490\">T\u00ednh n\u0103ng h\u1ee3p t\u00e1c<\/strong><\/p>\n<ul data-nodeid=\"77217\">\n<li data-nodeid=\"77218\">\n<p data-nodeid=\"77219\">H\u1ee3p t\u00e1c nh\u00f3m th\u1eddi gian th\u1ef1c<\/p>\n<\/li>\n<li data-nodeid=\"77220\">\n<p data-nodeid=\"77221\">T\u00edch h\u1ee3p ki\u1ec3m so\u00e1t phi\u00ean b\u1ea3n<\/p>\n<\/li>\n<li data-nodeid=\"77222\">\n<p data-nodeid=\"77223\">Xu\u1ea5t ra nhi\u1ec1u \u0111\u1ecbnh d\u1ea1ng (PNG, PDF, SVG)<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li data-nodeid=\"77224\">\n<p data-nodeid=\"77225\"><strong data-nodeid=\"77497\">M\u1eabu m\u00f4 h\u00ecnh C4<\/strong><\/p>\n<ul data-nodeid=\"77226\">\n<li data-nodeid=\"77227\">\n<p data-nodeid=\"77228\">C\u00e1c m\u1eabu \u0111\u00e3 x\u00e2y s\u1eb5n cho t\u1eebng c\u1ea5p \u0111\u1ed9 C4<\/p>\n<\/li>\n<li data-nodeid=\"77229\">\n<p data-nodeid=\"77230\">C\u00e1c v\u00ed d\u1ee5 c\u1ee5 th\u1ec3 theo ng\u00e0nh<\/p>\n<\/li>\n<li data-nodeid=\"77231\">\n<p data-nodeid=\"77232\">H\u01b0\u1edbng d\u1eabn th\u1ef1c h\u00e0nh t\u1ed1t \u0111\u01b0\u1ee3c t\u00edch h\u1ee3p s\u1eb5n<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3 data-nodeid=\"77233\">B\u1eaft \u0111\u1ea7u v\u1edbi Visual Paradigm:<\/h3>\n<ol data-nodeid=\"77234\">\n<li data-nodeid=\"77235\">\n<p data-nodeid=\"77236\"><strong data-nodeid=\"77506\">T\u1ea3i xu\u1ed1ng<\/strong>phi\u00ean b\u1ea3n C\u1ed9ng \u0111\u1ed3ng (mi\u1ec5n ph\u00ed) ho\u1eb7c phi\u00ean b\u1ea3n Doanh nghi\u1ec7p<\/p>\n<\/li>\n<li data-nodeid=\"77237\">\n<p data-nodeid=\"77238\"><strong data-nodeid=\"77511\">C\u00e0i \u0111\u1eb7t<\/strong>plugin m\u00f4 h\u00ecnh C4 t\u1eeb c\u1eeda h\u00e0ng th\u1ecb tr\u01b0\u1eddng<\/p>\n<\/li>\n<li data-nodeid=\"77239\">\n<p data-nodeid=\"77240\"><strong data-nodeid=\"77516\">T\u1ea1o<\/strong>\u00a0s\u01a1 \u0111\u1ed3 \u0111\u1ea7u ti\u00ean c\u1ee7a b\u1ea1n b\u1eb1ng tr\u00ecnh h\u01b0\u1edbng d\u1eabn<\/p>\n<\/li>\n<li data-nodeid=\"77241\">\n<p data-nodeid=\"77242\"><strong data-nodeid=\"77521\">S\u1eed d\u1ee5ng Tr\u1ee3 l\u00fd AI<\/strong>\u00a0b\u1eb1ng c\u00e1ch nh\u1ea5p v\u00e0o bi\u1ec3u t\u01b0\u1ee3ng c\u00e2y g\u1eady ph\u00e9p<\/p>\n<\/li>\n<li data-nodeid=\"77243\">\n<p data-nodeid=\"77244\"><strong data-nodeid=\"77526\">Xu\u1ea5t<\/strong>\u00a0v\u00e0 chia s\u1ebb v\u1edbi \u0111\u1ed9i c\u1ee7a b\u1ea1n<\/p>\n<\/li>\n<\/ol>\n<hr data-nodeid=\"77245\"\/>\n<h2 data-nodeid=\"77246\">\ud83d\ude80 C\u00e1c Th\u1ef1c Ti\u1ec5n T\u1ed1t Nh\u1ea5t cho Ng\u01b0\u1eddi M\u1edbi B\u1eaft \u0110\u1ea7u<\/h2>\n<h3 data-nodeid=\"77247\">1.\u00a0<strong data-nodeid=\"77532\">B\u1eaft \u0111\u1ea7u \u0111\u01a1n gi\u1ea3n, sau \u0111\u00f3 l\u1eb7p l\u1ea1i<\/strong><\/h3>\n<ul data-nodeid=\"77248\">\n<li data-nodeid=\"77249\">\n<p data-nodeid=\"77250\">B\u1eaft \u0111\u1ea7u t\u1eeb M\u1ee9c 1 ngay c\u1ea3 khi c\u1ea3m th\u1ea5y qu\u00e1 \u0111\u01a1n gi\u1ea3n<\/p>\n<\/li>\n<li data-nodeid=\"77251\">\n<p data-nodeid=\"77252\">Thu h\u00fat s\u1ef1 \u0111\u1ed3ng thu\u1eadn t\u1eeb c\u00e1c b\u00ean li\u00ean quan tr\u01b0\u1edbc khi \u0111i s\u00e2u h\u01a1n<\/p>\n<\/li>\n<li data-nodeid=\"77253\">\n<p data-nodeid=\"77254\">Th\u00eam chi ti\u1ebft d\u1ea7n d\u1ea7n theo nhu c\u1ea7u<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"77255\">2.\u00a0<strong data-nodeid=\"77540\">Gi\u1eef s\u01a1 \u0111\u1ed3 lu\u00f4n c\u1eadp nh\u1eadt<\/strong><\/h3>\n<ul data-nodeid=\"77256\">\n<li data-nodeid=\"77257\">\n<p data-nodeid=\"77258\">C\u1eadp nh\u1eadt s\u01a1 \u0111\u1ed3 M\u1ee9c 1-2 v\u1edbi m\u1ed7i b\u1ea3n ph\u00e1t h\u00e0nh ch\u00ednh<\/p>\n<\/li>\n<li data-nodeid=\"77259\">\n<p data-nodeid=\"77260\">T\u1ef1 \u0111\u1ed9ng h\u00f3a vi\u1ec7c t\u1ea1o s\u01a1 \u0111\u1ed3 M\u1ee9c 4 khi c\u00f3 th\u1ec3<\/p>\n<\/li>\n<li data-nodeid=\"77261\">\n<p data-nodeid=\"77262\">L\u01b0u tr\u1eef c\u00e1c s\u01a1 \u0111\u1ed3 l\u1ed7i th\u1eddi, \u0111\u1eebng x\u00f3a ch\u00fang<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"77263\">3.\u00a0<strong data-nodeid=\"77550\">\u0110\u1eb7t t\u00ean r\u00f5 r\u00e0ng cho c\u00e1c th\u1ee9<\/strong><\/h3>\n<p data-nodeid=\"77264\">S\u1eed d\u1ee5ng \u0111\u1ecbnh d\u1ea1ng:\u00a0<strong data-nodeid=\"77563\">T\u00ean<\/strong>\u00a0[C\u00f4ng ngh\u1ec7] \u2013\u00a0<strong data-nodeid=\"77564\">M\u00f4 t\u1ea3<\/strong><\/p>\n<p data-nodeid=\"77265\">\u2705 T\u1ed1t:\u00a0<code data-backticks=\"1\" data-nodeid=\"77566\">D\u1ecbch v\u1ee5 Thanh to\u00e1n [Spring Boot] - X\u1eed l\u00fd c\u00e1c giao d\u1ecbch thanh to\u00e1n<\/code><br \/>\n\u274c K\u00e9m:\u00a0<code data-backticks=\"1\" data-nodeid=\"77570\">PaymentService<\/code>\u00a0ho\u1eb7c\u00a0<code data-backticks=\"1\" data-nodeid=\"77572\">\u0110i\u1ec1u g\u00ec \u0111\u00f3 v\u1ec1 thanh to\u00e1n<\/code><\/p>\n<h3 data-nodeid=\"77266\">4.\u00a0<strong data-nodeid=\"77577\">Ch\u1ecdn c\u1ea5p \u0111\u1ed9 ph\u00f9 h\u1ee3p v\u1edbi \u0111\u1ed1i t\u01b0\u1ee3ng c\u1ee7a b\u1ea1n<\/strong><\/h3>\n<table data-nodeid=\"77268\">\n<thead data-nodeid=\"77269\">\n<tr data-nodeid=\"77270\">\n<th data-nodeid=\"77272\">\u0110\u1ed1i t\u01b0\u1ee3ng<\/th>\n<th data-nodeid=\"77273\">C\u1ea5p \u0111\u1ed9 \u0111\u01b0\u1ee3c khuy\u1ebfn ngh\u1ecb<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"77276\">\n<tr data-nodeid=\"77277\">\n<td data-nodeid=\"77278\">L\u00e3nh \u0111\u1ea1o\/C\u00e1c kh\u00e1ch h\u00e0ng<\/td>\n<td data-nodeid=\"77279\">Ch\u1ec9 c\u1ea5p \u0111\u1ed9 1<\/td>\n<\/tr>\n<tr data-nodeid=\"77280\">\n<td data-nodeid=\"77281\">Nh\u00e0 qu\u1ea3n l\u00fd s\u1ea3n ph\u1ea9m<\/td>\n<td data-nodeid=\"77282\">C\u1ea5p \u0111\u1ed9 1-2<\/td>\n<\/tr>\n<tr data-nodeid=\"77283\">\n<td data-nodeid=\"77284\">DevOps\/C\u01a1 s\u1edf h\u1ea1 t\u1ea7ng<\/td>\n<td data-nodeid=\"77285\">C\u1ea5p \u0111\u1ed9 2-3<\/td>\n<\/tr>\n<tr data-nodeid=\"77286\">\n<td data-nodeid=\"77287\">L\u1eadp tr\u00ecnh vi\u00ean<\/td>\n<td data-nodeid=\"77288\">C\u1ea5p \u0111\u1ed9 2-4<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 data-nodeid=\"77289\">5.\u00a0<strong data-nodeid=\"77592\">S\u1eed d\u1ee5ng ng\u00f4n ng\u1eef tr\u1ef1c quan nh\u1ea5t qu\u00e1n<\/strong><\/h3>\n<ul data-nodeid=\"77290\">\n<li data-nodeid=\"77291\">\n<p data-nodeid=\"77292\">Tu\u00e2n theo quy \u01b0\u1edbc m\u00e0u s\u1eafc C4<\/p>\n<\/li>\n<li data-nodeid=\"77293\">\n<p data-nodeid=\"77294\">S\u1eed d\u1ee5ng c\u00e1c h\u00ecnh d\u1ea1ng nh\u1ea5t qu\u00e1n cho c\u00e1c th\u00e0nh ph\u1ea7n t\u01b0\u01a1ng t\u1ef1<\/p>\n<\/li>\n<li data-nodeid=\"77295\">\n<p data-nodeid=\"77296\">Duy tr\u00ec phong c\u00e1ch m\u0169i t\u00ean cho c\u00e1c lo\u1ea1i m\u1ed1i quan h\u1ec7<\/p>\n<\/li>\n<\/ul>\n<hr data-nodeid=\"77297\"\/>\n<h2 data-nodeid=\"77298\">\ud83d\udcca V\u00ed d\u1ee5 ho\u00e0n ch\u1ec9nh: B\u1ea3n \u0111\u1ed3 h\u00e0nh tr\u00ecnh ng\u01b0\u1eddi d\u00f9ng qua c\u00e1c c\u1ea5p \u0111\u1ed9<\/h2>\n<p data-nodeid=\"77299\">H\u00e3y c\u00f9ng theo d\u00f5i m\u1ed9t\u00a0<strong data-nodeid=\"77606\">\u201cChuy\u1ec3n ti\u1ec1n\u201d<\/strong>\u00a0t\u00ednh n\u0103ng qua t\u1ea5t c\u1ea3 c\u00e1c c\u1ea5p \u0111\u1ed9 C4:<\/p>\n<p data-nodeid=\"77300\"><strong data-nodeid=\"77611\">C\u1ea5p \u0111\u1ed9 1 (B\u1ed1i c\u1ea3nh):<\/strong>\u00a0Kh\u00e1ch h\u00e0ng \u2192 PayQuick \u2192 M\u1ea1ng l\u01b0\u1edbi Ng\u00e2n h\u00e0ng<\/p>\n<p id=\"kVLWWbl\"><img alt=\"\" class=\"alignnone size-full wp-image-25298\" decoding=\"async\" height=\"768\" loading=\"lazy\" sizes=\"auto, (max-width: 522px) 100vw, 522px\" src=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56ffaf5a8f1.png\" srcset=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56ffaf5a8f1.png 522w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56ffaf5a8f1-204x300.png 204w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56ffaf5a8f1-102x150.png 102w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56ffaf5a8f1-400x589.png 400w\" width=\"522\"\/><\/p>\n<p data-nodeid=\"77301\"><strong data-nodeid=\"77616\">C\u1ea5p \u0111\u1ed9 2 (Th\u00f9ng ch\u1ee9a):<\/strong>\u00a0\u1ee8ng d\u1ee5ng di \u0111\u1ed9ng \u2192 C\u1ed5ng API \u2192 D\u1ecbch v\u1ee5 Thanh to\u00e1n \u2192 C\u01a1 s\u1edf d\u1eef li\u1ec7u \u2192 API Ng\u00e2n h\u00e0ng<\/p>\n<p id=\"FBKlsJZ\"><img alt=\"\" class=\"alignnone size-full wp-image-25299\" decoding=\"async\" height=\"1239\" loading=\"lazy\" sizes=\"auto, (max-width: 642px) 100vw, 642px\" src=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56ffcdc3199.png\" srcset=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56ffcdc3199.png 642w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56ffcdc3199-155x300.png 155w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56ffcdc3199-534x1030.png 534w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56ffcdc3199-78x150.png 78w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56ffcdc3199-400x772.png 400w\" width=\"642\"\/><\/p>\n<p data-nodeid=\"77302\"><strong data-nodeid=\"77621\">C\u1ea5p \u0111\u1ed9 3 (Th\u00e0nh ph\u1ea7n):<\/strong>\u00a0PaymentController \u2192 TransactionManager \u2192 Ph\u00e1t hi\u1ec7n gian l\u1eadn \u2192 B\u1ed9 t\u00ednh s\u1ed1 d\u01b0 \u2192 Kho l\u01b0u tr\u1eef Giao d\u1ecbch<\/p>\n<p id=\"FTbCKqG\"><img alt=\"\" class=\"alignnone size-full wp-image-25300\" decoding=\"async\" height=\"1150\" loading=\"lazy\" sizes=\"auto, (max-width: 950px) 100vw, 950px\" src=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56ffdfb6c2f.png\" srcset=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56ffdfb6c2f.png 950w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56ffdfb6c2f-248x300.png 248w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56ffdfb6c2f-851x1030.png 851w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56ffdfb6c2f-768x930.png 768w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56ffdfb6c2f-124x150.png 124w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56ffdfb6c2f-400x484.png 400w\" width=\"950\"\/><\/p>\n<p data-nodeid=\"77303\"><strong data-nodeid=\"77631\">C\u1ea5p \u0111\u1ed9 4 (M\u00e3 ngu\u1ed3n):<\/strong>\u00a0<code data-backticks=\"1\" data-nodeid=\"77626\">PaymentController.transfer()<\/code>\u00a0\u2192\u00a0<code data-backticks=\"1\" data-nodeid=\"77628\">TransactionManager.process()<\/code>\u00a0\u2192\u00a0<code data-backticks=\"1\" data-nodeid=\"77630\">FraudDetection.checkFraud()<\/code><\/p>\n<p id=\"hjXjyBi\"><img alt=\"\" class=\"alignnone size-full wp-image-25301\" decoding=\"async\" height=\"365\" loading=\"lazy\" sizes=\"auto, (max-width: 1503px) 100vw, 1503px\" src=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fffb3ea11.png\" srcset=\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fffb3ea11.png 1503w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fffb3ea11-300x73.png 300w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fffb3ea11-1030x250.png 1030w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fffb3ea11-768x187.png 768w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fffb3ea11-150x36.png 150w, https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/img_6a56fffb3ea11-400x97.png 400w\" width=\"1503\"\/><br \/>\nC\u00e1ch ti\u1ebfp c\u1eadn ph\u00e2n c\u1ea5p n\u00e0y gi\u00fap c\u00e1c th\u00e0nh vi\u00ean nh\u00f3m kh\u00e1c nhau hi\u1ec3u h\u1ec7 th\u1ed1ng \u1edf m\u1ee9c \u0111\u1ed9 chi ti\u1ebft ph\u00f9 h\u1ee3p v\u1edbi h\u1ecd.<\/p>\n<hr data-nodeid=\"77305\"\/>\n<h2 data-nodeid=\"77306\">\ud83c\udf93 K\u1ebft lu\u1eadn<\/h2>\n<p data-nodeid=\"77307\">M\u00f4 h\u00ecnh C4 chuy\u1ec3n \u0111\u1ed5i ki\u1ebfn tr\u00fac ph\u1ea7n m\u1ec1m t\u1eeb m\u1ed9t kh\u00e1i ni\u1ec7m tr\u1eebu t\u01b0\u1ee3ng, \u0111\u00e1ng s\u1ee3 th\u00e0nh m\u1ed9t b\u1ea3n \u0111\u1ed3 th\u1ef1c t\u1ebf, d\u1ec5 tham kh\u1ea3o. B\u1eaft \u0111\u1ea7u t\u1eeb b\u1ee9c tranh t\u1ed5ng th\u1ec3 v\u00e0 d\u1ea7n ph\u00f3ng to chi ti\u1ebft, b\u1ea1n s\u1ebd t\u1ea1o ra t\u00e0i li\u1ec7u tham kh\u1ea3o ph\u1ee5c v\u1ee5 m\u1ecdi ng\u01b0\u1eddi, t\u1eeb CTO \u0111\u1ebfn c\u00e1c l\u1eadp tr\u00ecnh vi\u00ean m\u1edbi.<\/p>\n<p data-nodeid=\"77308\"><strong data-nodeid=\"77638\">Nh\u1eefng \u0111i\u1ec3m ch\u00ednh:<\/strong><\/p>\n<p data-nodeid=\"77309\">\u2705\u00a0<strong data-nodeid=\"77676\">M\u1ee9c 1<\/strong>\u00a0\u0111\u1eb7t n\u1ec1n t\u1ea3ng\u2014kh\u00f4ng bao gi\u1edd b\u1ecf qua, ngay c\u1ea3 v\u1edbi \u0111\u1ed1i t\u01b0\u1ee3ng k\u1ef9 thu\u1eadt<br \/>\n\u2705\u00a0<strong data-nodeid=\"77677\">M\u1ee9c 2<\/strong>\u00a0b\u1ed9c l\u1ed9 b\u1ed9 c\u00f4ng ngh\u1ec7 v\u00e0 chi\u1ebfn l\u01b0\u1ee3c tri\u1ec3n khai c\u1ee7a b\u1ea1n<br \/>\n\u2705\u00a0<strong data-nodeid=\"77678\">M\u1ee9c 3<\/strong>\u00a0cho th\u1ea5y c\u00e1ch b\u1ea1n \u0111\u00e3 t\u1ed5 ch\u1ee9c m\u00e3 ngu\u1ed3n b\u00ean trong c\u00e1c d\u1ecbch v\u1ee5<br \/>\n\u2705\u00a0<strong data-nodeid=\"77679\">M\u1ee9c 4<\/strong>\u00a0l\u00e0 t\u00f9y ch\u1ecdn\u2014t\u1ef1 \u0111\u1ed9ng h\u00f3a khi c\u00f3 th\u1ec3<br \/>\n\u2705\u00a0<strong data-nodeid=\"77680\">Visual Paradigm<\/strong>\u00a0v\u00e0 c\u00e1c c\u00f4ng c\u1ee5 t\u01b0\u01a1ng t\u1ef1 c\u00f3 t\u00ednh n\u0103ng AI c\u00f3 th\u1ec3 t\u0103ng t\u1ed1c t\u1ea1o s\u01a1 \u0111\u1ed3 l\u00ean 50-70%<br \/>\n\u2705\u00a0<strong data-nodeid=\"77681\">T\u00e0i li\u1ec7u s\u1ed1ng \u0111\u1ed9ng<\/strong>\u00a0t\u1ed1t h\u01a1n t\u00e0i li\u1ec7u ho\u00e0n h\u1ea3o\u2014c\u1eadp nh\u1eadt theo t\u1eebng b\u01b0\u1edbc<\/p>\n<p data-nodeid=\"77310\">H\u00e3y nh\u1edb: M\u1ee5c ti\u00eau kh\u00f4ng ph\u1ea3i l\u00e0 t\u1ea1o ra nh\u1eefng s\u01a1 \u0111\u1ed3 \u0111\u1eb9p m\u1eaft ch\u1ec9 v\u00ec ch\u00fang \u0111\u1eb9p. M\u1ee5c \u0111\u00edch l\u00e0 h\u1ed7 tr\u1ee3 giao ti\u1ebfp, gi\u1ea3m th\u1eddi gian l\u00e0m quen v\u00e0 \u0111\u01b0a ra c\u00e1c quy\u1ebft \u0111\u1ecbnh ki\u1ebfn tr\u00fac t\u1ed1t h\u01a1n. B\u1eaft \u0111\u1ea7u ngay h\u00f4m nay v\u1edbi m\u1ed9t s\u01a1 \u0111\u1ed3 B\u1ed1i c\u1ea3nh H\u1ec7 th\u1ed1ng \u0111\u01a1n gi\u1ea3n, v\u00e0 quan s\u00e1t s\u1ef1 hi\u1ec3u bi\u1ebft\u2014v\u00e0 n\u0103ng su\u1ea5t\u2014c\u1ee7a \u0111\u1ed9i nh\u00f3m b\u1ea1n ng\u00e0y c\u00e0ng ph\u00e1t tri\u1ec3n.<\/p>\n<p data-nodeid=\"77311\"><strong data-nodeid=\"77692\">C\u00e1c b\u01b0\u1edbc ti\u1ebfp theo c\u1ee7a b\u1ea1n:<\/strong><\/p>\n<ol data-nodeid=\"77312\">\n<li data-nodeid=\"77313\">\n<p data-nodeid=\"77314\">Ch\u1ecdn m\u1ed9t trong c\u00e1c d\u1ef1 \u00e1n hi\u1ec7n t\u1ea1i c\u1ee7a b\u1ea1n<\/p>\n<\/li>\n<li data-nodeid=\"77315\">\n<p data-nodeid=\"77316\">V\u1ebd ph\u00e1c th\u1ea3o s\u01a1 \u0111\u1ed3 M\u1ee9c 1 tr\u00ean gi\u1ea5y ho\u1eb7c b\u1ea3ng tr\u1eafng<\/p>\n<\/li>\n<li data-nodeid=\"77317\">\n<p data-nodeid=\"77318\">Chuy\u1ec3n \u0111\u1ed5i n\u00f3 sang C4-PlantUML ho\u1eb7c Visual Paradigm<\/p>\n<\/li>\n<li data-nodeid=\"77319\">\n<p data-nodeid=\"77320\">Chia s\u1ebb n\u00f3 v\u1edbi m\u1ed9t b\u00ean li\u00ean quan kh\u00f4ng chuy\u00ean \u0111\u1ec3 nh\u1eadn ph\u1ea3n h\u1ed3i<\/p>\n<\/li>\n<li data-nodeid=\"77321\">\n<p data-nodeid=\"77322\">Th\u00eam d\u1ea7n c\u00e1c chi ti\u1ebft c\u1ea5p \u0111\u1ed9 2 khi c\u1ea7n thi\u1ebft<\/p>\n<\/li>\n<\/ol>\n<p data-nodeid=\"77323\">Ch\u00fac b\u1ea1n v\u1ebd s\u01a1 \u0111\u1ed3 vui v\u1ebb! \ud83c\udfa8<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gi\u1edbi thi\u1ec7u T\u00e0i li\u1ec7u ki\u1ebfn tr\u00fac ph\u1ea7n m\u1ec1m th\u01b0\u1eddng khi\u1ebfn ng\u01b0\u1eddi ta c\u1ea3m th\u1ea5y cho\u00e1ng ng\u1ee3p. C\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n ho\u1eb7c t\u1ea1o ra nh\u1eefng s\u01a1 \u0111\u1ed3 qu\u00e1 ph\u1ee9c t\u1ea1p m\u00e0 kh\u00f4ng ai hi\u1ec3u \u0111\u01b0\u1ee3c, ho\u1eb7c b\u1ecf ho\u00e0n to\u00e0n vi\u1ec7c ghi t\u00e0i li\u1ec7u, khi\u1ebfn \u0111\u1ed9i ng\u0169 b\u1ecb l\u1ea1c trong m\u00ea cung m\u00e3 ngu\u1ed3n. Xin gi\u1edbi thi\u1ec7u [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"no","_lmt_disable":"","footnotes":""},"categories":[65,70],"tags":[],"class_list":["post-11712","post","type-post","status-publish","format-standard","hentry","category-ai","category-vpascode","loop-entry","clr"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>T\u1eeb b\u1ee9c tranh to\u00e0n c\u1ea3nh \u0111\u1ebfn m\u00e3 ngu\u1ed3n: H\u01b0\u1edbng d\u1eabn cho ng\u01b0\u1eddi m\u1edbi b\u1eaft \u0111\u1ea7u v\u1ec1 vi\u1ec7c tr\u1ef1c quan h\u00f3a ki\u1ebfn tr\u00fac ph\u1ea7n m\u1ec1m b\u1eb1ng m\u00f4 h\u00ecnh C4 - Visual Paradigm Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.visual-paradigm.com\/vn\/from-big-picture-to-code-a-beginners-guide-to-visualizing-software-architecture-with-the-c4-model\/\" \/>\n<meta property=\"og:locale\" content=\"vi_VN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"T\u1eeb b\u1ee9c tranh to\u00e0n c\u1ea3nh \u0111\u1ebfn m\u00e3 ngu\u1ed3n: H\u01b0\u1edbng d\u1eabn cho ng\u01b0\u1eddi m\u1edbi b\u1eaft \u0111\u1ea7u v\u1ec1 vi\u1ec7c tr\u1ef1c quan h\u00f3a ki\u1ebfn tr\u00fac ph\u1ea7n m\u1ec1m b\u1eb1ng m\u00f4 h\u00ecnh C4 - Visual Paradigm Blog\" \/>\n<meta property=\"og:description\" content=\"Gi\u1edbi thi\u1ec7u T\u00e0i li\u1ec7u ki\u1ebfn tr\u00fac ph\u1ea7n m\u1ec1m th\u01b0\u1eddng khi\u1ebfn ng\u01b0\u1eddi ta c\u1ea3m th\u1ea5y cho\u00e1ng ng\u1ee3p. C\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n ho\u1eb7c t\u1ea1o ra nh\u1eefng s\u01a1 \u0111\u1ed3 qu\u00e1 ph\u1ee9c t\u1ea1p m\u00e0 kh\u00f4ng ai hi\u1ec3u \u0111\u01b0\u1ee3c, ho\u1eb7c b\u1ecf ho\u00e0n to\u00e0n vi\u1ec7c ghi t\u00e0i li\u1ec7u, khi\u1ebfn \u0111\u1ed9i ng\u0169 b\u1ecb l\u1ea1c trong m\u00ea cung m\u00e3 ngu\u1ed3n. Xin gi\u1edbi thi\u1ec7u [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.visual-paradigm.com\/vn\/from-big-picture-to-code-a-beginners-guide-to-visualizing-software-architecture-with-the-c4-model\/\" \/>\n<meta property=\"og:site_name\" content=\"Visual Paradigm Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-15T03:18:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-26T10:43:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/lens.usercontent.google.com\/banana?agsi=CmdnbG9iYWw6OjAwMDA1NWNmZWM3MDAyNmQ6MDAwMDAwZWI6MTo1ZjIyMzE5ODBmZDhlNTE4OjAwMDA1NWNmZWM3MDAyNmQ6MDAwMDAyZWIyODIwMzM2ODowMDA2NTY5ZDg1NDRlZjRmEAIYASIJaW1hZ2UvcG5n\" \/><meta property=\"og:image\" content=\"https:\/\/lens.usercontent.google.com\/banana?agsi=CmdnbG9iYWw6OjAwMDA1NWNmZWM3MDAyNmQ6MDAwMDAwZWI6MTo1ZjIyMzE5ODBmZDhlNTE4OjAwMDA1NWNmZWM3MDAyNmQ6MDAwMDAyZWIyODIwMzM2ODowMDA2NTY5ZDg1NDRlZjRmEAIYASIJaW1hZ2UvcG5n\" \/>\n<meta name=\"author\" content=\"Admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/lens.usercontent.google.com\/banana?agsi=CmdnbG9iYWw6OjAwMDA1NWNmZWM3MDAyNmQ6MDAwMDAwZWI6MTo1ZjIyMzE5ODBmZDhlNTE4OjAwMDA1NWNmZWM3MDAyNmQ6MDAwMDAyZWIyODIwMzM2ODowMDA2NTY5ZDg1NDRlZjRmEAIYASIJaW1hZ2UvcG5n\" \/>\n<meta name=\"twitter:label1\" content=\"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi\" \/>\n\t<meta name=\"twitter:data1\" content=\"Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 ph\u00fat\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.visual-paradigm.com\/vn\/from-big-picture-to-code-a-beginners-guide-to-visualizing-software-architecture-with-the-c4-model\/\",\"url\":\"https:\/\/blog.visual-paradigm.com\/vn\/from-big-picture-to-code-a-beginners-guide-to-visualizing-software-architecture-with-the-c4-model\/\",\"name\":\"T\u1eeb b\u1ee9c tranh to\u00e0n c\u1ea3nh \u0111\u1ebfn m\u00e3 ngu\u1ed3n: H\u01b0\u1edbng d\u1eabn cho ng\u01b0\u1eddi m\u1edbi b\u1eaft \u0111\u1ea7u v\u1ec1 vi\u1ec7c tr\u1ef1c quan h\u00f3a ki\u1ebfn tr\u00fac ph\u1ea7n m\u1ec1m b\u1eb1ng m\u00f4 h\u00ecnh C4 - Visual Paradigm Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blog.visual-paradigm.com\/vn\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.visual-paradigm.com\/vn\/from-big-picture-to-code-a-beginners-guide-to-visualizing-software-architecture-with-the-c4-model\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.visual-paradigm.com\/vn\/from-big-picture-to-code-a-beginners-guide-to-visualizing-software-architecture-with-the-c4-model\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/bananaagsiCmdnbG9iYWw6OjAwMDA1NWNmZWM3MDAyNmQ6MDAwMDAwZWI6MTo1ZjIyMzE5ODBmZDhlNTE4OjAwMDA1NWNmZWM3MDAyNmQ6MDAwMDAyZWIyODIwMzM2ODowMDA2NTY5ZDg1NDRlZjRmEAIYASIJaW1hZ2UvcG5n.png\",\"datePublished\":\"2026-07-15T03:18:16+00:00\",\"dateModified\":\"2026-07-26T10:43:40+00:00\",\"author\":{\"@id\":\"https:\/\/blog.visual-paradigm.com\/vn\/#\/schema\/person\/a649c442f11a53040710ddec750926c6\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.visual-paradigm.com\/vn\/from-big-picture-to-code-a-beginners-guide-to-visualizing-software-architecture-with-the-c4-model\/#breadcrumb\"},\"inLanguage\":\"vi\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.visual-paradigm.com\/vn\/from-big-picture-to-code-a-beginners-guide-to-visualizing-software-architecture-with-the-c4-model\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"vi\",\"@id\":\"https:\/\/blog.visual-paradigm.com\/vn\/from-big-picture-to-code-a-beginners-guide-to-visualizing-software-architecture-with-the-c4-model\/#primaryimage\",\"url\":\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/bananaagsiCmdnbG9iYWw6OjAwMDA1NWNmZWM3MDAyNmQ6MDAwMDAwZWI6MTo1ZjIyMzE5ODBmZDhlNTE4OjAwMDA1NWNmZWM3MDAyNmQ6MDAwMDAyZWIyODIwMzM2ODowMDA2NTY5ZDg1NDRlZjRmEAIYASIJaW1hZ2UvcG5n.png\",\"contentUrl\":\"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/bananaagsiCmdnbG9iYWw6OjAwMDA1NWNmZWM3MDAyNmQ6MDAwMDAwZWI6MTo1ZjIyMzE5ODBmZDhlNTE4OjAwMDA1NWNmZWM3MDAyNmQ6MDAwMDAyZWIyODIwMzM2ODowMDA2NTY5ZDg1NDRlZjRmEAIYASIJaW1hZ2UvcG5n.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.visual-paradigm.com\/vn\/from-big-picture-to-code-a-beginners-guide-to-visualizing-software-architecture-with-the-c4-model\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.visual-paradigm.com\/vn\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"T\u1eeb b\u1ee9c tranh to\u00e0n c\u1ea3nh \u0111\u1ebfn m\u00e3 ngu\u1ed3n: H\u01b0\u1edbng d\u1eabn cho ng\u01b0\u1eddi m\u1edbi b\u1eaft \u0111\u1ea7u v\u1ec1 vi\u1ec7c tr\u1ef1c quan h\u00f3a ki\u1ebfn tr\u00fac ph\u1ea7n m\u1ec1m b\u1eb1ng m\u00f4 h\u00ecnh C4\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.visual-paradigm.com\/vn\/#website\",\"url\":\"https:\/\/blog.visual-paradigm.com\/vn\/\",\"name\":\"Visual Paradigm Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.visual-paradigm.com\/vn\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"vi\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.visual-paradigm.com\/vn\/#\/schema\/person\/a649c442f11a53040710ddec750926c6\",\"name\":\"Admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"vi\",\"@id\":\"https:\/\/blog.visual-paradigm.com\/vn\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6b756c36f5e9132f6067fb4d22bef2e3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6b756c36f5e9132f6067fb4d22bef2e3?s=96&d=mm&r=g\",\"caption\":\"Admin\"},\"url\":\"https:\/\/blog.visual-paradigm.com\/vn\/author\/vpadminuser\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"T\u1eeb b\u1ee9c tranh to\u00e0n c\u1ea3nh \u0111\u1ebfn m\u00e3 ngu\u1ed3n: H\u01b0\u1edbng d\u1eabn cho ng\u01b0\u1eddi m\u1edbi b\u1eaft \u0111\u1ea7u v\u1ec1 vi\u1ec7c tr\u1ef1c quan h\u00f3a ki\u1ebfn tr\u00fac ph\u1ea7n m\u1ec1m b\u1eb1ng m\u00f4 h\u00ecnh C4 - Visual Paradigm Blog","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:\/\/blog.visual-paradigm.com\/vn\/from-big-picture-to-code-a-beginners-guide-to-visualizing-software-architecture-with-the-c4-model\/","og_locale":"vi_VN","og_type":"article","og_title":"T\u1eeb b\u1ee9c tranh to\u00e0n c\u1ea3nh \u0111\u1ebfn m\u00e3 ngu\u1ed3n: H\u01b0\u1edbng d\u1eabn cho ng\u01b0\u1eddi m\u1edbi b\u1eaft \u0111\u1ea7u v\u1ec1 vi\u1ec7c tr\u1ef1c quan h\u00f3a ki\u1ebfn tr\u00fac ph\u1ea7n m\u1ec1m b\u1eb1ng m\u00f4 h\u00ecnh C4 - Visual Paradigm Blog","og_description":"Gi\u1edbi thi\u1ec7u T\u00e0i li\u1ec7u ki\u1ebfn tr\u00fac ph\u1ea7n m\u1ec1m th\u01b0\u1eddng khi\u1ebfn ng\u01b0\u1eddi ta c\u1ea3m th\u1ea5y cho\u00e1ng ng\u1ee3p. C\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n ho\u1eb7c t\u1ea1o ra nh\u1eefng s\u01a1 \u0111\u1ed3 qu\u00e1 ph\u1ee9c t\u1ea1p m\u00e0 kh\u00f4ng ai hi\u1ec3u \u0111\u01b0\u1ee3c, ho\u1eb7c b\u1ecf ho\u00e0n to\u00e0n vi\u1ec7c ghi t\u00e0i li\u1ec7u, khi\u1ebfn \u0111\u1ed9i ng\u0169 b\u1ecb l\u1ea1c trong m\u00ea cung m\u00e3 ngu\u1ed3n. Xin gi\u1edbi thi\u1ec7u [&hellip;]","og_url":"https:\/\/blog.visual-paradigm.com\/vn\/from-big-picture-to-code-a-beginners-guide-to-visualizing-software-architecture-with-the-c4-model\/","og_site_name":"Visual Paradigm Blog","article_published_time":"2026-07-15T03:18:16+00:00","article_modified_time":"2026-07-26T10:43:40+00:00","og_image":[{"url":"https:\/\/lens.usercontent.google.com\/banana?agsi=CmdnbG9iYWw6OjAwMDA1NWNmZWM3MDAyNmQ6MDAwMDAwZWI6MTo1ZjIyMzE5ODBmZDhlNTE4OjAwMDA1NWNmZWM3MDAyNmQ6MDAwMDAyZWIyODIwMzM2ODowMDA2NTY5ZDg1NDRlZjRmEAIYASIJaW1hZ2UvcG5n","type":"","width":"","height":""},{"url":"https:\/\/lens.usercontent.google.com\/banana?agsi=CmdnbG9iYWw6OjAwMDA1NWNmZWM3MDAyNmQ6MDAwMDAwZWI6MTo1ZjIyMzE5ODBmZDhlNTE4OjAwMDA1NWNmZWM3MDAyNmQ6MDAwMDAyZWIyODIwMzM2ODowMDA2NTY5ZDg1NDRlZjRmEAIYASIJaW1hZ2UvcG5n","type":"","width":"","height":""}],"author":"Admin","twitter_card":"summary_large_image","twitter_image":"https:\/\/lens.usercontent.google.com\/banana?agsi=CmdnbG9iYWw6OjAwMDA1NWNmZWM3MDAyNmQ6MDAwMDAwZWI6MTo1ZjIyMzE5ODBmZDhlNTE4OjAwMDA1NWNmZWM3MDAyNmQ6MDAwMDAyZWIyODIwMzM2ODowMDA2NTY5ZDg1NDRlZjRmEAIYASIJaW1hZ2UvcG5n","twitter_misc":{"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi":"Admin","\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc":"7 ph\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.visual-paradigm.com\/vn\/from-big-picture-to-code-a-beginners-guide-to-visualizing-software-architecture-with-the-c4-model\/","url":"https:\/\/blog.visual-paradigm.com\/vn\/from-big-picture-to-code-a-beginners-guide-to-visualizing-software-architecture-with-the-c4-model\/","name":"T\u1eeb b\u1ee9c tranh to\u00e0n c\u1ea3nh \u0111\u1ebfn m\u00e3 ngu\u1ed3n: H\u01b0\u1edbng d\u1eabn cho ng\u01b0\u1eddi m\u1edbi b\u1eaft \u0111\u1ea7u v\u1ec1 vi\u1ec7c tr\u1ef1c quan h\u00f3a ki\u1ebfn tr\u00fac ph\u1ea7n m\u1ec1m b\u1eb1ng m\u00f4 h\u00ecnh C4 - Visual Paradigm Blog","isPartOf":{"@id":"https:\/\/blog.visual-paradigm.com\/vn\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.visual-paradigm.com\/vn\/from-big-picture-to-code-a-beginners-guide-to-visualizing-software-architecture-with-the-c4-model\/#primaryimage"},"image":{"@id":"https:\/\/blog.visual-paradigm.com\/vn\/from-big-picture-to-code-a-beginners-guide-to-visualizing-software-architecture-with-the-c4-model\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/bananaagsiCmdnbG9iYWw6OjAwMDA1NWNmZWM3MDAyNmQ6MDAwMDAwZWI6MTo1ZjIyMzE5ODBmZDhlNTE4OjAwMDA1NWNmZWM3MDAyNmQ6MDAwMDAyZWIyODIwMzM2ODowMDA2NTY5ZDg1NDRlZjRmEAIYASIJaW1hZ2UvcG5n.png","datePublished":"2026-07-15T03:18:16+00:00","dateModified":"2026-07-26T10:43:40+00:00","author":{"@id":"https:\/\/blog.visual-paradigm.com\/vn\/#\/schema\/person\/a649c442f11a53040710ddec750926c6"},"breadcrumb":{"@id":"https:\/\/blog.visual-paradigm.com\/vn\/from-big-picture-to-code-a-beginners-guide-to-visualizing-software-architecture-with-the-c4-model\/#breadcrumb"},"inLanguage":"vi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.visual-paradigm.com\/vn\/from-big-picture-to-code-a-beginners-guide-to-visualizing-software-architecture-with-the-c4-model\/"]}]},{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/blog.visual-paradigm.com\/vn\/from-big-picture-to-code-a-beginners-guide-to-visualizing-software-architecture-with-the-c4-model\/#primaryimage","url":"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/bananaagsiCmdnbG9iYWw6OjAwMDA1NWNmZWM3MDAyNmQ6MDAwMDAwZWI6MTo1ZjIyMzE5ODBmZDhlNTE4OjAwMDA1NWNmZWM3MDAyNmQ6MDAwMDAyZWIyODIwMzM2ODowMDA2NTY5ZDg1NDRlZjRmEAIYASIJaW1hZ2UvcG5n.png","contentUrl":"https:\/\/blog.visual-paradigm.com\/wp-content\/uploads\/2026\/07\/bananaagsiCmdnbG9iYWw6OjAwMDA1NWNmZWM3MDAyNmQ6MDAwMDAwZWI6MTo1ZjIyMzE5ODBmZDhlNTE4OjAwMDA1NWNmZWM3MDAyNmQ6MDAwMDAyZWIyODIwMzM2ODowMDA2NTY5ZDg1NDRlZjRmEAIYASIJaW1hZ2UvcG5n.png"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.visual-paradigm.com\/vn\/from-big-picture-to-code-a-beginners-guide-to-visualizing-software-architecture-with-the-c4-model\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.visual-paradigm.com\/vn\/"},{"@type":"ListItem","position":2,"name":"T\u1eeb b\u1ee9c tranh to\u00e0n c\u1ea3nh \u0111\u1ebfn m\u00e3 ngu\u1ed3n: H\u01b0\u1edbng d\u1eabn cho ng\u01b0\u1eddi m\u1edbi b\u1eaft \u0111\u1ea7u v\u1ec1 vi\u1ec7c tr\u1ef1c quan h\u00f3a ki\u1ebfn tr\u00fac ph\u1ea7n m\u1ec1m b\u1eb1ng m\u00f4 h\u00ecnh C4"}]},{"@type":"WebSite","@id":"https:\/\/blog.visual-paradigm.com\/vn\/#website","url":"https:\/\/blog.visual-paradigm.com\/vn\/","name":"Visual Paradigm Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.visual-paradigm.com\/vn\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"vi"},{"@type":"Person","@id":"https:\/\/blog.visual-paradigm.com\/vn\/#\/schema\/person\/a649c442f11a53040710ddec750926c6","name":"Admin","image":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/blog.visual-paradigm.com\/vn\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6b756c36f5e9132f6067fb4d22bef2e3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6b756c36f5e9132f6067fb4d22bef2e3?s=96&d=mm&r=g","caption":"Admin"},"url":"https:\/\/blog.visual-paradigm.com\/vn\/author\/vpadminuser\/"}]}},"modified_by":"Admin","_links":{"self":[{"href":"https:\/\/blog.visual-paradigm.com\/vn\/wp-json\/wp\/v2\/posts\/11712","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.visual-paradigm.com\/vn\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.visual-paradigm.com\/vn\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.visual-paradigm.com\/vn\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.visual-paradigm.com\/vn\/wp-json\/wp\/v2\/comments?post=11712"}],"version-history":[{"count":0,"href":"https:\/\/blog.visual-paradigm.com\/vn\/wp-json\/wp\/v2\/posts\/11712\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.visual-paradigm.com\/vn\/wp-json\/wp\/v2\/media?parent=11712"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.visual-paradigm.com\/vn\/wp-json\/wp\/v2\/categories?post=11712"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.visual-paradigm.com\/vn\/wp-json\/wp\/v2\/tags?post=11712"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}