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

Explore
MikeDaDev's Blog

#functional-programming

Things I've written about #functional-programming
  • map vs flatmap

    map và flatMap trong Java nhìn từ gốc là Monadic Bind: flatMap cấp phát bộ nhớ thế nào trong Stream, thay bằng mapMulti (Java 16) để đỡ GC Churn, thenCompose trong CompletableFuture, và cái bẫy mất thứ tự khi dùng flatMap trong Reactive Streams.

  • java functional extends

    JDK chỉ có sẵn Function và BiFunction, tối đa 2 tham số. Bài này tự viết TriFunction tới DecaFunction (3 đến 10 tham số) kèm andThen, ví dụ chạy được, và bàn khi nào nên dùng, khi nào nên gom tham số vào một record.

  • functional interfaces & lambda trong java

    Lambda và Functional Interface chạy thế nào bên trong JVM: vì sao lambda không phải Anonymous Inner Class, invokedynamic và LambdaMetafactory làm gì, tại sao biến phải effectively final, và cách dựng một Policy Engine bằng hàm.

  • java stream API

    Nhìn vào bên trong Java Stream API: pipeline được dựng thế nào, Loop Fusion chạy qua interface Sink ra sao, Stateless khác Stateful operation chỗ nào, và vì sao parallelStream xài chung ForkJoinPool có thể làm treo cả hệ thống.