<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="https://publishpress.com/"
	>

<channel>
	<title>Diagram Archives - Tomoshare</title>
	<atom:link href="https://blog.tomosia.com.vn/tag/diagram/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.tomosia.com.vn/tag/diagram/</link>
	<description>Kênh chia sẻ kiến thức Tomosia Việt Nam</description>
	<lastBuildDate>Wed, 04 Oct 2023 03:50:58 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://blog.tomosia.com.vn/wp-content/uploads/2023/09/cropped-icon-32x32.png</url>
	<title>Diagram Archives - Tomoshare</title>
	<link>https://blog.tomosia.com.vn/tag/diagram/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Vẽ biểu đồ với Mermaid</title>
		<link>https://blog.tomosia.com.vn/ve-bieu-do-voi-mermaid/</link>
					<comments>https://blog.tomosia.com.vn/ve-bieu-do-voi-mermaid/#comments</comments>
		
		<dc:creator><![CDATA[admin_tomosia]]></dc:creator>
		<pubDate>Wed, 04 Oct 2023 03:47:15 +0000</pubDate>
				<category><![CDATA[Chưa phân loại]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Laravel]]></category>
		<category><![CDATA[UML]]></category>
		<category><![CDATA[Diagram]]></category>
		<guid isPermaLink="false">https://blog.tomosia.com.vn/?p=271</guid>

					<description><![CDATA[<p>Chúng ta thường dùng các công cụ để vẽ biểu đồ như Draw.io, Cacoo&#8230; Sau khi biết đến&#8230;</p>
<p>The post <a href="https://blog.tomosia.com.vn/ve-bieu-do-voi-mermaid/">Vẽ biểu đồ với Mermaid</a> appeared first on <a href="https://blog.tomosia.com.vn">Tomoshare</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Chúng ta thường dùng các công cụ để vẽ biểu đồ như Draw.io, Cacoo&#8230; Sau khi biết đến  Mermaid mình đã không còn dùng các công cụ trên nữa.</p>



<p><a href="https://mermaid.js.org/">Mermaid</a> là một thư viện JavaScript cho phép bạn tạo các biểu đồ cực kì dễ dàng, bằng cú pháp đơn giản dựa trên Markdown. Nó hỗ trợ hầu hết các loại biểu đồ: biểu đồ trình tự, biểu đồ lớp, biểu đồ trạng thái, ERD&#8230; Các biểu đồ được tạo bằng cách khai báo mã và văn bản, sau đó được xuất thành biểu đồ, có thể dễ dàng tích hợp biểu đồ vào Github.</p>



<h2 class="wp-block-heading" id="khai-niem-automation-test-la-gi"><span id="sequence-diagrams">Sequence diagrams</span></h2>



<p>Giờ chúng ta sẽ vẽ thử 1 <a href="https://mermaid.js.org/syntax/sequenceDiagram.html" data-type="link" data-id="https://mermaid.js.org/syntax/sequenceDiagram.html">sequence diagram </a>với mermaid. </p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="sequenceDiagram
    Alice-&gt;&gt;John: Hello John, how are you?
    John--&gt;&gt;Alice: Great!
    Alice-)John: See you later!" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">sequenceDiagram</span></span>
<span class="line"><span style="color: #F8F8F2">    Alice</span><span style="color: #FF79C6">-&gt;&gt;</span><span style="color: #F8F8F2">John: Hello John, how are you</span><span style="color: #FF79C6">?</span></span>
<span class="line"><span style="color: #F8F8F2">    John</span><span style="color: #FF79C6">--&gt;&gt;</span><span style="color: #F8F8F2">Alice</span><span style="color: #FF79C6">:</span><span style="color: #F8F8F2"> Great</span><span style="color: #FF79C6">!</span></span>
<span class="line"><span style="color: #F8F8F2">    Alice</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">)John: See you later</span><span style="color: #FF79C6">!</span></span></code></pre></div>



<p>Chỉ cần khai báo như trên mermaid sẽ tự generate ra một biểu đồ luồng</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="675" src="http://blog.tomosia.com.vn/wp-content/uploads/2023/10/sequence-1024x675.png" alt="" class="wp-image-367" srcset="https://blog.tomosia.com.vn/wp-content/uploads/2023/10/sequence-1024x675.png 1024w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/sequence-300x198.png 300w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/sequence-768x506.png 768w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/sequence-380x250.png 380w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/sequence-800x527.png 800w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/sequence.png 1032w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 id="class-diagrams" class="wp-block-heading">Class diagrams</h2>



<p>Vẽ thử một class diagram</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="classDiagram
class BankAccount{
    +String owner
    +BigDecimal balance
    +deposit(amount)
    +withdrawal(amount)
}" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">classDiagram</span></span>
<span class="line"><span style="color: #FF79C6">class</span><span style="color: #F8F8F2"> </span><span style="color: #8BE9FD">BankAccount</span><span style="color: #F8F8F2">{</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #FF79C6">+</span><span style="color: #F8F8F2">String owner</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #FF79C6">+</span><span style="color: #F8F8F2">BigDecimal balance</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #FF79C6">+</span><span style="color: #50FA7B">deposit</span><span style="color: #F8F8F2">(</span><span style="color: #FFB86C; font-style: italic">amount</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #FF79C6">+</span><span style="color: #50FA7B">withdrawal</span><span style="color: #F8F8F2">(</span><span style="color: #FFB86C; font-style: italic">amount</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">}</span></span></code></pre></div>



<p>Output chúng ta nhận được</p>



<figure class="wp-block-image size-full"><img decoding="async" width="574" height="394" src="http://blog.tomosia.com.vn/wp-content/uploads/2023/10/class_diagram.png" alt="" class="wp-image-373" srcset="https://blog.tomosia.com.vn/wp-content/uploads/2023/10/class_diagram.png 574w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/class_diagram-300x206.png 300w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/class_diagram-380x261.png 380w" sizes="(max-width: 574px) 100vw, 574px" /></figure>



<h2 id="entity-relationship-diagram" class="wp-block-heading">Entity Relationship Diagram</h2>



<p>Vẽ một biểu đồ ERD đơn giản, chúng ta có thể khai báo được các trường, kiểu dữ liệu, quan hệ giữa các bảng cực kì đơn giản.</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="erDiagram
    CUSTOMER ||--o{ ORDER : places
    CUSTOMER {
        string name
        string custNumber
        string sector
    }
    ORDER {
        int orderNumber
        string deliveryAddress
    }" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">erDiagram</span></span>
<span class="line"><span style="color: #F8F8F2">    CUSTOMER </span><span style="color: #FF79C6">||--</span><span style="color: #F8F8F2">o{ ORDER : places</span></span>
<span class="line"><span style="color: #F8F8F2">    CUSTOMER {</span></span>
<span class="line"><span style="color: #F8F8F2">        string name</span></span>
<span class="line"><span style="color: #F8F8F2">        string custNumber</span></span>
<span class="line"><span style="color: #F8F8F2">        string sector</span></span>
<span class="line"><span style="color: #F8F8F2">    }</span></span>
<span class="line"><span style="color: #F8F8F2">    ORDER {</span></span>
<span class="line"><span style="color: #F8F8F2">        int orderNumber</span></span>
<span class="line"><span style="color: #F8F8F2">        string deliveryAddress</span></span>
<span class="line"><span style="color: #F8F8F2">    }</span></span></code></pre></div>



<p>Output chúng ta nhận được</p>



<figure class="wp-block-image size-full"><img decoding="async" width="532" height="792" src="http://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-04-at-10.21.57.png" alt="" class="wp-image-378" srcset="https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-04-at-10.21.57.png 532w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-04-at-10.21.57-202x300.png 202w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-04-at-10.21.57-380x566.png 380w" sizes="(max-width: 532px) 100vw, 532px" /></figure>



<h2 class="wp-block-heading" id="state-diagrams"><span id="state-diagram">State diagram<a href="https://mermaid.js.org/syntax/stateDiagram.html#state-diagrams">​</a></span></h2>



<p>Vẽ biểu đồ trạng thái</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="stateDiagram-v2
    [*] --&gt; Still
    Still --&gt; [*]

    Still --&gt; Moving
    Moving --&gt; Still
    Moving --&gt; Crash
    Crash --&gt; [*]" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">stateDiagram</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">v2</span></span>
<span class="line"><span style="color: #F8F8F2">    [</span><span style="color: #FF79C6">*</span><span style="color: #F8F8F2">] </span><span style="color: #FF79C6">--&gt;</span><span style="color: #F8F8F2"> Still</span></span>
<span class="line"><span style="color: #F8F8F2">    Still </span><span style="color: #FF79C6">--&gt;</span><span style="color: #F8F8F2"> [</span><span style="color: #FF79C6">*</span><span style="color: #F8F8F2">]</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">    Still </span><span style="color: #FF79C6">--&gt;</span><span style="color: #F8F8F2"> Moving</span></span>
<span class="line"><span style="color: #F8F8F2">    Moving </span><span style="color: #FF79C6">--&gt;</span><span style="color: #F8F8F2"> Still</span></span>
<span class="line"><span style="color: #F8F8F2">    Moving </span><span style="color: #FF79C6">--&gt;</span><span style="color: #F8F8F2"> Crash</span></span>
<span class="line"><span style="color: #F8F8F2">    Crash </span><span style="color: #FF79C6">--&gt;</span><span style="color: #F8F8F2"> [</span><span style="color: #FF79C6">*</span><span style="color: #F8F8F2">]</span></span></code></pre></div>



<p>Output nhận được</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="634" height="876" src="http://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-04-at-10.32.13.png" alt="" class="wp-image-383" srcset="https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-04-at-10.32.13.png 634w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-04-at-10.32.13-217x300.png 217w, https://blog.tomosia.com.vn/wp-content/uploads/2023/10/Screenshot-2023-10-04-at-10.32.13-380x525.png 380w" sizes="auto, (max-width: 634px) 100vw, 634px" /></figure>



<p>Chúng ta đã tìm hiểu xong 4 loại biểu đồ hay dùng nhất với dev. Ngoài ra Mermaid cũng support rất nhiều loại biểu đồ khác mọi người có thể vào <a href="https://mermaid.js.org/intro/" data-type="link" data-id="https://mermaid.js.org/intro/">mermaid document</a> để tìm hiểu thêm. Document của họ viết rất rõ ràng và có demo cụ thể hết rồi.</p>



<h2 id="tong-ket" class="wp-block-heading">Tổng kết</h2>



<p>Mermaid sẽ giúp chúng ta định nghĩa các biểu đồ cho dự án cực kì dễ ràng, quản lý và hiển thị được các biểu đồ trên github. Nó là công cụ cực kì hữu ích giúp định nghĩa các thiết kế cho dự  án. Thanks for reading&#8230;</p>
<p>The post <a href="https://blog.tomosia.com.vn/ve-bieu-do-voi-mermaid/">Vẽ biểu đồ với Mermaid</a> appeared first on <a href="https://blog.tomosia.com.vn">Tomoshare</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.tomosia.com.vn/ve-bieu-do-voi-mermaid/feed/</wfw:commentRss>
			<slash:comments>25</slash:comments>
		
		
			</item>
	</channel>
</rss>
