<?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>Clean-code 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/clean-code.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>Clean-code Tag - Viblo</title>
            <link>https://viblo.asia/rss</link>
        </image>
                                <language>vi-vn</language>
        <lastBuildDate>2026-09-14T22:25:28+07:00</lastBuildDate>
                <item>
            <title><![CDATA[Why I stopped using try-catch everywhere (and what I do instead)]]></title>
                        <link>https://viblo.asia/p/why-i-stopped-using-try-catch-everywhere-and-what-i-do-instead-13VM93o8VY7</link>
            <guid isPermaLink="true">https://viblo.asia/p/why-i-stopped-using-try-catch-everywhere-and-what-i-do-instead-13VM93o8VY7</guid>
            <description><![CDATA[]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">EME GUG</dc:creator>
            <pubDate>2026-09-04 14:28:35</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Giảm thiểu if/else trong Java: Khi nào nên dùng Switch, Map và Strategy Pattern?]]></title>
                        <link>https://viblo.asia/p/giam-thieu-ifelse-trong-java-khi-nao-nen-dung-switch-map-va-strategy-pattern-oW4oenrlLml</link>
            <guid isPermaLink="true">https://viblo.asia/p/giam-thieu-ifelse-trong-java-khi-nao-nen-dung-switch-map-va-strategy-pattern-oW4oenrlLml</guid>
            <description><![CDATA[Trong quá trình phát triển Backend Java, chúng ta rất dễ gặp những đoạn code có nhiều if/else:

Ban đầu đoạn code này hoàn toàn bình thường. Tuy nhiên...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">kienit teneighttwo</dc:creator>
            <pubDate>2026-08-18 16:39:13</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Toán tử instanceof là gì? &quot;Chiếc kính lúp&quot; nhận diện kiểu dữ liệu trong lập trình hướng đối tượng]]></title>
                        <link>https://viblo.asia/p/toan-tu-instanceof-la-gi-chiec-kinh-lup-nhan-dien-kieu-du-lieu-trong-lap-trinh-huong-doi-tuong-13VM93nGVY7</link>
            <guid isPermaLink="true">https://viblo.asia/p/toan-tu-instanceof-la-gi-chiec-kinh-lup-nhan-dien-kieu-du-lieu-trong-lap-trinh-huong-doi-tuong-13VM93nGVY7</guid>
            <description><![CDATA[Chào anh em!

Trong quá trình phát triển các ứng dụng Backend theo mô hình Lập trình Hướng đối tượng (OOP như PHP, Java, hay TypeScript), sẽ có những ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-08-03 14:04:38</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Facade Alias trong Laravel là gì? &quot;Phím tắt&quot; thần thánh giúp code gọn gàng mà không cần dùng câu lệnh use]]></title>
                        <link>https://viblo.asia/p/facade-alias-trong-laravel-la-gi-phim-tat-than-thanh-giup-code-gon-gang-ma-khong-can-dung-cau-lenh-use-RlL5eDezLbB</link>
            <guid isPermaLink="true">https://viblo.asia/p/facade-alias-trong-laravel-la-gi-phim-tat-than-thanh-giup-code-gon-gang-ma-khong-can-dung-cau-lenh-use-RlL5eDezLbB</guid>
            <description><![CDATA[Chào anh em!

Trong quá trình phát triển các ứng dụng Backend với Laravel, Facades (như Cache::get(), Route::get(), DB::table()) là một trong những tí...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-08-09 17:38:01</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[ValidationException trong Laravel là gì? Cơ chế xử lý dữ liệu đầu vào và bắt lỗi tự động]]></title>
                        <link>https://viblo.asia/p/validationexception-trong-laravel-la-gi-co-che-xu-ly-du-lieu-dau-vao-va-bat-loi-tu-dong-wlVmRnA045Z</link>
            <guid isPermaLink="true">https://viblo.asia/p/validationexception-trong-laravel-la-gi-co-che-xu-ly-du-lieu-dau-vao-va-bat-loi-tu-dong-wlVmRnA045Z</guid>
            <description><![CDATA[Chào anh em!

Trong quá trình xây dựng các ứng dụng Backend, việc tiếp nhận và kiểm duyệt dữ liệu (Validation) do người dùng hoặc client gửi lên là mộ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-08-10 17:44:21</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Giải mã phương thức Route::is() trong Laravel: Kỹ thuật kiểm tra Route hiện tại thông minh qua Wildcard]]></title>
                        <link>https://viblo.asia/p/giai-ma-phuong-thuc-routeis-trong-laravel-ky-thuat-kiem-tra-route-hien-tai-thong-minh-qua-wildcard-1XVOWYRNVMz</link>
            <guid isPermaLink="true">https://viblo.asia/p/giai-ma-phuong-thuc-routeis-trong-laravel-ky-thuat-kiem-tra-route-hien-tai-thong-minh-qua-wildcard-1XVOWYRNVMz</guid>
            <description><![CDATA[Chào anh em!

Trong quá trình phát triển giao diện (Blade Views) hoặc xử lý middleware trong Laravel, chúng ta thường xuyên vướng phải các bài toán gi...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-31 16:39:25</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Kiểm tra sự tồn tại của hàm trong PHP với function_exists(): &quot;Chiếc khiên&quot; phòng thủ khi viết code đa môi trường]]></title>
                        <link>https://viblo.asia/p/kiem-tra-su-ton-tai-cua-ham-trong-php-voi-function-exists-chiec-khien-phong-thu-khi-viet-code-da-moi-truong-pPLkN6mGJRZ</link>
            <guid isPermaLink="true">https://viblo.asia/p/kiem-tra-su-ton-tai-cua-ham-trong-php-voi-function-exists-chiec-khien-phong-thu-khi-viet-code-da-moi-truong-pPLkN6mGJRZ</guid>
            <description><![CDATA[Chào anh em!

Trong quá trình phát triển các hệ thống PHP phức tạp (như viết các gói thư viện mở rộng, plugin, hoặc làm việc trên nhiều phiên bản PHP ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-31 10:34:01</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Kiểm tra số vô cùng trong PHP với hàm is_infinite(): Tránh bẫy tràn số toán học]]></title>
                        <link>https://viblo.asia/p/kiem-tra-so-vo-cung-trong-php-voi-ham-is-infinite-tranh-bay-tran-so-toan-hoc-bA4685vMLKv</link>
            <guid isPermaLink="true">https://viblo.asia/p/kiem-tra-so-vo-cung-trong-php-voi-ham-is-infinite-tranh-bay-tran-so-toan-hoc-bA4685vMLKv</guid>
            <description><![CDATA[Chào anh em!

Trong quá trình xử lý các bài toán tính toán số học phức tạp trên Backend (như tính toán tài chính quy mô lớn, thống kê dữ liệu khoa học...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-30 09:17:39</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Khám phá go-chi/chi/v5: Router siêu nhẹ, siêu nhanh và chuẩn vị Go cho Backend Developer]]></title>
                        <link>https://viblo.asia/p/kham-pha-go-chichiv5-router-sieu-nhe-sieu-nhanh-va-chuan-vi-go-cho-backend-developer-1QLxnMXq4Aw</link>
            <guid isPermaLink="true">https://viblo.asia/p/kham-pha-go-chichiv5-router-sieu-nhe-sieu-nhanh-va-chuan-vi-go-cho-backend-developer-1QLxnMXq4Aw</guid>
            <description><![CDATA[Chào anh em!

Trong hệ sinh thái lập trình Backend với Golang (Go), ngôn ngữ này nổi tiếng với triết lý tối giản: thư viện chuẩn (Standard Library) đã...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-29 23:58:18</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Giải mã &quot;trái tim&quot; Composer: Bên trong tệp autoload_real.php hoạt động như thế nào?]]></title>
                        <link>https://viblo.asia/p/giai-ma-trai-tim-composer-ben-trong-tep-autoload-realphp-hoat-dong-nhu-the-nao-pPLkN6RGJRZ</link>
            <guid isPermaLink="true">https://viblo.asia/p/giai-ma-trai-tim-composer-ben-trong-tep-autoload-realphp-hoat-dong-nhu-the-nao-pPLkN6RGJRZ</guid>
            <description><![CDATA[Chào anh em!

Khi xây dựng các câu lệnh chạy ngầm (Console Commands) để xử lý một lượng lớn dữ liệu (như import hàng nghìn sản phẩm, đồng bộ đơn hàng ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-29 09:17:04</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Kỹ thuật che thông tin khách hàng (Masking PII): Bảo mật dữ liệu nhạy cảm trong ứng dụng Backend hiện đại]]></title>
                        <link>https://viblo.asia/p/ky-thuat-che-thong-tin-khach-hang-masking-pii-bao-mat-du-lieu-nhay-cam-trong-ung-dung-backend-hien-dai-k74a9ZmZ4eO</link>
            <guid isPermaLink="true">https://viblo.asia/p/ky-thuat-che-thong-tin-khach-hang-masking-pii-bao-mat-du-lieu-nhay-cam-trong-ung-dung-backend-hien-dai-k74a9ZmZ4eO</guid>
            <description><![CDATA[Chào anh em!

Trong kỷ nguyên số hóa và các bộ luật bảo vệ dữ liệu cá nhân (như GDPR hay Nghị định bảo vệ dữ liệu cá nhân tại Việt Nam) ngày càng thắt...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-27 17:09:38</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Bóc tách phương thức getTimezone() trong PHP: Truy xuất &quot;hộ chiếu&quot; không gian của dòng thời gian]]></title>
                        <link>https://viblo.asia/p/boc-tach-phuong-thuc-gettimezone-trong-php-truy-xuat-ho-chieu-khong-gian-cua-dong-thoi-gian-G24B8MKRLz3</link>
            <guid isPermaLink="true">https://viblo.asia/p/boc-tach-phuong-thuc-gettimezone-trong-php-truy-xuat-ho-chieu-khong-gian-cua-dong-thoi-gian-G24B8MKRLz3</guid>
            <description><![CDATA[Chào anh em!

Trong các bài viết trước, chúng ta đã cùng nhau tìm hiểu cách gán múi giờ vào thời gian, tính toán độ lệch giây với getOffset(), và ép t...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-25 22:06:57</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Bóc tách phương thức getTimestamp() trong PHP: Cầu nối hoàn hảo giữa Thời gian thực và Cỗ máy Unix]]></title>
                        <link>https://viblo.asia/p/boc-tach-phuong-thuc-gettimestamp-trong-php-cau-noi-hoan-hao-giua-thoi-gian-thuc-va-co-may-unix-RlL5e53wLbB</link>
            <guid isPermaLink="true">https://viblo.asia/p/boc-tach-phuong-thuc-gettimestamp-trong-php-cau-noi-hoan-hao-giua-thoi-gian-thuc-va-co-may-unix-RlL5e53wLbB</guid>
            <description><![CDATA[Chào anh em!

Tiếp nối series khám phá các "vũ khí" xử lý thời gian trong PHP, hôm nay chúng ta sẽ tìm hiểu về một phương thức đóng vai trò như một th...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-27 00:06:14</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Bóc tách phương thức getOffset() trong PHP: Bắt mạch độ lệch thời gian chuẩn xác đến từng giây]]></title>
                        <link>https://viblo.asia/p/boc-tach-phuong-thuc-getoffset-trong-php-bat-mach-do-lech-thoi-gian-chuan-xac-den-tung-giay-7Z4DEQNwJnX</link>
            <guid isPermaLink="true">https://viblo.asia/p/boc-tach-phuong-thuc-getoffset-trong-php-bat-mach-do-lech-thoi-gian-chuan-xac-den-tung-giay-7Z4DEQNwJnX</guid>
            <description><![CDATA[Chào anh em!

Tiếp tục với series mổ xẻ các phương thức xử lý thời gian trong PHP, hôm nay chúng ta sẽ giải quyết một bài toán rất thực tế khi làm việ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-25 21:57:23</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Tuyệt kỹ tính toán thời gian trong PHP: Phương thức diff() và sức mạnh của DateInterval]]></title>
                        <link>https://viblo.asia/p/tuyet-ky-tinh-toan-thoi-gian-trong-php-phuong-thuc-diff-va-suc-manh-cua-dateinterval-yZJZlE3bVjm</link>
            <guid isPermaLink="true">https://viblo.asia/p/tuyet-ky-tinh-toan-thoi-gian-trong-php-phuong-thuc-diff-va-suc-manh-cua-dateinterval-yZJZlE3bVjm</guid>
            <description><![CDATA[Chào anh em!

Sau khi đã vượt qua những cửa ải khó nhằn như thiết lập múi giờ (DateTimeZone) hay tạo đối tượng thời gian (DateTime), chúng ta lại đối ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-25 21:51:46</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Bóc tách phương thức format() trong PHP: Nghệ thuật &quot;trang điểm&quot; cho dữ liệu ngày tháng]]></title>
                        <link>https://viblo.asia/p/boc-tach-phuong-thuc-format-trong-php-nghe-thuat-trang-diem-cho-du-lieu-ngay-thang-OQJwz9Ad4MP</link>
            <guid isPermaLink="true">https://viblo.asia/p/boc-tach-phuong-thuc-format-trong-php-nghe-thuat-trang-diem-cho-du-lieu-ngay-thang-OQJwz9Ad4MP</guid>
            <description><![CDATA[Chào anh em!

Sau khi đã vượt qua những cửa ải khó nhằn như thiết lập múi giờ (DateTimeZone) hay tạo đối tượng thời gian (DateTime), chúng ta lại đối ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-27 00:06:07</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Làm chủ thời gian trong PHP: &quot;Giải phẫu&quot; Class DateTimeZone và nỗi ám ảnh chênh lệch múi giờ]]></title>
                        <link>https://viblo.asia/p/lam-chu-thoi-gian-trong-php-giai-phau-class-datetimezone-va-noi-am-anh-chenh-lech-mui-gio-oW4oeMmrLml</link>
            <guid isPermaLink="true">https://viblo.asia/p/lam-chu-thoi-gian-trong-php-giai-phau-class-datetimezone-va-noi-am-anh-chenh-lech-mui-gio-oW4oeMmrLml</guid>
            <description><![CDATA[Chào anh em!

Trong lập trình Backend, xử lý ngày tháng (Date/Time) bình thường đã mệt, nhưng đụng đến Múi giờ (Timezone) thì quả thực là một cơn ác m...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-27 00:05:57</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Giải phẫu phpunit.xml: &quot;Phòng điều khiển trung tâm&quot; của mọi dự án Test trong PHP]]></title>
                        <link>https://viblo.asia/p/giai-phau-phpunitxml-phong-dieu-khien-trung-tam-cua-moi-du-an-test-trong-php-K9Vy8vzbLQR</link>
            <guid isPermaLink="true">https://viblo.asia/p/giai-phau-phpunitxml-phong-dieu-khien-trung-tam-cua-moi-du-an-test-trong-php-K9Vy8vzbLQR</guid>
            <description><![CDATA[Chào anh em!

Khi bước chân vào thế giới viết test tự động (Automated Testing) trong PHP (đặc biệt là với Laravel hoặc Symfony), công cụ đầu tiên và q...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-26 09:55:15</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Tự động hóa Clean Code với PHP-CS-Fixer: &quot;Cảnh sát chính tả&quot; cho mọi dự án PHP]]></title>
                        <link>https://viblo.asia/p/tu-dong-hoa-clean-code-voi-php-cs-fixer-canh-sat-chinh-ta-cho-moi-du-an-php-wd43EY7rLX9</link>
            <guid isPermaLink="true">https://viblo.asia/p/tu-dong-hoa-clean-code-voi-php-cs-fixer-canh-sat-chinh-ta-cho-moi-du-an-php-wd43EY7rLX9</guid>
            <description><![CDATA[Chào anh em!

Trong các đội dự án lập trình, có một chủ đề thường xuyên gây ra những cuộc tranh luận nảy lửa (và đôi khi là vô bổ) nhất trong các buổi...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-26 09:55:07</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Nội suy chuỗi (String Interpolation) vs Nối chuỗi (String Concatenation): Đâu là chuẩn mực cho lập trình viên hiện đại?]]></title>
                        <link>https://viblo.asia/p/noi-suy-chuoi-string-interpolation-vs-noi-chuoi-string-concatenation-dau-la-chuan-muc-cho-lap-trinh-vien-hien-dai-QyJKz0R94Me</link>
            <guid isPermaLink="true">https://viblo.asia/p/noi-suy-chuoi-string-interpolation-vs-noi-chuoi-string-concatenation-dau-la-chuan-muc-cho-lap-trinh-vien-hien-dai-QyJKz0R94Me</guid>
            <description><![CDATA[Chào anh em!

Trong quá trình viết code hằng ngày, việc kết hợp các biến dữ liệu vào bên trong một chuỗi văn bản (ví dụ như in ra câu thông báo: "Xin ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-25 16:13:20</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Sức mạnh của hàm report($e) trong Laravel: Ghi log ngoại lệ thông minh mà không làm sập ứng dụng]]></title>
                        <link>https://viblo.asia/p/suc-manh-cua-ham-reporte-trong-laravel-ghi-log-ngoai-le-thong-minh-ma-khong-lam-sap-ung-dung-8X4Ej2PXJN2</link>
            <guid isPermaLink="true">https://viblo.asia/p/suc-manh-cua-ham-reporte-trong-laravel-ghi-log-ngoai-le-thong-minh-ma-khong-lam-sap-ung-dung-8X4Ej2PXJN2</guid>
            <description><![CDATA[Chào anh em!

Trong quá trình viết code xử lý logic ở Controller hay Service, chúng ta luôn phải bọc các đoạn code dễ sinh lỗi bên trong khối try...ca...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-24 15:31:43</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Sự khác nhau kinh điển: Khi nào nên dùng return 0; và khi nào dùng return null;?]]></title>
                        <link>https://viblo.asia/p/su-khac-nhau-kinh-dien-khi-nao-nen-dung-return-0-va-khi-nao-dung-return-null-7Z4DEQYwJnX</link>
            <guid isPermaLink="true">https://viblo.asia/p/su-khac-nhau-kinh-dien-khi-nao-nen-dung-return-0-va-khi-nao-dung-return-null-7Z4DEQYwJnX</guid>
            <description><![CDATA[Chào anh em!

Trong hành trình học lập trình, có những câu lệnh cực kỳ ngắn gọn nhưng lại mang ý nghĩa sống còn đối với logic của toàn bộ chương trình...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-24 14:18:23</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Tuyệt chiêu tối ưu câu lệnh với whereIn: Khi ORM và SQL bắt tay nhau &quot;bóp gọn&quot; điều kiện lọc]]></title>
                        <link>https://viblo.asia/p/tuyet-chieu-toi-uu-cau-lenh-voi-wherein-khi-orm-va-sql-bat-tay-nhau-bop-gon-dieu-kien-loc-OQJwz9nO4MP</link>
            <guid isPermaLink="true">https://viblo.asia/p/tuyet-chieu-toi-uu-cau-lenh-voi-wherein-khi-orm-va-sql-bat-tay-nhau-bop-gon-dieu-kien-loc-OQJwz9nO4MP</guid>
            <description><![CDATA[Chào anh em!

Trong quá trình làm việc với Database, bài toán tìm kiếm hoặc lọc dữ liệu theo một tập hợp các giá trị cho trước là chuyện diễn ra cơm b...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-25 12:39:37</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Tuyệt kỹ viết hàm trong lập trình: Sức mạnh hủy diệt của Pure Function (Hàm thuần túy)]]></title>
                        <link>https://viblo.asia/p/tuyet-ky-viet-ham-trong-lap-trinh-suc-manh-huy-diet-cua-pure-function-ham-thuan-tuy-vbLbjDxpLnk</link>
            <guid isPermaLink="true">https://viblo.asia/p/tuyet-ky-viet-ham-trong-lap-trinh-suc-manh-huy-diet-cua-pure-function-ham-thuan-tuy-vbLbjDxpLnk</guid>
            <description><![CDATA[Chào anh em!

Khi bước chân vào con đường lập trình, ai trong chúng ta cũng được học cách viết một cái hàm (function) từ những ngày đầu tiên. Cứ đưa đ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-23 17:15:14</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[&quot;Bẫy ngầm&quot; trong Code: Sức mạnh hủy diệt của Kỹ thuật sử dụng hằng số (Constants)]]></title>
                        <link>https://viblo.asia/p/bay-ngam-trong-code-suc-manh-huy-diet-cua-ky-thuat-su-dung-hang-so-constants-wd43EYMQLX9</link>
            <guid isPermaLink="true">https://viblo.asia/p/bay-ngam-trong-code-suc-manh-huy-diet-cua-ky-thuat-su-dung-hang-so-constants-wd43EYMQLX9</guid>
            <description><![CDATA[Chào anh em!

Trong quá trình review code của các bạn junior, có một lỗi sai kinh điển mà mình gặp phải hàng tuần, thậm chí hàng tháng trời vẫn không ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-23 16:08:02</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Bắt bug từ trong &quot;trứng nước&quot;: PHPStan - Vệ sĩ thầm lặng nâng tầm mã nguồn PHP]]></title>
                        <link>https://viblo.asia/p/bat-bug-tu-trong-trung-nuoc-phpstan-ve-si-tham-lang-nang-tam-ma-nguon-php-RlL5e5AqLbB</link>
            <guid isPermaLink="true">https://viblo.asia/p/bat-bug-tu-trong-trung-nuoc-phpstan-ve-si-tham-lang-nang-tam-ma-nguon-php-RlL5e5AqLbB</guid>
            <description><![CDATA[Ở bài viết trước, chúng ta đã nhắc đến lệnh php -l như một công cụ kiểm tra cú pháp (Syntax Check) siêu tốc. Lệnh đó rất tuyệt để bắt những lỗi ngớ ng...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-25 16:13:32</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Bắt lỗi Syntax PHP siêu tốc với lệnh php -l: Vũ khí bí mật trước khi Commit]]></title>
                        <link>https://viblo.asia/p/bat-loi-syntax-php-sieu-toc-voi-lenh-php-l-vu-khi-bi-mat-truoc-khi-commit-7Z4DEQD2JnX</link>
            <guid isPermaLink="true">https://viblo.asia/p/bat-loi-syntax-php-sieu-toc-voi-lenh-php-l-vu-khi-bi-mat-truoc-khi-commit-7Z4DEQD2JnX</guid>
            <description><![CDATA[Chào anh em!

Trong cuộc đời làm lập trình viên PHP, chắc hẳn ai cũng đã ít nhất một lần nếm trải cảm giác cay đắng này: Hì hục gõ code, test logic tr...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-25 16:12:50</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Giải mã with() trong Laravel: Hàm helper 3 dòng code nhưng chứa cả một &quot;bầu trời&quot; tinh tế]]></title>
                        <link>https://viblo.asia/p/giai-ma-with-trong-laravel-ham-helper-3-dong-code-nhung-chua-ca-mot-bau-troi-tinh-te-XRJ8RgjqVGq</link>
            <guid isPermaLink="true">https://viblo.asia/p/giai-ma-with-trong-laravel-ham-helper-3-dong-code-nhung-chua-ca-mot-bau-troi-tinh-te-XRJ8RgjqVGq</guid>
            <description><![CDATA[Chào anh em cộng đồng Viblo!

Khi đào sâu vào mã nguồn (source code) của Laravel, bên cạnh những Design Pattern đồ sộ hay những cấu trúc kiến trúc phứ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-22 16:46:21</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Tuyệt kỹ xử lý giao diện trống với data-empty-text: Khi CSS &quot;gánh&quot; còng lưng JavaScript]]></title>
                        <link>https://viblo.asia/p/tuyet-ky-xu-ly-giao-dien-trong-voi-data-empty-text-khi-css-ganh-cong-lung-javascript-13VM9YRmVY7</link>
            <guid isPermaLink="true">https://viblo.asia/p/tuyet-ky-xu-ly-giao-dien-trong-voi-data-empty-text-khi-css-ganh-cong-lung-javascript-13VM9YRmVY7</guid>
            <description><![CDATA[Chào anh em!

Khi xây dựng các ứng dụng Web, chúng ta thường xuyên phải đối mặt với bài toán Empty State (Trạng thái rỗng). Đó là khi người dùng chưa ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-21 21:53:01</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Kế thừa giao diện trong Laravel: Giải ngố @section() và nghệ thuật &quot;lắp ráp&quot; của Blade]]></title>
                        <link>https://viblo.asia/p/ke-thua-giao-dien-trong-laravel-giai-ngo-atsection-va-nghe-thuat-lap-rap-cua-blade-kNLr3r6oVgA</link>
            <guid isPermaLink="true">https://viblo.asia/p/ke-thua-giao-dien-trong-laravel-giai-ngo-atsection-va-nghe-thuat-lap-rap-cua-blade-kNLr3r6oVgA</guid>
            <description><![CDATA[Chào anh em Viblo, lại là mình đây!

Mặc dù anh em chúng ta mang tiếng là dân Backend, chuyên trị API và Database, nhưng chắc chắn khi làm việc với La...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-21 17:39:47</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Str::is() trong Laravel: Khi Regex là quá mức cần thiết cho một dấu &quot;Sao&quot; (*)]]></title>
                        <link>https://viblo.asia/p/stris-trong-laravel-khi-regex-la-qua-muc-can-thiet-cho-mot-dau-sao-pPLkN6qeJRZ</link>
            <guid isPermaLink="true">https://viblo.asia/p/stris-trong-laravel-khi-regex-la-qua-muc-can-thiet-cho-mot-dau-sao-pPLkN6qeJRZ</guid>
            <description><![CDATA[Chào anh em Viblo, lại là mình đây!

Trong quá trình làm backend với hệ sinh thái Laravel, đặc biệt là khi phải cày cuốc với các hệ thống phân tích lo...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-21 17:32:51</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Đọc mã nguồn Laravel: Tại sao lại tồn tại hàm options() trông có vẻ &quot;thừa thãi&quot; này?]]></title>
                        <link>https://viblo.asia/p/doc-ma-nguon-laravel-tai-sao-lai-ton-tai-ham-options-trong-co-ve-thua-thai-nay-Nj4vgnMKJ6r</link>
            <guid isPermaLink="true">https://viblo.asia/p/doc-ma-nguon-laravel-tai-sao-lai-ton-tai-ham-options-trong-co-ve-thua-thai-nay-Nj4vgnMKJ6r</guid>
            <description><![CDATA[Chào anh em cộng đồng Viblo!

Khi rảnh rỗi ngồi "đọc ruột" (source code) của các framework lớn như Laravel, thỉnh thoảng chúng ta sẽ bắt gặp những đoạ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-21 17:29:31</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Bí ẩn đằng sau Request $request: Tại sao Controllers lại luôn cần &quot;anh bạn&quot; này?]]></title>
                        <link>https://viblo.asia/p/bi-an-dang-sau-request-request-tai-sao-controllers-lai-luon-can-anh-ban-nay-ym400PMA491</link>
            <guid isPermaLink="true">https://viblo.asia/p/bi-an-dang-sau-request-request-tai-sao-controllers-lai-luon-can-anh-ban-nay-ym400PMA491</guid>
            <description><![CDATA[Chào anh em Viblo, lại là mình đây!

Nếu anh em đang làm việc với các framework Backend hiện đại, đặc biệt là Laravel, chắc chắn anh em đã quá quen th...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-17 11:38:21</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Series Total TypeScript Thực chiến #1: Tuyệt kỹ typeof và keyof – Bắt Runtime &quot;đẻ&quot; ra Type]]></title>
                        <link>https://viblo.asia/p/series-total-typescript-thuc-chien-1-tuyet-ky-typeof-va-keyof-bat-runtime-de-ra-type-XRJ8RgdOVGq</link>
            <guid isPermaLink="true">https://viblo.asia/p/series-total-typescript-thuc-chien-1-tuyet-ky-typeof-va-keyof-bat-runtime-de-ra-type-XRJ8RgdOVGq</guid>
            <description><![CDATA[1. Nỗi đau của việc "Nhại lại code" (Code Duplication)

Khi xây dựng Backend Node.js, chúng ta thường có những object chứa các hằng số (constants) hoặ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-19 16:31:16</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Dấu ? đặt ở đâu cho đúng? Gỡ rối &quot;nỗi oan&quot; của Nullable Type trong PHP]]></title>
                        <link>https://viblo.asia/p/dau-dat-o-dau-cho-dung-go-roi-noi-oan-cua-nullable-type-trong-php-QyJKz0l94Me</link>
            <guid isPermaLink="true">https://viblo.asia/p/dau-dat-o-dau-cho-dung-go-roi-noi-oan-cua-nullable-type-trong-php-QyJKz0l94Me</guid>
            <description><![CDATA[Chào anh em Viblo, lại là mình đây!

Kể từ khi PHP lột xác từ phiên bản 7.x (và giờ là 8.x), ngôn ngữ này đã dần rũ bỏ cái mác "lỏng lẻo" để hướng tới...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-11 19:02:35</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Series Laravel Email &amp; Mailtrap #4: Tách rời Logic bằng Event &amp; Listener (Trạm cuối)]]></title>
                        <link>https://viblo.asia/p/series-laravel-email-mailtrap-4-tach-roi-logic-bang-event-listener-tram-cuoi-XRJ8RgxqVGq</link>
            <guid isPermaLink="true">https://viblo.asia/p/series-laravel-email-mailtrap-4-tach-roi-logic-bang-event-listener-tram-cuoi-XRJ8RgxqVGq</guid>
            <description><![CDATA[1. Kiến trúc Publish/Subscribe (Pub/Sub)

Trong Laravel, Event là một sự kiện xảy ra trong hệ thống (ví dụ: TicketPurchased - Vé đã được mua). Listene...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-10 23:40:52</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Series Clean Code Thực chiến #5: Nghệ thuật thiết kế Lớp (Classes) – Bản thiết kế hoàn hảo]]></title>
                        <link>https://viblo.asia/p/series-clean-code-thuc-chien-5-nghe-thuat-thiet-ke-lop-classes-ban-thiet-ke-hoan-hao-bA4685K9LKv</link>
            <guid isPermaLink="true">https://viblo.asia/p/series-clean-code-thuc-chien-5-nghe-thuat-thiet-ke-lop-classes-ban-thiet-ke-hoan-hao-bA4685K9LKv</guid>
            <description><![CDATA[1. Cấu trúc chuẩn mực của một Lớp (Quy tắc Tờ báo)

Khi bạn mở một tờ báo ra đọc, tiêu đề ở trên cùng sẽ tóm tắt nội dung, đoạn mở đầu cung cấp ý chín...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-08-05 11:21:12</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Series Clean Code Thực chiến #4: Nghệ thuật Xử lý Lỗi – Đừng để hệ thống &quot;chết đứng&quot;]]></title>
                        <link>https://viblo.asia/p/series-clean-code-thuc-chien-4-nghe-thuat-xu-ly-loi-dung-de-he-thong-chet-dung-ym400PE5491</link>
            <guid isPermaLink="true">https://viblo.asia/p/series-clean-code-thuc-chien-4-nghe-thuat-xu-ly-loi-dung-de-he-thong-chet-dung-ym400PE5491</guid>
            <description><![CDATA[1. Hãy ném Exception (Ngoại lệ), Đừng trả về Mã lỗi (Error Codes)

Trước đây, lập trình viên thường dùng cách trả về một con số (-1, 0) hoặc một mảng ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-10 14:11:29</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Series Clean Code Thực chiến #3: Sự thật phũ phàng về Comment – Khi dòng code &quot;biết nói&quot;]]></title>
                        <link>https://viblo.asia/p/series-clean-code-thuc-chien-3-su-that-phu-phang-ve-comment-khi-dong-code-biet-noi-3RL1B50pVao</link>
            <guid isPermaLink="true">https://viblo.asia/p/series-clean-code-thuc-chien-3-su-that-phu-phang-ve-comment-khi-dong-code-biet-noi-3RL1B50pVao</guid>
            <description><![CDATA[1. Tại sao Comment lại là "Kẻ nói dối"?

Mã nguồn (Code) là sự thật duy nhất, vì máy tính chỉ chạy code. Comment (Bình luận) chỉ là những dòng chữ hiể...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-08-04 13:20:33</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Series Clean Code Thực chiến #2: Nghệ thuật thiết kế Hàm – Nhỏ, Nhỏ nữa, Nhỏ mãi!]]></title>
                        <link>https://viblo.asia/p/series-clean-code-thuc-chien-2-nghe-thuat-thiet-ke-ham-nho-nho-nua-nho-mai-18J2eEla4YK</link>
            <guid isPermaLink="true">https://viblo.asia/p/series-clean-code-thuc-chien-2-nghe-thuat-thiet-ke-ham-nho-nho-nua-nho-mai-18J2eEla4YK</guid>
            <description><![CDATA[1. Nguyên tắc tối thượng: Kích thước phải NHỎ!

Quy tắc đầu tiên khi viết hàm là nó phải nhỏ. Quy tắc thứ hai là nó phải nhỏ hơn nữa.

Một hàm dài 100...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cô Gái IT</dc:creator>
            <pubDate>2026-07-23 14:22:12</pubDate>
                                                                                                        </item>
            </channel>
</rss>
