π§ Java Cheatsheet Blueprint β Folder Layout & Evolution Plan¶
Purpose:
This document defines the long-term structure for organizing Java-related cheatsheets.
It starts simple but scales gracefully as new frameworks and tools appear.
π Planned Folder Layout¶
docs/
ββ cheatsheets/
ββ languages/
ββ java/
ββ index.md
ββ setup/
β ββ jdk-install.md # SDKMAN!, PATH, versions
β ββ project-structure.md # src/main/java, resources, etc.
ββ core/
β ββ syntax.md
β ββ collections.md
β ββ streams.md
β ββ concurrency.md
β ββ records.md
β ββ io-nio.md
ββ build/
β ββ maven/
β β ββ basics.md
β β ββ dependencies.md
β β ββ plugins.md
β β ββ profiles.md
β ββ gradle/
β ββ basics.md
β ββ dependencies.md
β ββ tasks.md
β ββ multi-project.md
ββ testing/
β ββ junit5.md
β ββ mockito.md
β ββ testcontainers.md
ββ frameworks/
β ββ spring/
β β ββ boot/
β β β ββ starters.md
β β β ββ config.md
β β β ββ actuator.md
β β ββ web/
β β β ββ rest-controller.md
β β β ββ validation.md
β β ββ data/
β β β ββ jpa.md
β β β ββ transactions.md
β β ββ security/
β β β ββ basics.md
β β β ββ jwt.md
β β ββ testing.md
β ββ micronaut/
β ββ quarkus/
ββ tooling/
ββ jdk-tools.md
ββ lombok.md
π§ Design Principles¶
1. Clear Separation of Concerns¶
- Core Java concepts live in
core/β language fundamentals. - Frameworks (Spring, Micronaut, Quarkus) live under
frameworks/. Each gets its own namespace. - Build tools (Maven, Gradle) belong to
build/, since theyβre language-tied. - Testing tools (JUnit, Mockito, Testcontainers) share a top-level folder β they cross all projects.
2. Scalable and Future-Proof¶
- Spring starts as the main resident of
frameworks/. - Micronaut and Quarkus get empty placeholders now β ready for future growth.
- If Spring grows large, subdivide it (
boot/,web/,data/,security/,testing/).
3. Flexibility for JVM Ecosystem¶
- If you later add Kotlin or Scala, theyβll live beside Java under
languages/. - Common JVM topics (like Gradle multi-language builds) can move to
docs/concepts/build-systems.mdfor shared knowledge.
π Evolution Notes¶
- Keep the first version simple β start with
core/,setup/, andframeworks/spring/boot/. - As you expand, let structure follow growth, not theory.
- When duplication or overlap emerges between frameworks, extract those notes into:
π‘ Philosophy¶
A good cheatsheet library grows organically, not architecturally.
Structure should reveal what youβve learned β not cage what you havenβt yet.
Build clarity first; hierarchy will follow naturally.