<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Spring-Boot on Khang Nghiem</title><link>https://www.khangnghiem.com/tags/spring-boot/</link><description>Recent content in Spring-Boot on Khang Nghiem</description><generator>Hugo</generator><language>vi</language><lastBuildDate>Wed, 03 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.khangnghiem.com/tags/spring-boot/index.xml" rel="self" type="application/rss+xml"/><item><title>Best Practice khi viết Common Library trong Java</title><link>https://www.khangnghiem.com/post/java-library-best-practices-06-2026/</link><pubDate>Wed, 03 Jun 2026 00:00:00 +0000</pubDate><guid>https://www.khangnghiem.com/post/java-library-best-practices-06-2026/</guid><description>&lt;p&gt;Một internal library sai thiết kế lan rộng nhanh hơn và tồn tại lâu hơn bất kỳ thứ gì khác trong codebase. Khi 20 service phụ thuộc vào nó, thay đổi bất kỳ thứ gì đều đau đớn. Bài này dùng một ví dụ xuyên suốt - một &lt;code&gt;audit-client&lt;/code&gt; library gửi audit event đến central audit service - để giải thích từng quyết định thiết kế từ góc độ: tại sao nó tồn tại, Điều gì xảy ra nếu không có nó, và trade-off cụ thể.&lt;/p&gt;</description></item></channel></rss>