Welcome to MikeDaDev's Blog – notes on Java, backend & system design.

Explore
MikeDaDev's Blog

All posts

I like to write about stuff I'm into. You'll find a mix of web dev articles, tech news and random thoughts from my life. Use the search below to filter by title.

iterator pattern

Đào sâu Iterator Pattern trong Java: fail-fast hoạt động nhờ biến modCount ra sao, CopyOnWriteArrayList đổi bộ nhớ lấy an toàn thế nào, Spliterator giúp chạy song song ra sao, và cách tự viết cursor iterator để stream hàng triệu bản ghi mà không OOM.

command pattern

Command Pattern nhìn từ góc độ kiến trúc: biến động từ thành danh từ (Objectifying Actions), Undo/Redo dùng hai stack kết hợp Memento, đường tiến hóa sang CQRS (Command Query Responsibility Segregation) và Compensating Transactions trong Saga.

coding convention và chuẩn mực java

Ghi chú về coding convention cho team Java: dùng chuẩn Google, bỏ package-by-layer để chuyển sang Vertical Slice, chặn NullPointer bằng JSpecify & NullAway, và kiểm tra ranh giới kiến trúc tự động trong CI/CD bằng ArchUnit.

strategy pattern

Nhìn Strategy Pattern bằng con mắt Solution Architect: Strategy khác State và Template Method ở đâu, dùng Functional Interface của Java để khỏi đẻ ra cả đống class thừa, và dựng một Dynamic Promotion Engine bằng Spring Boot.

observer pattern

Đi từ Observer Pattern kinh điển tới Event-Driven Architecture (EDA): vì sao java.util.Observable bị deprecate từ Java 9, quản lý transaction với @TransactionalEventListener AFTER_COMMIT, xử lý backpressure trong Reactive Streams và so sánh với Apache Kafka.

facade pattern

Nhìn Facade Pattern bằng con mắt Solution Architect: nó liên quan gì tới Law of Demeter, khác Adapter, Proxy, Decorator ở đâu, và lớn lên thành Anti-Corruption Layer (ACL trong DDD) ra sao khi phải bọc một hệ thống Core Banking legacy.

abstract factory pattern

Abstract Factory Pattern nhìn từ góc độ kiến trúc hệ thống: dùng nó để thoát vendor lock-in khi chạy multi-cloud, dựng lớp trừu tượng cho Blob Storage, Message Queue và Secret Manager trên AWS/GCP, và cái giá phải trả gọi là Lowest Common Denominator.

decorator pattern

Decorator Pattern nhìn từ góc Solution Architect: vì sao kế thừa gây Class Explosion, Decorator thủ công khác gì Spring AOP Proxies (JDK vs CGLIB), bẫy Self-Invocation trong AOP và ví dụ Resilient Caching Decorator kèm những điểm cần lưu ý trước khi đem lên production.

adapter pattern

Adapter Pattern trong Java, từ bản chất OOP tới kiến trúc Lục Giác (Ports and Adapters), cách dựng Anti-Corruption Layer (ACL) để bảo vệ Domain Model trước hệ thống Legacy, và phân biệt Adapter với Facade, Proxy, Decorator.