How to write a good unit test
A unit test is a type of software testing that focuses on verifying the correctness of individual units of a software system...
31 posts
A unit test is a type of software testing that focuses on verifying the correctness of individual units of a software system...
An in-depth exploration of delayed task scheduling, comparing common approaches such as ScheduledThreadPoolExecutor, timing wheels, and QMQ's delay message implementation.
A step-by-step guide to open-sourcing a Java project and publishing it to Maven Central using Sonatype OSSRH.
A comprehensive guide to Java multithreading, covering thread fundamentals, lifecycle, synchronization, and thread pool design.
An in-depth explanation of Node.js worker threads, how they work internally, and how to use them efficiently for CPU-intensive workloads.
A performance comparison between Spring MVC and Spring WebFlux for IO-intensive workloads, based on real load testing results.
An overview of Apache Kafka, covering its architecture, core components, and internal mechanisms based on Kafka 2.4.
An in-depth overview of Apache RocketMQ, covering its core features, NameServer, Broker, Client internals, and message storage.
A real-world case study of diagnosing and fixing a Gradle build failure caused by dependency conflicts in error_prone_annotations.
An overview of essential OTA (Online Travel Agency) concepts, systems, and booking workflows used in the travel industry.
An introductory guide to Drone CI/CD, explaining its core concepts, Docker-based pipelines, and a practical setup with GitHub.
A comprehensive introduction to Apache Flink, covering big data architectures, stream processing fundamentals, and Flink’s core features.
A practical project retrospective covering system goals, technology choices, performance bottlenecks, and operational lessons.
How to scrape disaster warning data from China Weather Network and parse XML responses using Java and Jackson.
A real-world troubleshooting guide to identifying and fixing abnormal CPU spikes caused by Tomcat hot reload behavior in production.
A real-world incident analysis of slow responses in a WeChat platform, covering concurrency spikes, Tomcat limits, and database bottlenecks.
Practical lessons and management insights gained from real-world system refactoring projects, focusing on data migration, team coordination, and technology choices.
Practical strategies for diagnosing and mitigating OutOfMemoryError problems when exporting large PDFs with JasperReports.
How to introduce Checkstyle into an existing Maven project and validate only newly changed files to avoid massive refactoring.
A practical guide to integrating MyBatis, Druid, and Quartz into a Spring Boot application, including dynamic scheduled jobs and H2-based testing.
Understanding MySQL 5.7 GROUP BY error 1055, ONLY_FULL_GROUP_BY mode, and practical solutions to fix incompatible queries.
A systematic approach to diagnosing and resolving high CPU usage issues in production Java systems, based on real-world experience.
A step-by-step guide to installing Docker and Docker Compose on CentOS and running a MySQL 5.7 container with persistent data and configuration.
A practical introduction to Feign, covering core concepts, usage patterns, and integrations for building clean Java HTTP clients.
A deep dive into the JDK 7 HashMap implementation, explaining capacity calculation, load factor, and resize behavior.
说起JAVA并发编程,就不得不聊聊CAS(Compare And Swap)和AQS了()。 --- > CAS(Compare And Swap),即比较并交换。是解决多线程并行情况下使用锁造成性能损耗的一种机制,CAS操作包含三个操作数——内存位置(V)、预期原值(A)和新值(B)。如果内存位置...
An in-depth explanation of CAS (Compare-And-Swap) and AQS (AbstractQueuedSynchronizer), the foundation of Java concurrent programming.
A detailed comparison of Java's synchronized keyword and the Lock API, explaining their differences, use cases, and best practices.
A step-by-step guide to installing MySQL 5.7 using the no-install ZIP package on Windows when MSI installers are restricted.
How to resolve mixed-content errors caused by Struts2 redirects when applications are deployed behind HTTPS using Nginx.