
		<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
			<channel>
				<title>TungDaDev&#39;s Blog – stories, insights &amp; ideas</title>
				<link>https://tungdadev.com/blog</link>
				<description>A personal space on the cloud where I document my programming journey, sharing lessons, insights and resources for fellow developers.</description>
				<language>en-us</language>
				<managingEditor>bthanhtung.ite@gmail.com (TungDaDev)</managingEditor>
				<webMaster>bthanhtung.ite@gmail.com (TungDaDev)</webMaster>
				<lastBuildDate>Tue, 19 Nov 2024 00:00:00 GMT</lastBuildDate>
				<atom:link href="https://tungdadev.com/tags/software-development/feed.xml" rel="self" type="application/rss+xml"/>
				
		<item>
			<guid>https://tungdadev.com/blog/abstract-pattern</guid>
			<title>abstract factory in java</title>
			<link>https://tungdadev.com/blog/abstract-pattern</link>
			<description>Abstract Factory là một mẫu thiết kế thuộc nhóm khởi tạo (Creational Design Pattern). Nó cung cấp một interface để tạo ra các &quot;gia đình&quot; (families) gồm các object có liên quan hoặc phụ thuộc lẫn nhau, mà không cần phải chỉ định rõ các class cụ thể (concrete classes) của chúng.</description>
			<pubDate>Tue, 19 Nov 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>design-pattern</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/acid</guid>
			<title>acid in sql</title>
			<link>https://tungdadev.com/blog/acid</link>
			<description>Nếu cơ sở dữ liệu SQL là một két sắt, thì ACID (Atomicity, Consistency, Isolation, Durability) chính là cơ chế bảo mật tuyệt đối cho mọi giao dịch của bạn. Tiêu chuẩn &quot;vàng&quot; này đảm bảo rằng dù hệ thống có sập nguồn hay gặp lỗi bất ngờ, các thao tác dữ liệu vẫn luôn được thực thi trọn vẹn (hoặc hoàn tác toàn bộ), giữ cho thông tin luôn nhất quán, an toàn và không bao giờ bị sai lệch.</description>
			<pubDate>Mon, 09 Mar 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>database</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/activiti</guid>
			<title>activiti 8 - bpm engine &amp; workflow orchestration</title>
			<link>https://tungdadev.com/blog/activiti</link>
			<description>Activiti 8 là một engine quản lý quy trình nghiệp vụ (BPM) và tự động hóa luồng công việc (workflow) mã nguồn mở, được thiết kế tối ưu cho các môi trường Cloud-native. Nhờ khả năng thực thi chuẩn BPMN và tích hợp sâu với hệ sinh thái Spring Boot, nền tảng này đóng vai trò như một &quot;nhạc trưởng&quot; điều phối các microservices, đặc biệt đắc lực khi cần quản lý các luồng giao dịch phân tán phức tạp trong kiến trúc Saga Pattern hoặc Event Sourcing.</description>
			<pubDate>Sun, 28 Jun 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>activiti</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/adapter-pattern</guid>
			<title>adapter pattern in java</title>
			<link>https://tungdadev.com/blog/adapter-pattern</link>
			<description>Một trung gian để biến đổi interface của một lớp thành một interface khác mà phía Client (người sử dụng) đang mong đợi. Nhờ đó, các lớp có interface không tương thích vẫn có thể &quot;bắt tay&quot; làm việc cùng nhau mà không cần sửa đổi mã nguồn gốc của chúng.</description>
			<pubDate>Thu, 31 Oct 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>design-pattern</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/ai-agentic</guid>
			<title>ai agentic systems</title>
			<link>https://tungdadev.com/blog/ai-agentic</link>
			<description>... đánh dấu một bước chuyển mình lớn của trí tuệ nhân tạo: từ những chatbot thụ động chỉ biết &quot;hỏi - đáp&quot; sang những &quot;nhân sự số&quot; có khả năng tự hành động để giải quyết các vấn đề phức tạp.</description>
			<pubDate>Fri, 19 Dec 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>ai</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/api-gateway</guid>
			<title>api gateway</title>
			<link>https://tungdadev.com/blog/api-gateway</link>
			<description>API Gateway đóng vai trò là &quot;người gác cổng&quot; và điểm truy cập tập trung duy nhất, đứng giữa ứng dụng khách (client) và hệ thống dịch vụ phía sau (backend/microservices). Nó chịu trách nhiệm tiếp nhận, kiểm soát bảo mật và định tuyến mọi yêu cầu API đến đúng nơi xử lý, giúp đơn giản hóa kiến trúc hệ thống và tối ưu hóa hiệu suất tổng thể.</description>
			<pubDate>Thu, 04 Sep 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>api-gateway</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/apply-semaphores-in-java</guid>
			<title>backpressure using semaphores</title>
			<link>https://tungdadev.com/blog/apply-semaphores-in-java</link>
			<description>Performance is not always about doing things faster. Sometimes, it is about doing things wisely — understanding where your bottlenecks really are and shaping your system around them rather than bulldozing through.</description>
			<pubDate>Thu, 06 Oct 2022 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>virtual-thread</category><category>concurrency</category><category>english</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/aws-s3</guid>
			<title>aws s3 là cái quái gì?</title>
			<link>https://tungdadev.com/blog/aws-s3</link>
			<description>Amazon S3 - một dịch vụ lưu trữ đối tượng của Amazon Web Services (AWS). Nó cung cấp khả năng lưu trữ và truy xuất dữ liệu từ bất kỳ đâu trên web. S3 được thiết kế để cung cấp độ bền cao, khả năng mở rộng linh hoạt và hiệu suất tốt, làm cho nó trở thành một lựa chọn phổ biến cho việc lưu trữ dữ liệu lớn, sao lưu, phục hồi thảm họa và nhiều ứng dụng khác.</description>
			<pubDate>Sat, 29 Nov 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>aws-s3</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/backbase</guid>
			<title>backbase - digital banking platform</title>
			<link>https://tungdadev.com/blog/backbase</link>
			<description>Backbase là một nền tảng ngân hàng số (Engagement Banking Platform) toàn diện, giúp các tổ chức tài chính hiện đại hóa trải nghiệm khách hàng đa kênh mà không cần phải thay thế toàn bộ hệ thống lõi (core banking) cũ. Nền tảng này hoạt động như một lớp tương tác linh hoạt nằm trên các hệ thống hiện tại, cung cấp giải pháp liền mạch cho ngân hàng bán lẻ, doanh nghiệp và quản lý gia sản.</description>
			<pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>backbase</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/bitwise</guid>
			<title>bitwise operations in java</title>
			<link>https://tungdadev.com/blog/bitwise</link>
			<description>Thao tác bit (Bitwise operations) ban đầu có thể trông hơi phức tạp vì chúng ta phải làm việc ở mức &quot;ngôn ngữ máy&quot; (hệ nhị phân) thay vì hệ thập phân quen thuộc. Tuy nhiên, một khi đã nắm được quy luật, bạn sẽ thấy chúng cực kỳ mạnh mẽ, chạy rất nhanh và tiết kiệm bộ nhớ.</description>
			<pubDate>Mon, 30 Jun 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/bpmn</guid>
			<title>bpmn 2.0 - business process model &amp; notation</title>
			<link>https://tungdadev.com/blog/bpmn</link>
			<description>BPMN 2.0 (Business Process Model and Notation) là một tiêu chuẩn quốc tế cung cấp hệ thống ký hiệu đồ họa trực quan để lập bản đồ và thiết kế các quy trình nghiệp vụ của doanh nghiệp. Nó hoạt động như một &quot;ngôn ngữ chung&quot; giúp thu hẹp khoảng cách giao tiếp giữa các nhà phân tích kinh doanh, đội ngũ kỹ thuật (IT) và ban quản trị, đồng thời hỗ trợ chuyển đổi trực tiếp các mô hình này thành luồng công việc thực thi trên các hệ thống phần mềm.</description>
			<pubDate>Sun, 14 Jun 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>bpmn</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/builder-pattern</guid>
			<title>builder pattern in java</title>
			<link>https://tungdadev.com/blog/builder-pattern</link>
			<description>Builder Pattern trong Java là một mẫu thiết kế khởi tạo (creational pattern) giúp giải quyết tình trạng một lớp có quá nhiều hàm tạo chồng chéo (telescoping constructor). Nó cho phép xây dựng các đối tượng phức tạp một cách linh hoạt, từng bước thông qua chuỗi phương thức (method chaining), giúp mã nguồn dễ đọc hơn và hỗ trợ hoàn hảo cho việc tạo các đối tượng bất biến (immutable).</description>
			<pubDate>Thu, 03 Oct 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>design-pattern</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/clean-architecture</guid>
			<title>clean architecture</title>
			<link>https://tungdadev.com/blog/clean-architecture</link>
			<description>là một mẫu kiến trúc phần mềm chia hệ thống thành các vòng tròn đồng tâm với nguyên tắc phụ thuộc nghiêm ngặt: các lớp bên trong (chứa logic nghiệp vụ) tuyệt đối không được phụ thuộc vào các lớp bên ngoài (UI, Database, Framework). Cấu trúc này giúp hệ thống độc lập hoàn toàn với các yếu tố công nghệ bên ngoài, mang lại khả năng kiểm thử, bảo trì và mở rộng linh hoạt.</description>
			<pubDate>Sat, 06 Jun 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>software-development</category><category>system-design</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/command-pattern</guid>
			<title>command pattern in java</title>
			<link>https://tungdadev.com/blog/command-pattern</link>
			<description>Command Pattern trong Java là một mẫu thiết kế hành vi (behavioral pattern) giúp đóng gói toàn bộ một yêu cầu thành một đối tượng độc lập. Việc này cho phép bạn lưu trữ, truyền tham số, xếp hàng đợi (queue) quá trình thực thi, đồng thời hỗ trợ cực tốt cho các tính năng hoàn tác (undo/redo) trong hệ thống.</description>
			<pubDate>Thu, 09 Jan 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>design-pattern</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/cqrs</guid>
			<title>cqrs pattern</title>
			<link>https://tungdadev.com/blog/cqrs</link>
			<description>CQRS là một mẫu kiến trúc phân tách rõ ràng việc xử lý các thao tác đọc dữ liệu (Query) khỏi các thao tác ghi hoặc thay đổi dữ liệu (Command). Việc tách biệt này cho phép tối ưu hóa độc lập về hiệu suất, bảo mật và cơ sở dữ liệu cho từng phía, đặc biệt hiệu quả trong các hệ thống phức tạp có tần suất đọc/ghi chênh lệch lớn.</description>
			<pubDate>Tue, 18 Feb 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>cqrs</category><category>system-design</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/create-new-annotations</guid>
			<title>hướng dẫn tự tạo một annotations</title>
			<link>https://tungdadev.com/blog/create-new-annotations</link>
			<description>Hướng dẫn cách tự tạo cho mình một Annotation để phục vụ mục đích cá nhân.</description>
			<pubDate>Sat, 18 Nov 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/criteria-api-in-hibernate</guid>
			<title>hướng dẫn sử dụng criteria api trong hibernate</title>
			<link>https://tungdadev.com/blog/criteria-api-in-hibernate</link>
			<description>JPA Criteria API cho phép ta tạo ra các câu truy vấn bằng Java</description>
			<pubDate>Thu, 12 Oct 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>criteria</category><category>hibernate</category><category>java</category><category>jpa</category><category>software-development</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/cross-origin-basic</guid>
			<title>cross-origin resource sharing (cors) &amp; cách fix</title>
			<link>https://tungdadev.com/blog/cross-origin-basic</link>
			<description>Khái niệm cross-origin resource sharing (cors), hướng dẫn cách fix lỗi CORS, fix lỗi No &#39;Access-Control-Allow-Origin&#39;</description>
			<pubDate>Thu, 22 Feb 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>frontend</category><category>software-development</category><category>vietnamese</category><category>web</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/decorator-pattern</guid>
			<title>decorator pattern in java</title>
			<link>https://tungdadev.com/blog/decorator-pattern</link>
			<description>Decorator Pattern trong Java là một mẫu thiết kế cấu trúc (structural pattern) cho phép bổ sung linh hoạt các hành vi hoặc tính năng mới cho một đối tượng cụ thể tại thời điểm chạy (runtime) mà không làm thay đổi mã nguồn của lớp ban đầu. Thay vì sử dụng kế thừa (subclassing) cồng kềnh, mẫu này sử dụng các lớp &quot;bọc&quot; (wrapper) để mở rộng chức năng một cách độc lập, giúp mã nguồn dễ bảo trì và mở rộng hơn.</description>
			<pubDate>Thu, 14 Nov 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>design-pattern</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/design-patterns-spring</guid>
			<title>design patterns in spring boot</title>
			<link>https://tungdadev.com/blog/design-patterns-spring</link>
			<description>Design patterns không chỉ là lý thuyết. Bài viết này phân tích cách ứng dụng các mẫu thiết kế kinh điển vào Spring Boot để xây dựng hệ thống mạch lạc, tối giản luồng xử lý và dễ dàng mở rộng.</description>
			<pubDate>Thu, 20 Feb 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>design-pattern</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/digital-signature-in-java</guid>
			<title>chữ ký số trong java</title>
			<link>https://tungdadev.com/blog/digital-signature-in-java</link>
			<description>Chữ ký số (Digital Signature) trong Java (thông qua lớp java.security.Signature) là cơ chế bảo mật dùng để xác thực nguồn gốc và đảm bảo tính toàn vẹn của thông điệp hoặc tài liệu. Nó hoạt động dựa trên mã hóa bất đối xứng: người gửi dùng khóa bí mật (Private Key) để tạo chữ ký, và người nhận dùng khóa công khai (Public Key) tương ứng để xác minh dữ liệu chưa hề bị chỉnh sửa.</description>
			<pubDate>Thu, 13 Jun 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>digital-signature</category><category>java21</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/docker-around</guid>
			<title>một chút với docker</title>
			<link>https://tungdadev.com/blog/docker-around</link>
			<description>Một vài khái niệm và thực hànhh với Docker</description>
			<pubDate>Thu, 03 Apr 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>software-development</category><category>docker</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/facade-pattern</guid>
			<title>facade pattern in java</title>
			<link>https://tungdadev.com/blog/facade-pattern</link>
			<description>Facade Pattern trong Java là một mẫu thiết kế cấu trúc (structural pattern) cung cấp một giao diện đơn giản và thống nhất để giao tiếp với một hệ thống con (subsystem) phức tạp bao gồm nhiều lớp và API. Nó hoạt động như một &quot;mặt tiền&quot; che giấu sự rắc rối bên dưới, giúp ứng dụng khách (client) dễ dàng tương tác, giảm thiểu sự phụ thuộc và tối ưu hóa việc bảo trì hệ thống.</description>
			<pubDate>Thu, 28 Nov 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>design-pattern</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/factory-pattern</guid>
			<title>factory pattern in java</title>
			<link>https://tungdadev.com/blog/factory-pattern</link>
			<description>Factory Pattern trong Java là một mẫu thiết kế khởi tạo (creational pattern) cung cấp một giao diện để tạo ra các đối tượng, nhưng ủy quyền quyết định khởi tạo lớp cụ thể nào cho các lớp con. Mẫu này giúp tách biệt logic khởi tạo phức tạp khỏi ứng dụng khách (client), mang lại sự linh hoạt cao khi cần mở rộng thêm các loại đối tượng mới mà không phải sửa đổi mã nguồn hiện có.</description>
			<pubDate>Thu, 05 Sep 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>design-pattern</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/functional-interfaces-lambda-expressions</guid>
			<title>functional interfaces &amp; lambda expressions</title>
			<link>https://tungdadev.com/blog/functional-interfaces-lambda-expressions</link>
			<description>Giải thích Functional interface trong Java 8 và kỹ thuật lập trình hướng hàm sử dụng Lambda Expressions</description>
			<pubDate>Mon, 18 Mar 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/grpc-v2</guid>
			<title>grpc - toàn tập</title>
			<link>https://tungdadev.com/blog/grpc-v2</link>
			<description>kiến trúc gRPC, sức mạnh của Protobuf &amp; HTTP/2. Hướng dẫn triển khai chuẩn Enterprise với Spring Boot và những kinh nghiệm xương máu khi đưa lên môi trường Production.</description>
			<pubDate>Sun, 08 Feb 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>grpc</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/grpc</guid>
			<title>grpc</title>
			<link>https://tungdadev.com/blog/grpc</link>
			<description>grpc là gì, tại sao google tạo ra nó, cách hoạt động bên trong, so sánh với REST và GraphQL và hướng dẫn xây dựng gRPC service với Java &amp; Spring Boot.</description>
			<pubDate>Thu, 25 Dec 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>grpc</category><category>software-development</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/hibernate</guid>
			<title>hibernate là gì?</title>
			<link>https://tungdadev.com/blog/hibernate</link>
			<description>Hibernate là một thư viện ORM (Object Relational Mapping) mã nguồn mở giúp lập trình viên viết ứng dụng Java có thể map các objects (pojo) với hệ quản trị cơ sở dữ liệu quan hệ</description>
			<pubDate>Wed, 29 Nov 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/http-abstractions</guid>
			<title>http abstractions</title>
			<link>https://tungdadev.com/blog/http-abstractions</link>
			<description>HTTP Abstractions là các giao diện và lớp lập trình (ví dụ: HttpContext, HttpRequest, HttpResponse) đóng gói sự phức tạp của giao thức HTTP thô thành các đối tượng hướng đối tượng dễ quản lý. Sự trừu tượng hóa này giúp ứng dụng độc lập với máy chủ web bên dưới, cho phép xử lý dữ liệu web linh hoạt và hỗ trợ tối đa khả năng kiểm thử (unit test).</description>
			<pubDate>Thu, 07 Mar 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>spring-framework</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/if-else-stop</guid>
			<title>đừng cứ if-else mãi như thế nữa!</title>
			<link>https://tungdadev.com/blog/if-else-stop</link>
			<description>Đừng cứ if-else mãi như thế nữa!</description>
			<pubDate>Thu, 08 Aug 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>optimization</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/iterator-pattern</guid>
			<title>iterator pattern in java</title>
			<link>https://tungdadev.com/blog/iterator-pattern</link>
			<description>Iterator Pattern trong Java là một mẫu thiết kế hành vi (behavioral pattern) cho phép duyệt qua tuần tự các phần tử của một tập hợp (collection) mà không cần phơi bày cấu trúc dữ liệu thực sự bên dưới của nó (như Array hay LinkedList). Mẫu này được tích hợp sẵn qua interface Iterator, cung cấp một cách tiếp cận đồng nhất và an toàn để truy cập dữ liệu, giúp tách biệt logic duyệt vòng lặp khỏi logic nghiệp vụ chính của ứng dụng.</description>
			<pubDate>Thu, 23 Jan 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>design-pattern</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/java-21-feature</guid>
			<title>java 21 feature</title>
			<link>https://tungdadev.com/blog/java-21-feature</link>
			<description>khám phá những tính năng ngôn ngữ đột phá trong Java 17-21.</description>
			<pubDate>Tue, 05 Mar 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/java-25-new-feature</guid>
			<title>new features in java 25</title>
			<link>https://tungdadev.com/blog/java-25-new-feature</link>
			<description>New Features in Java 25</description>
			<pubDate>Thu, 19 Mar 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>java25</category><category>english</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/java-advanced-performance-techniques</guid>
			<title>java advanced performance techniques</title>
			<link>https://tungdadev.com/blog/java-advanced-performance-techniques</link>
			<description>...</description>
			<pubDate>Fri, 29 May 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>optimization</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/java-basic-01</guid>
			<title>giới thiệu java, cài đặt môi trường và hello world~</title>
			<link>https://tungdadev.com/blog/java-basic-01</link>
			<description>Hướng dẫn cài đặt Java và chạy chương trình đầu tiên, cực dễ hiểu</description>
			<pubDate>Mon, 12 Dec 2022 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>java-basic</category><category>software-development</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/java-basic-02</guid>
			<title>biến, phạm vi, kiểu dữ liệu, toán tử trong Java</title>
			<link>https://tungdadev.com/blog/java-basic-02</link>
			<description>Hướng dẫn các bạn sử dụng biến, các kiểu dữ liệu trong java</description>
			<pubDate>Fri, 16 Dec 2022 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>java-basic</category><category>software-development</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/java-basic-03</guid>
			<title>hàm và câu lệnh điều kiện</title>
			<link>https://tungdadev.com/blog/java-basic-03</link>
			<description>Hướng dẫn sử dụng câu lệnh rẽ nhánh, điều kiện if else trong java</description>
			<pubDate>Fri, 30 Dec 2022 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>java-basic</category><category>software-development</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/java-basic-04</guid>
			<title>nhập xuất dữ liệu trong java</title>
			<link>https://tungdadev.com/blog/java-basic-04</link>
			<description>Hướng dẫn cách nhập xuất dữ liệu trong Java và cách sử dụng Class trong Java</description>
			<pubDate>Thu, 05 Jan 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>java-basic</category><category>software-development</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/java-coding-convention</guid>
			<title>Java coding convention</title>
			<link>https://tungdadev.com/blog/java-coding-convention</link>
			<description>Coding convention - backend java theo chuẩn Google &amp; tham khảo best practice</description>
			<pubDate>Tue, 07 Jan 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>coding-convention</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/java-comparison</guid>
			<title>java comparison</title>
			<link>https://tungdadev.com/blog/java-comparison</link>
			<description>...</description>
			<pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/java-concurrency</guid>
			<title>java concurrency</title>
			<link>https://tungdadev.com/blog/java-concurrency</link>
			<description>Bức tranh toàn cảnh về Concurrency trong Java 21 &amp; Spring Boot 3.x: Từ Virtual Threads, ScopedValue đến các pattern xử lý bất đồng bộ trong hệ thống phân tán hiệu năng cao.</description>
			<pubDate>Wed, 20 Mar 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>concurrency</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/java-cracking-interview</guid>
			<title>java cracking interviews</title>
			<link>https://tungdadev.com/blog/java-cracking-interview</link>
			<description>Java Cracking Interviews</description>
			<pubDate>Tue, 15 Apr 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>interview</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/java-functional-extends</guid>
			<title>java functional extends</title>
			<link>https://tungdadev.com/blog/java-functional-extends</link>
			<description>Java Functional extends</description>
			<pubDate>Tue, 11 Mar 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>functional-programming</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/java-high-performance-techniques</guid>
			<title>high-performance java techniques</title>
			<link>https://tungdadev.com/blog/java-high-performance-techniques</link>
			<description>...</description>
			<pubDate>Wed, 20 May 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>optimization</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/java-records</guid>
			<title>java records</title>
			<link>https://tungdadev.com/blog/java-records</link>
			<description>Java Records là một cấu trúc dữ liệu đặc biệt giúp định nghĩa các lớp mang dữ liệu (data carrier) bất biến một cách vô cùng ngắn gọn. Bằng cách sử dụng từ khóa record, trình biên dịch Java sẽ tự động sinh ra hàm tạo (constructor), các phương thức truy xuất, equals(), hashCode() và toString(), giúp loại bỏ triệt để mã lặp lại (boilerplate code) so với POJO truyền thống.</description>
			<pubDate>Sun, 30 Jul 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/java-reflection</guid>
			<title>java reflection</title>
			<link>https://tungdadev.com/blog/java-reflection</link>
			<description>Hướng dẫn chi tiết cách sử dụng Java Reflection, một cách tiếp cận khác và mạnh mẽ.</description>
			<pubDate>Tue, 25 Jul 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/java-stream-api</guid>
			<title>java stream api</title>
			<link>https://tungdadev.com/blog/java-stream-api</link>
			<description>Java Stream API (từ Java 8) là một tính năng mạnh mẽ cho phép xử lý dữ liệu tập hợp (collections, arrays) theo phong cách lập trình hàm (functional programming) một cách khai báo. Thông qua chuỗi các thao tác trung gian và kết thúc (như filter, map, reduce), nó giúp mã nguồn cực kỳ ngắn gọn, dễ đọc và dễ dàng thực thi song song mà không làm thay đổi dữ liệu gốc.</description>
			<pubDate>Fri, 24 Mar 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/java-string-buffer</guid>
			<title>vì sao nên sử dụng StringBuffer</title>
			<link>https://tungdadev.com/blog/java-string-buffer</link>
			<description>Ghép các chuỗi String trong Java tưởng đơn giản, nhưng thực chất có phải vậy?</description>
			<pubDate>Wed, 22 Feb 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/java-string-pool</guid>
			<title>java string pool</title>
			<link>https://tungdadev.com/blog/java-string-pool</link>
			<description>Deep understand about Java String Pool</description>
			<pubDate>Wed, 15 Feb 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>interview</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/java-thread-pool-executor-pool-size-control</guid>
			<title>ThreadPoolExecutor và nguyên tắc quản lý pool size</title>
			<link>https://tungdadev.com/blog/java-thread-pool-executor-pool-size-control</link>
			<description>Hướng dẫn chi tiết cách ThreadPoolExecutor vận hành, cách cấp phát maxPoolSize và corePoolSize</description>
			<pubDate>Sun, 12 Feb 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/java-threadpool-executor-basic</guid>
			<title>threadpool &amp; executor in java</title>
			<link>https://tungdadev.com/blog/java-threadpool-executor-basic</link>
			<description>Hướng dẫn cách sử dụng ThreadPoolExecutor và hiểu cách vận hành của nó.</description>
			<pubDate>Wed, 08 Feb 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/java-virtual-threads</guid>
			<title>java virtual threads</title>
			<link>https://tungdadev.com/blog/java-virtual-threads</link>
			<description>A guide to using Virtual Threads in Java 21</description>
			<pubDate>Sat, 17 Feb 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>virtual-threads</category><category>java21</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/jenkins</guid>
			<title>jenkins</title>
			<link>https://tungdadev.com/blog/jenkins</link>
			<description>Hành trình làm chủ Jenkins: Từ kiến trúc cốt lõi, Pipeline as Code, Shared Libraries đến những Best Practices giúp tối ưu hóa luồng phân phối phần mềm.</description>
			<pubDate>Thu, 12 Jun 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>devops</category><category>software-development</category><category>jenkins</category><category>ci-cd</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/jmeter</guid>
			<title>jmeter</title>
			<link>https://tungdadev.com/blog/jmeter</link>
			<description>Apache JMeter là một phần mềm mã nguồn mở được thiết kế chuyên dụng để kiểm thử hiệu năng (performance testing) và kiểm thử chịu tải (load testing) cho các ứng dụng web, API hoặc cơ sở dữ liệu. Nó hoạt động bằng cách giả lập hàng ngàn người dùng ảo cùng truy cập đồng thời vào hệ thống, giúp đội ngũ phát triển đo lường thời gian phản hồi, phát hiện lỗi và đánh giá giới hạn chịu đựng của máy chủ.</description>
			<pubDate>Sun, 10 Aug 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/kafka-advance</guid>
			<title>kafka advance</title>
			<link>https://tungdadev.com/blog/kafka-advance</link>
			<description>Bài này đi sâu vào những thứ bạn SẼ cần khi hệ thống scale lên: Kafka Connect, Schema Registry, Security, Exactly-Once Semantics, Testing, Kafka trên K8s, và operational best practices.</description>
			<pubDate>Wed, 11 Feb 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>kafka</category><category>software-development</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/kafka-basic</guid>
			<title>kafka basic</title>
			<link>https://tungdadev.com/blog/kafka-basic</link>
			<description>kafka là gì? tại sao dùng kafka thay vì rabbitmq? kiến trúc kafka, cách sử dụng với spring boot, patterns thực tế và checklist production.</description>
			<pubDate>Tue, 27 May 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>kafka</category><category>software-development</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/keycloak-basic</guid>
			<title>keycloak basic</title>
			<link>https://tungdadev.com/blog/keycloak-basic</link>
			<description>Từ nền tảng IAM đến chiến lược kiến trúc Microservices quy mô lớn</description>
			<pubDate>Thu, 16 May 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>keycloak</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/keycloak</guid>
			<title>keycloak new</title>
			<link>https://tungdadev.com/blog/keycloak</link>
			<description>Tối giản hóa bài toán quản lý định danh (IAM), tách bạch Security khỏi Business Logic và hướng dẫn tích hợp với Spring Boot</description>
			<pubDate>Mon, 02 Mar 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>keycloak</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/leetcode-two-sum</guid>
			<title>leetcode - two sum</title>
			<link>https://tungdadev.com/blog/leetcode-two-sum</link>
			<description>Giải bài toán Two Sum (LeetCode)</description>
			<pubDate>Thu, 30 Apr 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>leet-code</category><category>upskill</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/linux-command</guid>
			<title>101+ lệnh linux thường gặp</title>
			<link>https://tungdadev.com/blog/linux-command</link>
			<description>Hơn 101 lệnh Linux thường gặp</description>
			<pubDate>Thu, 20 Mar 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>linux</category><category>software-development</category><category>commands</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/list-arraylist-linkedlist-in-java</guid>
			<title>List, ArrayList &amp; LinkedList trong Java</title>
			<link>https://tungdadev.com/blog/list-arraylist-linkedlist-in-java</link>
			<description>AList trong Java là một interface định nghĩa cấu trúc tập hợp dữ liệu có thứ tự. Hai triển khai phổ biến nhất là ArrayList (sử dụng mảng động, cực nhanh khi truy xuất dữ liệu nhưng chậm khi thêm/xóa) và LinkedList (sử dụng danh sách liên kết kép, tối ưu vượt trội cho việc thêm/xóa phần tử liên tục nhưng truy xuất dữ liệu lại chậm hơn).</description>
			<pubDate>Thu, 21 Dec 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>software-development</category><category>java</category><category>list</category><category>linked-list</category><category>array-list</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/list</guid>
			<title>list in java</title>
			<link>https://tungdadev.com/blog/list</link>
			<description>Hiểu sâu về cơ chế hoạt động dưới low-level của ArrayList, LinkedList, giải mã nghịch lý hiệu suất và những cạm bẫy chí mạng trong lập trình đa luồng.</description>
			<pubDate>Tue, 05 Dec 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/lombok-basic</guid>
			<title>lombok - giúp code java nhanh hơn 69.69%</title>
			<link>https://tungdadev.com/blog/lombok-basic</link>
			<description>Lombok là một thư viện, plugins giúp giảm thiểu các đoạn code thừa (Boilerplate) trong project của bạn.</description>
			<pubDate>Wed, 29 Nov 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>advanced</category><category>java</category><category>lombok</category><category>software-development</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/many-to-many</guid>
			<title>@ManyToMany</title>
			<link>https://tungdadev.com/blog/many-to-many</link>
			<description>Hướng dẫn sử dụng quan hệ @ManyToMany trong jpa/hibernate</description>
			<pubDate>Thu, 24 Aug 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>spring-boot</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/map-vs-flat-map</guid>
			<title>map vs flatMap trong Java — Stream, Optional &amp; CompletableFuture</title>
			<link>https://tungdadev.com/blog/map-vs-flat-map</link>
			<description>...</description>
			<pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/map</guid>
			<title>map in java</title>
			<link>https://tungdadev.com/blog/map</link>
			<description>Đi sâu vào kiến trúc nội tại của Java Map, phân tích chi phí vận hành và cách chọn đúng cấu trúc dữ liệu cho các hệ thống tải cao</description>
			<pubDate>Wed, 20 Dec 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/maven-dependencies</guid>
			<title>maven dependencies</title>
			<link>https://tungdadev.com/blog/maven-dependencies</link>
			<description>Vượt qua Dependency Hell bằng tư duy quản lý tinh gọn. Hướng dẫn về cấu trúc POM, BOM, Dependency Scope, Multi-module và vòng đời Build trong các hệ thống Java.</description>
			<pubDate>Sun, 04 Jan 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>maven</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/mcp</guid>
			<title>model context protocol</title>
			<link>https://tungdadev.com/blog/mcp</link>
			<description>... là một tiêu chuẩn mã nguồn mở giúp các trợ lý AI kết nối trực tiếp và an toàn với các nguồn dữ liệu, API hoặc môi trường phát triển bên ngoài. Nó hoạt động như một giao thức chuẩn hóa chung, cho phép AI nhanh chóng đọc hiểu ngữ cảnh cục bộ của người dùng mà không cần phải xây dựng các trình kết nối tích hợp phức tạp cho từng ứng dụng riêng biệt.</description>
			<pubDate>Thu, 05 Feb 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>ai</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/mdc</guid>
			<title>mdc tracing</title>
			<link>https://tungdadev.com/blog/mdc</link>
			<description>MDC, Distributed Tracing và cách xây dựng một hệ thống Observability.</description>
			<pubDate>Sun, 08 Mar 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/microservice-communicate-pattern</guid>
			<title>microservice communicate pattern</title>
			<link>https://tungdadev.com/blog/microservice-communicate-pattern</link>
			<description>Các pattern giao tiếp, từ Sync/Async đến Resilience và Distributed Tracing</description>
			<pubDate>Sat, 21 Feb 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>microservices</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/mongo</guid>
			<title>mongodb - toàn tập</title>
			<link>https://tungdadev.com/blog/mongo</link>
			<description>Vượt ra khỏi định nghĩa NoSQL thông thường, bài viết này đào sâu vào kiến trúc, mô hình dữ liệu (Embed vs Reference), chiến lược Indexing, và cách tích hợp chuẩn mực MongoDB vào kiến trúc microservices với Spring Boot.</description>
			<pubDate>Mon, 17 Mar 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>mongodb</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/multi-module-springboot</guid>
			<title>multi module spring-boot structure</title>
			<link>https://tungdadev.com/blog/multi-module-springboot</link>
			<description>Xây dựng kiến trúc Multi-Module trong Spring Boot không chỉ là việc chia folder. Bài viết đi sâu vào cách quản lý Bean, tái sử dụng Infrastructure, cô lập JPA và xử lý những &quot;ca khó&quot; với PostgreSQL JDBC.</description>
			<pubDate>Mon, 20 Oct 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>spring-boot</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/multithreading-vs-parallel-stream</guid>
			<title>multithreading vs parallel stream</title>
			<link>https://tungdadev.com/blog/multithreading-vs-parallel-stream</link>
			<description>...</description>
			<pubDate>Wed, 20 May 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/observability-monitoring</guid>
			<title>observability &amp; production monitoring</title>
			<link>https://tungdadev.com/blog/observability-monitoring</link>
			<description>Thiết lập Observability (Logs, Metrics, Traces)</description>
			<pubDate>Sat, 07 Jun 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/observer-pattern</guid>
			<title>observer pattern trong java</title>
			<link>https://tungdadev.com/blog/observer-pattern</link>
			<description>Observer Pattern trong Java là một mẫu thiết kế hành vi (behavioral pattern) tạo ra mối liên kết một-nhiều giữa các đối tượng. Khi đối tượng gốc (Subject) thay đổi trạng thái, toàn bộ các đối tượng đang &quot;đăng ký lắng nghe&quot; (Observer) sẽ tự động được thông báo và cập nhật, đặc biệt hữu ích khi xây dựng các hệ thống phản hồi sự kiện (event-driven) hoặc giao diện người dùng.</description>
			<pubDate>Thu, 12 Dec 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>design-pattern</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/one-to-one-relationship</guid>
			<title>@OneToOne</title>
			<link>https://tungdadev.com/blog/one-to-one-relationship</link>
			<description>Hướng dẫn cách sử dụng Annotation @OneToOne trong Jpa và Hibernate</description>
			<pubDate>Fri, 28 Jul 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>spring-boot</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/onetomany-and-manytoone</guid>
			<title>@OneToMany &amp; @ManyToOne</title>
			<link>https://tungdadev.com/blog/onetomany-and-manytoone</link>
			<description>Hướng dẫn sử dụng quan hệ @OneToMany và @ManyToOne trong jpa/hibernate</description>
			<pubDate>Thu, 10 Aug 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>spring-boot</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/optional</guid>
			<title>java optional</title>
			<link>https://tungdadev.com/blog/optional</link>
			<description>Hướng dẫn sử dụng Optional, cho code của bạn lợi hại hơn.</description>
			<pubDate>Wed, 24 Jan 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>java-8</category><category>software-development</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/oracle-sql-optimize</guid>
			<title>một vài cách tối ưu sql query trong oracle</title>
			<link>https://tungdadev.com/blog/oracle-sql-optimize</link>
			<description>Một vài cách Tối ưu SQL Query trong Oracle</description>
			<pubDate>Wed, 30 Apr 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>software-development</category><category>sql</category><category>oracle</category><category>optimization</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/postgre-sql</guid>
			<title>postgre-sql</title>
			<link>https://tungdadev.com/blog/postgre-sql</link>
			<description>Khám phá PostgreSQL, cơ chế hoạt động của MVCC, WAL, chiến lược đánh Index và những kinh nghiệm tối ưu hiệu năng &quot;xương máu&quot; khi tích hợp cùng Spring Boot.</description>
			<pubDate>Fri, 14 Jun 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>postgresql</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/promethus</guid>
			<title>promethus</title>
			<link>https://tungdadev.com/blog/promethus</link>
			<description>Vượt xa khỏi những con số khô khan, Prometheus là trái tim của hệ sinh thái Observability. Hướng dẫn chuyên sâu về kiến trúc, tư duy thiết kế metrics, và cách tích hợp chuẩn mực với Spring Boot.</description>
			<pubDate>Thu, 10 Jul 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>promethus</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/prototype-pattern</guid>
			<title>prototype pattern in java</title>
			<link>https://tungdadev.com/blog/prototype-pattern</link>
			<description>Prototype Pattern trong Java là một mẫu thiết kế khởi tạo (creational pattern) cho phép tạo ra đối tượng mới bằng cách sao chép (clone) một đối tượng nguyên mẫu đã có sẵn thay vì khởi tạo lại từ đầu (thường dùng từ khóa new). Kỹ thuật này thường được triển khai thông qua interface Cloneable và phương thức clone(), giúp tiết kiệm đáng kể thời gian và tài nguyên khi quá trình tạo mới một đối tượng quá phức tạp hoặc tốn kém.</description>
			<pubDate>Thu, 17 Oct 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>design-pattern</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/rabbit-pattern</guid>
			<title>rabbitmq pattern</title>
			<link>https://tungdadev.com/blog/rabbit-pattern</link>
			<description>các pattern cốt lõi của RabbitMQ trong Spring Boot, cách xử lý fault-tolerance, và chiến lược xây dựng Data Consistency với Outbox &amp; Saga Pattern.</description>
			<pubDate>Thu, 13 Nov 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>rabbitmq</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/rabbitmq</guid>
			<title>rabbitmq</title>
			<link>https://tungdadev.com/blog/rabbitmq</link>
			<description>RabbitMQ là gì? Tại sao nên sử dụng RabbitMQ? Hướng dẫn tích hợp RabbitMQ với Spring Boot.</description>
			<pubDate>Thu, 16 Oct 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>rabbitmq</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/rabbitmq2</guid>
			<title>rabbitmq foundation</title>
			<link>https://tungdadev.com/blog/rabbitmq2</link>
			<description>RabbitMQ là gì? Tại sao nên sử dụng RabbitMQ? Hướng dẫn tích hợp RabbitMQ với Spring Boot.</description>
			<pubDate>Sat, 30 May 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>rabbitmq</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/redis-pattern</guid>
			<title>redis pattern</title>
			<link>https://tungdadev.com/blog/redis-pattern</link>
			<description>Redis không chỉ là bộ nhớ đệm. Khám phá kiến trúc nội tại, chiến lược tối ưu bộ nhớ và các pattern thiết kế phân tán với Redis trong hệ thống Backend.&#39;</description>
			<pubDate>Fri, 15 Aug 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>redis</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/redis</guid>
			<title>redis</title>
			<link>https://tungdadev.com/blog/redis</link>
			<description>Redis không chỉ là bộ nhớ đệm. Khám phá kiến trúc nội tại, chiến lược tối ưu bộ nhớ và các pattern thiết kế phân tán với Redis trong hệ thống Backend.</description>
			<pubDate>Sat, 01 Mar 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>redis</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/saga-pattern</guid>
			<title>saga pattern — distributed transactions trong microservices</title>
			<link>https://tungdadev.com/blog/saga-pattern</link>
			<description>Saga Pattern là giải pháp quản lý giao dịch phân tán trong kiến trúc microservices bằng cách chia một quy trình phức tạp thành chuỗi các giao dịch cục bộ (local transactions). Nếu một bước xử lý gặp lỗi, hệ thống sẽ tự động kích hoạt các giao dịch bù trừ (compensating transactions) để hoàn tác kết quả của các bước trước đó, giúp đảm bảo tính nhất quán dữ liệu (eventual consistency) mà không cần khóa (lock) toàn bộ hệ thống.</description>
			<pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>saga-pattern</category><category>system-design</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/session-cookies-jwt</guid>
			<title>session, cookies &amp; jwt</title>
			<link>https://tungdadev.com/blog/session-cookies-jwt</link>
			<description>Cookies là cơ chế lưu trữ các đoạn dữ liệu nhỏ trực tiếp trên trình duyệt của người dùng. Trong xác thực, Session lưu trạng thái đăng nhập tại máy chủ (server) và dùng Cookie để đối chiếu Session ID, trong khi JWT (JSON Web Token) là giải pháp phi trạng thái (stateless) mang theo toàn bộ dữ liệu người dùng đã được ký điện tử ngay bên trong token, giúp giảm tải bộ nhớ cho hệ thống.</description>
			<pubDate>Thu, 21 Mar 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>session</category><category>cookies</category><category>jwt</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/singleton-pattern</guid>
			<title>singleton pattern in java</title>
			<link>https://tungdadev.com/blog/singleton-pattern</link>
			<description>Singleton Pattern trong Java là một mẫu thiết kế khởi tạo (creational pattern) đảm bảo rằng một lớp chỉ có duy nhất một phiên bản (instance) được tạo ra trong suốt vòng đời của ứng dụng. Nó cung cấp một điểm truy cập toàn cục duy nhất đến phiên bản đó, rất hữu ích trong việc quản lý các tài nguyên chia sẻ như kết nối cơ sở dữ liệu (database connection) hoặc đối tượng cấu hình (configuration).</description>
			<pubDate>Thu, 22 Aug 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>design-pattern</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/slq-rownum</guid>
			<title>rownum in SQL</title>
			<link>https://tungdadev.com/blog/slq-rownum</link>
			<description>The power of rownum in SQL</description>
			<pubDate>Tue, 22 Apr 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>sql</category><category>software-development</category><category>oracle</category><category>database</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/solid-principles</guid>
			<title>solid principles</title>
			<link>https://tungdadev.com/blog/solid-principles</link>
			<description>SOLID là tập hợp 5 nguyên tắc thiết kế hướng đối tượng giúp code dễ đọc, dễ mở rộng, dễ test và dễ bảo trì.</description>
			<pubDate>Fri, 25 Jul 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>solid</category><category>software-development</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/solid</guid>
			<title>solid principles</title>
			<link>https://tungdadev.com/blog/solid</link>
			<description>**SOLID** là tập hợp 5 nguyên tắc thiết kế cốt lõi trong lập trình hướng đối tượng (Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation và Dependency Inversion). Việc áp dụng các nguyên tắc này giúp nhà phát triển xây dựng phần mềm có cấu trúc rõ ràng, giảm thiểu sự phụ thuộc lẫn nhau, từ đó dễ dàng mở rộng, kiểm thử và bảo trì hệ thống trong dài hạn.</description>
			<pubDate>Thu, 11 Jul 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>solid</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/spring-ai-1.1.1</guid>
			<title>Spring AI 1.1.1</title>
			<link>https://tungdadev.com/blog/spring-ai-1.1.1</link>
			<description>Spring AI 1.1.1: chinh phục thế giới Generative AI với bộ kiếm pháp dành cho Java Developer.</description>
			<pubDate>Thu, 22 Jan 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>spring-ai</category><category>optimization</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/spring-application-context</guid>
			<title>ioc container &amp; application context</title>
			<link>https://tungdadev.com/blog/spring-application-context</link>
			<description>IoC Container là lõi trung tâm của Spring Framework, chịu trách nhiệm tự động khởi tạo, gắn kết và quản lý toàn bộ vòng đời của các đối tượng (Beans) thông qua cơ chế Tiêm phụ thuộc (Dependency Injection). Trong khi đó, **Application Context** là phiên bản nâng cao (interface) của IoC Container, không chỉ kế thừa các tính năng cơ bản mà còn cung cấp thêm các dịch vụ cấp doanh nghiệp như xử lý sự kiện, đa ngôn ngữ và tích hợp AOP.</description>
			<pubDate>Sat, 23 Sep 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>spring-framework</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/spring-autowired-4newbie</guid>
			<title>spring autowired</title>
			<link>https://tungdadev.com/blog/spring-autowired-4newbie</link>
			<description>Hướng dẫn lập trình Spring căn bản, cách sử dụng @Autowired, @Component, @Configuration, @Bean</description>
			<pubDate>Tue, 12 Sep 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>software-development</category><category>spring</category><category>spring-boot</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/spring-boot-auto-configuration</guid>
			<title>spring boot auto-configuration</title>
			<link>https://tungdadev.com/blog/spring-boot-auto-configuration</link>
			<description>...</description>
			<pubDate>Fri, 15 Sep 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>spring-boot</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/spring-boot-modules-gradle</guid>
			<title>spring boot với nhiều modules bằng gradle</title>
			<link>https://tungdadev.com/blog/spring-boot-modules-gradle</link>
			<description>Hướng dẫn sử dụng Gradle để tạo một project Spring Boot với nhiều module con.</description>
			<pubDate>Sat, 06 Apr 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>gradle</category><category>java</category><category>software-development</category><category>spring-boot</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/spring-boot-req-lifecycle</guid>
			<title>spring-boot request lifecycle</title>
			<link>https://tungdadev.com/blog/spring-boot-req-lifecycle</link>
			<description>Bóc tách kiến trúc phân tầng của Spring Boot: Từ lúc Servlet Container tiếp nhận request cho đến khi response được trả về.</description>
			<pubDate>Sun, 15 Jun 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>spring-boot</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/spring-data-core-annotations</guid>
			<title>spring data core annotations</title>
			<link>https://tungdadev.com/blog/spring-data-core-annotations</link>
			<description>**Spring Data Core Annotations** (như `@Id`, `@Query`, `@Repository`, `@Transient`) là bộ chú thích cốt lõi giúp ánh xạ các lớp đối tượng Java (Entity) với cấu trúc cơ sở dữ liệu và quản lý các thao tác truy xuất. Chúng giúp loại bỏ các đoạn mã nguyên thủy (boilerplate code), cho phép lập trình viên định nghĩa khóa chính, các mối quan hệ bảng và truy vấn tùy chỉnh một cách trực quan, khai báo và dễ bảo trì.</description>
			<pubDate>Thu, 07 Sep 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>spring-framework</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/spring-data-jpa</guid>
			<title>spring data jpa</title>
			<link>https://tungdadev.com/blog/spring-data-jpa</link>
			<description>Spring Data JPA là một module cốt lõi trong hệ sinh thái Spring Framework, cung cấp một lớp trừu tượng mạnh mẽ nằm trên Java Persistence API (JPA). Thay vì phải viết các đoạn mã lặp lại (boilerplate code) để thao tác với cơ sở dữ liệu, nhà phát triển chỉ cần khai báo các interface (như kế thừa `JpaRepository`), và Spring sẽ tự động cung cấp các triển khai cho thao tác CRUD cơ bản. Tính năng nổi bật nhất của nó là khả năng tự động sinh câu truy vấn SQL dựa trên quy tắc đặt tên phương thức (ví dụ: `findByEmailAndStatus`), đồng thời hỗ trợ phân trang, sắp xếp và kiểm toán (auditing) một cách vô cùng tối ưu.</description>
			<pubDate>Thu, 21 Sep 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>spring-framework</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/spring-dependency-injection</guid>
			<title>dependency injection</title>
			<link>https://tungdadev.com/blog/spring-dependency-injection</link>
			<description>Dependency Injection (DI) là một mẫu thiết kế phần mềm cốt lõi dùng để triển khai nguyên tắc Inversion of Control (IoC). Thay vì một đối tượng phải tự tay khởi tạo các thành phần mà nó phụ thuộc (thường dùng từ khóa `new`), các thành phần (dependency) này sẽ được &quot;tiêm&quot; (inject) từ bên ngoài vào đối tượng đó (thông qua constructor, setter hoặc field) bởi một hệ thống quản lý trung tâm (như Spring Container). Cơ chế này giúp giảm thiểu sự ràng buộc chặt chẽ (loose coupling) giữa các lớp, làm cho mã nguồn linh hoạt, dễ bảo trì và đặc biệt thuận lợi cho việc kiểm thử độc lập (unit test).</description>
			<pubDate>Mon, 09 Sep 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>spring-framework</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/spring-di</guid>
			<title>spring dependency injection</title>
			<link>https://tungdadev.com/blog/spring-di</link>
			<description>Spring Dependency Injection</description>
			<pubDate>Tue, 01 Aug 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>spring-framework</category><category>spring-boot</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/spring-jackson-annotations</guid>
			<title>spring jackson annotations</title>
			<link>https://tungdadev.com/blog/spring-jackson-annotations</link>
			<description>Spring Jackson Annotations là bộ công cụ (thuộc thư viện Jackson được tích hợp mặc định trong Spring Boot) cung cấp quyền kiểm soát chi tiết quá trình chuyển đổi (serialization và deserialization) giữa các đối tượng Java và định dạng JSON. Thông qua các chú thích phổ biến như @JsonProperty (đổi tên trường), @JsonIgnore (bỏ qua dữ liệu nhạy cảm khi trả về), @JsonFormat (định dạng ngày tháng) hay @JsonInclude (lọc các giá trị null), nhà phát triển có thể dễ dàng tùy biến cấu trúc dữ liệu giao tiếp qua API mà không cần can thiệp sâu vào logic mã nguồn.</description>
			<pubDate>Tue, 19 Sep 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>spring-framework</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/spring-jakarta-bean-validation</guid>
			<title>jakarta bean validation &amp; spring validation</title>
			<link>https://tungdadev.com/blog/spring-jakarta-bean-validation</link>
			<description>Jakarta Bean Validation &amp; Spring Validation là bộ đôi công cụ cốt lõi giúp tự động hóa quá trình kiểm tra tính hợp lệ của dữ liệu đầu vào.</description>
			<pubDate>Wed, 25 Oct 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>spring-framework</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/spring-logback-mdc</guid>
			<title>logback &amp; mdc in spring</title>
			<link>https://tungdadev.com/blog/spring-logback-mdc</link>
			<description>A practical deep-dive into building observable microservices — the patterns, pitfalls and production-tested solutions.</description>
			<pubDate>Thu, 25 Jan 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>spring</category><category>logback</category><category>mdc</category><category>software-development</category><category>english</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/spring-profiles</guid>
			<title>hướng dẫn sử dụng spring profiles</title>
			<link>https://tungdadev.com/blog/spring-profiles</link>
			<description>Hướng dẫn sử dụng Spring Profiles quản lý cấu hình ứng dụng trên các môi trường khác nhau</description>
			<pubDate>Wed, 11 Oct 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>spring</category><category>spring-boot</category><category>spring-profiles</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/spring-security-annotations</guid>
			<title>spring security annotations</title>
			<link>https://tungdadev.com/blog/spring-security-annotations</link>
			<description>Spring Security Annotations là các chú thích cốt lõi giúp triển khai cơ chế xác thực (authentication) và phân quyền (authorization) một cách khai báo, thay vì phải viết các đoạn mã logic kiểm tra quyền rườm rà bên trong hàm. Chúng cho phép lập trình viên kiểm soát quyền truy cập linh hoạt ở cả cấp độ cấu hình tổng thể lẫn từng phương thức cụ thể (method-level).</description>
			<pubDate>Wed, 18 Oct 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>spring-framework</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/spring-security-jwt</guid>
			<title>spring security với jwt</title>
			<link>https://tungdadev.com/blog/spring-security-jwt</link>
			<description>Spring Security kết hợp với JWT (JSON Web Token) là tiêu chuẩn kiến trúc phổ biến nhất để bảo mật các RESTful API hiện đại. Sự kết hợp này chuyển đổi cơ chế xác thực của ứng dụng từ trạng thái (stateful - dùng Session/Cookie lưu trên server) sang phi trạng thái (stateless - mọi dữ liệu xác thực nằm gọn trong token), giúp hệ thống dễ dàng mở rộng (scale) và tối ưu tài nguyên bộ nhớ.</description>
			<pubDate>Thu, 02 May 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>spring-boot</category><category>spring-framework</category><category>jwt</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/spring-security</guid>
			<title>spring security</title>
			<link>https://tungdadev.com/blog/spring-security</link>
			<description>Filter Chain, tích hợp OAuth2/JWT và các tiêu chuẩn bảo mật cho hệ thống Production.</description>
			<pubDate>Thu, 04 Apr 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>spring-security</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/spring-test-annotations</guid>
			<title>spring test annotations</title>
			<link>https://tungdadev.com/blog/spring-test-annotations</link>
			<description>Spring Test Annotations là bộ công cụ cung cấp các tính năng mạnh mẽ để viết Unit Test và Integration Test trong hệ sinh thái Spring Boot.</description>
			<pubDate>Wed, 11 Oct 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>spring-framework</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/spring-web-bind-annotations</guid>
			<title>spring web bind annotations</title>
			<link>https://tungdadev.com/blog/spring-web-bind-annotations</link>
			<description>Spring Web Bind Annotations là nhóm các chú thích (annotations) cốt lõi trong Spring MVC và Spring WebFlux. Chúng đóng vai trò là &quot;cầu nối&quot; tự động trích xuất dữ liệu từ các thành phần khác nhau của một HTTP Request (như URL, Body, Headers) và gán (bind) trực tiếp vào các tham số (arguments) trong phương thức của Controller.</description>
			<pubDate>Fri, 01 Sep 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>spring-framework</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/stack-queue</guid>
			<title>stack &amp; queue</title>
			<link>https://tungdadev.com/blog/stack-queue</link>
			<description>Vượt ra khỏi những định nghĩa sách giáo khoa, bài viết này mổ xẻ cách lựa chọn và tối ưu Stack, Queue, Deque trong Java để xây dựng các hệ thống chịu tải cao.</description>
			<pubDate>Sat, 19 Oct 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/stategy-pattern</guid>
			<title>strategy pattern in java</title>
			<link>https://tungdadev.com/blog/stategy-pattern</link>
			<description>Strategy Pattern trong Java là một mẫu thiết kế hành vi (behavioral pattern) cho phép bạn định nghĩa một tập hợp các thuật toán, đóng gói từng thuật toán lại thành các lớp riêng biệt và làm cho chúng có thể hoán đổi cho nhau tại thời điểm chạy (runtime).</description>
			<pubDate>Thu, 26 Dec 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>design-pattern</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/t24</guid>
			<title>T24 - core banking</title>
			<link>https://tungdadev.com/blog/t24</link>
			<description>T24 (Temenos Transact) chính là &quot;bộ não&quot; Core Banking vận hành toàn bộ dòng chảy tài chính bên trong. Sở hữu kiến trúc mô-đun mạnh mẽ và khả năng xử lý thời gian thực, hệ thống này đóng vai trò như hệ xương sống vững chắc cho các nghiệp vụ cốt lõi của hàng nghìn ngân hàng hiện đại.</description>
			<pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/transactional-and-spring-aop</guid>
			<title>@Transactional &amp; spring aop — transaction management &amp; cross-cutting concerns</title>
			<link>https://tungdadev.com/blog/transactional-and-spring-aop</link>
			<description>@Transactional và Spring AOP (Aspect-Oriented Programming) là hai mảnh ghép quan trọng tạo nên cơ chế quản lý giao dịch tự động trong Spring Framework. Sự kết hợp này cho phép bạn tách biệt logic nghiệp vụ (business logic) khỏi các tác vụ kỹ thuật (cross-cutting concerns) như bắt đầu, cam kết (commit) hoặc rollback giao dịch.</description>
			<pubDate>Mon, 18 Sep 2023 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>spring-framework</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/visitor-pattern</guid>
			<title>visitor pattern trong java</title>
			<link>https://tungdadev.com/blog/visitor-pattern</link>
			<description>Visitor Pattern trong Java là một mẫu thiết kế hành vi (behavioral pattern) cho phép bạn tách biệt các thuật toán xử lý khỏi cấu trúc của các đối tượng mà chúng thao tác. Mẫu này cực kỳ mạnh mẽ khi bạn có một cấu trúc dữ liệu cố định (thường là một cây các đối tượng khác nhau) và bạn muốn thực hiện nhiều thao tác khác nhau trên đó mà không cần sửa đổi mã nguồn của các lớp đối tượng đó.</description>
			<pubDate>Thu, 06 Feb 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>design-pattern</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/what-happen-when-call-rest-api-update</guid>
			<title>what happens when you call a rest api update?</title>
			<link>https://tungdadev.com/blog/what-happen-when-call-rest-api-update</link>
			<description>Khi bạn thực hiện một yêu cầu UPDATE (thường thông qua phương thức PUT hoặc PATCH) tới một REST API, một quy trình chuẩn hóa gồm nhiều bước sẽ diễn ra để đảm bảo dữ liệu được cập nhật an toàn và nhất quán.</description>
			<pubDate>Thu, 27 Jun 2024 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>spring-framework</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/why-should-upgrade-java25</guid>
			<title>java 25: should be upgraded?</title>
			<link>https://tungdadev.com/blog/why-should-upgrade-java25</link>
			<description>So sánh Java 21 và Java 25 với POC thực tế: JVM performance, GC, Virtual Threads, AOT, String Templates và cải tiến cloud-native.</description>
			<pubDate>Tue, 02 Dec 2025 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>software-development</category><category>java25</category><category>optimization</category><category>vietnamese</category>
		</item>
	
			</channel>
		</rss>
	