<?xml version="1.0" encoding="UTF-8" ?>
<rss
    version="2.0"
    xmlns:atom="http://www.w3.org/2005/Atom"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:webfeeds="http://webfeeds.org/rss/1.0"
    xmlns:media="http://search.yahoo.com/mrss/"
    >
    <channel>
        <title>Refacore Tag - Viblo</title>
        <link>https://viblo.asia/rss</link>
        <description><![CDATA[Free service for technical knowledge sharing]]></description>
        <atom:link href="https://viblo.asia/rss/tags/refacore.rss" rel="self"></atom:link>
                <copyright>Sun* Inc.</copyright>
                                                <webfeeds:logo>https://viblo.asia/logo_full.svg</webfeeds:logo>
        <image>
            <url>https://viblo.asia/logo_full.svg</url>
            <title>Refacore Tag - Viblo</title>
            <link>https://viblo.asia/rss</link>
        </image>
                                <language>vi-vn</language>
        <lastBuildDate>2026-07-21T08:05:39+07:00</lastBuildDate>
                <item>
            <title><![CDATA[Bắt đầu một dự án Automation Test theo BDD dùng playwright, cucumberjs bằng AI IDE]]></title>
                        <link>https://viblo.asia/p/bat-dau-mot-du-an-automation-test-theo-bdd-dung-playwright-cucumberjs-bang-ai-ide-qPoL7Y864vk</link>
            <guid isPermaLink="true">https://viblo.asia/p/bat-dau-mot-du-an-automation-test-theo-bdd-dung-playwright-cucumberjs-bang-ai-ide-qPoL7Y864vk</guid>
            <description><![CDATA[Kiểm thử tự động hóa và Các trở ngại
- Cần rất nhiều nguồn lực để viết các bài kiểm tra.
- Ít Automation Engineer (AE) không thể bao phủ tất cả các kị...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">refacore</dc:creator>
            <pubDate>2025-04-22 18:41:42</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[ID]]></title>
                        <link>https://viblo.asia/p/id-pgjLNKmWV32</link>
            <guid isPermaLink="true">https://viblo.asia/p/id-pgjLNKmWV32</guid>
            <description><![CDATA[ID đã quen thuộc với chúng ta. Những gì chúng ta khai báo ra thì đều có ID. ID đôi khi không chỉ là dữ liệu chứng minh một thực thể là duy nhất mà còn...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">refacore</dc:creator>
            <pubDate>2025-01-22 15:35:49</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[SOLID - Tổng kết]]></title>
                        <link>https://viblo.asia/p/solid-tong-ket-y37Ldz604ov</link>
            <guid isPermaLink="true">https://viblo.asia/p/solid-tong-ket-y37Ldz604ov</guid>
            <description><![CDATA[Nếu các bạn đã đọc đến đây thì tôi xin gửi lời cảm ơn trước tiên. Những gì tôi viết ra, có những thứ nằm trong kế hoạch, nhưng cũng có những thứ ngẫu ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">refacore</dc:creator>
            <pubDate>2024-11-20 09:36:21</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[SOLID - Dependency Inversion]]></title>
                        <link>https://viblo.asia/p/solid-dependency-inversion-qPoL7kjeLvk</link>
            <guid isPermaLink="true">https://viblo.asia/p/solid-dependency-inversion-qPoL7kjeLvk</guid>
            <description><![CDATA[Đối với nguyên tắc cuối này, nếu các bạn đều đã hiểu các nguyên tắc trước đó thì cũng không còn gì nhiều để nói về nó. Trong Liskov Substitution đã có...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">refacore</dc:creator>
            <pubDate>2024-11-19 14:24:44</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[SOLID - Interface Segregation (P2)]]></title>
                        <link>https://viblo.asia/p/solid-interface-segregation-p2-5pPLky3d4RZ</link>
            <guid isPermaLink="true">https://viblo.asia/p/solid-interface-segregation-p2-5pPLky3d4RZ</guid>
            <description><![CDATA[Bài trước tôi đã đưa ra bàn luận về Interfact Segregration và cũng có nói bài này sẽ bàn luận việc kiến trúc phần mềm hiện tại mài mòn kĩ năng OOP của...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">refacore</dc:creator>
            <pubDate>2024-11-18 11:26:48</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[SOLID - Interface Segregation (P1)]]></title>
                        <link>https://viblo.asia/p/solid-interface-segregation-p1-qPoL7ZA6Jvk</link>
            <guid isPermaLink="true">https://viblo.asia/p/solid-interface-segregation-p1-qPoL7ZA6Jvk</guid>
            <description><![CDATA[Nguyên lý này có một phát biểu rõ ràng nhưng lại mù mờ trong cách hiểu và cách áp dụng. Bạn có đang thực sự áp dụng nguyên lý này trong công việc? Có ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">refacore</dc:creator>
            <pubDate>2024-10-08 15:29:28</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[SOLID - Liskov Substitution]]></title>
                        <link>https://viblo.asia/p/solid-liskov-substitution-5OXLAgE84Gr</link>
            <guid isPermaLink="true">https://viblo.asia/p/solid-liskov-substitution-5OXLAgE84Gr</guid>
            <description><![CDATA[Liskov Substutition là một nguyên tắc khá trừu tượng. Có một vài ví dụ kinh điển như con vịt đồ chơi trong họ nhà vịt, hay hình vuông có thừa kế từ hì...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">refacore</dc:creator>
            <pubDate>2024-10-07 10:47:51</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[SOLID - Đóng/ Mở (P2)]]></title>
                        <link>https://viblo.asia/p/solid-dong-mo-p2-EvbLbBymLnk</link>
            <guid isPermaLink="true">https://viblo.asia/p/solid-dong-mo-p2-EvbLbBymLnk</guid>
            <description><![CDATA[Phần này tôi muốn đưa tới các bạn một ví dụ thực tế về Open/Close, một tình huống cân đo đong đếm giữa Extend hay là Modify. Cùng xem biểu đồ lớp dưới...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">refacore</dc:creator>
            <pubDate>2024-10-02 11:16:20</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[SOLID - Đóng/ Mở (P1)]]></title>
                        <link>https://viblo.asia/p/solid-dong-mo-p1-pgjLN2d1L32</link>
            <guid isPermaLink="true">https://viblo.asia/p/solid-dong-mo-p1-pgjLN2d1L32</guid>
            <description><![CDATA[Tôi có được nghe hai lần câu chuyện ở một công ty lớn ở Việt Nam, một Solution Architect đã từ chối một pull request của đồng nghiệp với lý do các tha...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">refacore</dc:creator>
            <pubDate>2024-07-23 21:00:24</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[SOLID - Đơn nhiệm (P3)]]></title>
                        <link>https://viblo.asia/p/solid-don-nhiem-p3-5OXLAvzrVGr</link>
            <guid isPermaLink="true">https://viblo.asia/p/solid-don-nhiem-p3-5OXLAvzrVGr</guid>
            <description><![CDATA[Trong bài trước, tôi đã đề cập đến nhầm lẫn cơ bản dẫn đến hiểu sai về đơn nhiệm. Trong bài này, tôi muốn đưa ra một cách tiếp cận để giúp chúng ta có...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">refacore</dc:creator>
            <pubDate>2024-07-22 10:18:09</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[SOLID - Đơn nhiệm (P2)]]></title>
                        <link>https://viblo.asia/p/solid-don-nhiem-p2-y37Ld1KMVov</link>
            <guid isPermaLink="true">https://viblo.asia/p/solid-don-nhiem-p2-y37Ld1KMVov</guid>
            <description><![CDATA[Trong bài trước  tôi đã trình bày một vài ví dụ lấy từ mã nguồn của Microsoft về việc vi phạm Đơn nhiệm (và kể cả một số lỗi coding convention thông t...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">refacore</dc:creator>
            <pubDate>2024-06-30 09:58:03</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[SOLID - Đơn Nhiệm (P1)]]></title>
                        <link>https://viblo.asia/p/solid-don-nhiem-p1-5pPLkA7e4RZ</link>
            <guid isPermaLink="true">https://viblo.asia/p/solid-don-nhiem-p1-5pPLkA7e4RZ</guid>
            <description><![CDATA[Bài SOLID là thay đổi đã lướt qua một chút các nguyên tắc trong SOLID. Bài này chúng ta cùng bàn về nguyên tắc đầu tiên Single Responsibility - Đơn Nh...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">refacore</dc:creator>
            <pubDate>2024-06-23 16:09:52</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Ba cách xử lý event]]></title>
                        <link>https://viblo.asia/p/ba-cach-xu-ly-event-Yym40Yd5J91</link>
            <guid isPermaLink="true">https://viblo.asia/p/ba-cach-xu-ly-event-Yym40Yd5J91</guid>
            <description><![CDATA[Repo: https://github.com/refacore/ioc-event

Xử lý sự kiện là kĩ thuật được sử dụng phổ biến. Các nền tảng cung cấp các cách khác nhau để xử lý sự kiệ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">refacore</dc:creator>
            <pubDate>2024-06-21 11:58:48</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[SOLID là thay đổi]]></title>
                        <link>https://viblo.asia/p/solid-la-thay-doi-bXP4WYbdL7G</link>
            <guid isPermaLink="true">https://viblo.asia/p/solid-la-thay-doi-bXP4WYbdL7G</guid>
            <description><![CDATA[Trong bài trước SOLID - Tổng quan, tôi đưa ra quan điểm rằng SOLID không nhằm tạo ra những dòng code bất tử mà nhằm tạo ra những dòng code sẵn sàng th...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">refacore</dc:creator>
            <pubDate>2024-06-19 11:28:15</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[SOLID - Tổng quan]]></title>
                        <link>https://viblo.asia/p/solid-tong-quan-y3RL1PRpJao</link>
            <guid isPermaLink="true">https://viblo.asia/p/solid-tong-quan-y3RL1PRpJao</guid>
            <description><![CDATA[Cách đây khoảng 10 năm, tôi thực sự chật vật khi học và đọc về SOLID hay Design Pattern. Thời đó tôi nghĩ không nhiều lập trình viên hiểu về SOLID hay...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">refacore</dc:creator>
            <pubDate>2024-06-18 22:35:48</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Sử dụng bit và bitwise để xây dựng ứng dụng]]></title>
                        <link>https://viblo.asia/p/su-dung-bit-va-bitwise-de-xay-dung-ung-dung-pgjLN2pjL32</link>
            <guid isPermaLink="true">https://viblo.asia/p/su-dung-bit-va-bitwise-de-xay-dung-ung-dung-pgjLN2pjL32</guid>
            <description><![CDATA[Dùng bitwise là một cách tuyệt vời, cực kì tối ưu cả về tốc độ tính toán lẫn sử dụng bộ nhớ. Nhưng có vẻ không nhiều developer hiện nay biết và ứng dụ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">refacore</dc:creator>
            <pubDate>2024-06-12 16:12:07</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Refactor open-source ERP 1k sao GitHub WebVella - P2]]></title>
                        <link>https://viblo.asia/p/refactor-open-source-erp-1k-sao-github-webvella-p2-7ymJXPMWJkq</link>
            <guid isPermaLink="true">https://viblo.asia/p/refactor-open-source-erp-1k-sao-github-webvella-p2-7ymJXPMWJkq</guid>
            <description><![CDATA[Bài trước mình đã review và refactor một vài hàm trong bộ mã nguồn này. Bài này sẽ chỉ ra một số điểm về kiến trúc để chúng ta cải thiện.

Git: https:...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">refacore</dc:creator>
            <pubDate>2024-05-29 14:54:39</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Kiểu giá trị - Kiểu tham chiếu - Giải thích gốc rễ]]></title>
                        <link>https://viblo.asia/p/kieu-gia-tri-kieu-tham-chieu-giai-thich-goc-re-obA46dKGLKv</link>
            <guid isPermaLink="true">https://viblo.asia/p/kieu-gia-tri-kieu-tham-chieu-giai-thich-goc-re-obA46dKGLKv</guid>
            <description><![CDATA[Nội dung bài viết này đề cập đến kiểu giá trị và kiểu tham chiếu trong C# (và có thể một số ngôn ngữ khác như Java). C# không có kiểu con trỏ và không...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">refacore</dc:creator>
            <pubDate>2024-05-18 19:07:36</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Hành trình của thiết kế phần mềm]]></title>
                        <link>https://viblo.asia/p/hanh-trinh-cua-thiet-ke-phan-mem-r1QLxBAd4Aw</link>
            <guid isPermaLink="true">https://viblo.asia/p/hanh-trinh-cua-thiet-ke-phan-mem-r1QLxBAd4Aw</guid>
            <description><![CDATA[

Trong dự án tôi tham gia trước đây, sau khi tôi đề xuất ứng dụng mô hình n-tiers thay thế cấu trúc cũ, cậu em đồng nghiệp đã hỏi tôi rằng "Dùng n-ti...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">refacore</dc:creator>
            <pubDate>2024-05-03 20:59:34</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Đau đầu vì đặt tên]]></title>
                        <link>https://viblo.asia/p/dau-dau-vi-dat-ten-obA46OdgJKv</link>
            <guid isPermaLink="true">https://viblo.asia/p/dau-dau-vi-dat-ten-obA46OdgJKv</guid>
            <description><![CDATA[Đặt tên luôn là vấn đề tốn nhiều thời gian cũng như nước bọt của dân lập trình. Đôi khi tìm kiếm được một tên tốt cũng khiến chúng ta vui vẻ và thỏa m...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">refacore</dc:creator>
            <pubDate>2024-04-27 16:48:06</pubDate>
                                                                                                        </item>
            </channel>
</rss>
