Clean Architecture có thực sự làm system chậm đi? Performance, complexity và những trade-off thực tế
Phản biện nhận định Clean Architecture mặc định làm system chậm qua ba góc nhìn: performance, development complexity và database usage
Notes, tutorials, and essays on Android, Flutter, iOS, Kotlin, Dart, ASP.NET Core, and the things I learn along the way. Also published on Medium.
Phản biện nhận định Clean Architecture mặc định làm system chậm qua ba góc nhìn: performance, development complexity và database usage
A short DDD practice session on entity identity and lifecycle, with a hands-on .NET exercise and Kotlin comparisons.
Mental model và semantics của flatMapError, recover, recoverWith qua custom Kotlin Result, Scala Try và Haskell MonadError.
Deep dive vào Kotlin ArrayDeque: circular buffer layout, physical vs logical index, capacity growth 1.5x, amortized O(1) analysis, và những trade-off đằng sau một data structure tưởng chừng đơn giản.
Kleisli biểu diễn một effectful function A -> M<B>. Nếu M là Monad, andThen (>=>) cho phép compose các effectful arrows — đây là Kleisli composition, hay còn gọi là Right Fish operator 🐟.
Union types in C# 15 / .NET 11 Preview 2 — syntax, implicit conversions, pattern matching semantics, null checking, and common traps.
Union types trong C# 15 / .NET 11 Preview 2 — bản chất, implicit conversion, union matching, null checking, và những cạm bẫy cần tránh.
Rate limiting không nên đặt ở một tầng duy nhất. Phân tích chiến lược rate limiting tại Nginx (edge), API Gateway (YARP), và service layer trong ASP.NET Core.
Why do @Composable functions in Jetpack Compose usually use `Dp.Unspecified` as default value? Why not use null? The optimization of Jetpack Compose under the hood.
Serially rule trong ReactiveX, tại sao Subject không thread-safe ở phía Observer, và cách RxSwift detect Synchronization anomaly / Reentrancy anomaly.
So sánh groupBy, groupingBy và reduce trong Kotlin — phân tích time complexity, space complexity, và cơ chế lazy evaluation của Grouping.