Modern Java Engineering
Chapitre 20
20 - Ressources
> Outils, blogs, conférences et JEPs pour rester à jour dans l'écosystème Java
Chapitre 20 — Ressources
Outils, blogs, conferences et JEPs pour rester a jour dans l'ecosysteme Java
1. IntelliJ IDEA : Productivite maximale
Raccourcis essentiels
| Action | Raccourci (Windows) | Raccourci (Mac) |
|---|---|---|
| Rechercher partout | Shift + Shift | Shift + Shift |
| Chercher une action | Ctrl + Shift + A | Cmd + Shift + A |
| Naviguer vers une classe | Ctrl + N | Cmd + O |
| Naviguer vers un fichier | Ctrl + Shift + N | Cmd + Shift + O |
| Aller a la declaration | Ctrl + B | Cmd + B |
| Trouver les usages | Alt + F7 | Alt + F7 |
| Renommer partout | Shift + F6 | Shift + F6 |
| Extraire une methode | Ctrl + Alt + M | Cmd + Opt + M |
| Generer (getters, etc.) | Alt + Ins | Cmd + N |
| Correction rapide | Alt + Enter | Opt + Enter |
| Dupliquer une ligne | Ctrl + D | Cmd + D |
| Supprimer une ligne | Ctrl + Y | Cmd + Backspace |
| Reformater le code | Ctrl + Alt + L | Cmd + Opt + L |
| Optimiser les imports | Ctrl + Alt + O | Cmd + Opt + O |
| Multi-curseur | Ctrl + Ctrl + Up/Down | Cmd + Cmd + Up/Down |
| Ouvrir le terminal | Alt + F12 | Opt + F12 |
| Vue structure | Alt + 7 | Cmd + 7 |
| Commit | Ctrl + K | Cmd + K |
Plugins recommandes
- SonarLint — Analyse statique en direct
- Lombok — Support des annotations Lombok
- JRebel — Deploiement a chaud (payant)
- Key Promoter X — Apprend les raccourcis
- GitToolBox — Status Git dans l'editeur
- CheckStyle-IDEA — Validation Google Java Style
- JPA Buddy — Outils JPA/Hibernate visuels
- TestMe — Generation rapide de tests
- Maven Helper — Analyse des dependances
- Rainbow Brackets — Couleurs pour les parentheses
Live Templates utiles
psvm → public static void main(String[] args){}
sout → System.out.println()
soutm → System.out.println("methodName")
soutp → System.out.println("params = " + ...)
serr → System.err.println()
fori → for (int i = 0; i < ; i++) { }
iter → foreach iteration
itli → List iteration
itco → Collection iteration
thr → throw new
Refactoring avance
- Extract Method (Ctrl+Alt+M) — Extrait un bloc en methode
- Extract Variable (Ctrl+Alt+V) — Cree une variable
- Extract Field (Ctrl+Alt+F) — Cree un champ
- Extract Constant (Ctrl+Alt+C) — Cree une constante
- Extract Parameter (Ctrl+Alt+P) — Transforme en parametre
- Inline (Ctrl+Alt+N) — Inverse d'extract
- Change Signature (Ctrl+F6) — Modifie la signature d'une methode
- Move (F6) — Deplace une classe/methode
Inspection de code
- Ctrl+Alt+Shift+I — Inspecter le code
- Analyze > Run Inspection by Name
- Analyze > Code Cleanup
- Analyze > Analyze Stack Trace
2. Baeldung (baeldung.com)
Pourquoi Baeldung ?
- Plus de 2000 tutoriels Java Spring
- Maintenu par une equipe d'experts (Eugen Paraschiv)
- Couvre Java 8 a 21, Spring Boot 3.x, Testing, Security
- Articles regulierement mis a jour
Series incontournables
- "Java 8 to 21" — Nouvelles fonctionnalites
- "Spring Boot Tutorial" — Guide complet
- "JPA/Hibernate Guide" — Mapping, requetes, performance
- "REST with Spring" — API RESTful
- "Testing in Spring Boot" — JUnit 5, Mockito, Testcontainers
- "Security with Spring" — Spring Security, OAuth2, JWT
Cours payants
- REST with Spring (5 etoiles)
- Learn Spring Security
- Learn Spring Data JPA
- Spring Boot 3 Migration
3. Spring Initializr (start.spring.io)
Fonctionnalites
- Generation de projets Spring Boot
- Selection de versions (3.2.x, 3.3.x)
- Choix du langage (Java, Kotlin, Groovy)
- Choix du build tool (Maven, Gradle)
- Selection de starters et dependances
Starters courants
| Starter | Usage |
|---|---|
| spring-boot-starter-web | REST API, Tomcat embarque |
| spring-boot-starter-data-jpa | JPA/Hibernate |
| spring-boot-starter-validation | Bean Validation |
| spring-boot-starter-security | Spring Security |
| spring-boot-starter-test | JUnit 5, Mockito, AssertJ |
| spring-boot-starter-actuator | Monitoring, health checks |
| spring-boot-starter-data-redis | Redis data access |
| spring-boot-starter-cache | Cache abstraction |
| spring-cloud-starter-netflix-eureka-client | Service discovery |
| spring-cloud-starter-openfeign | Feign HTTP client |
Alternatives
- Spring Initializr (official)
- Spring Initializr (custom instance)
- JBoss Forge
- Lazy Initializr
- MicroProfile Starter
- Quarkus Codestarts
- Micronaut Launch
4. DZone (dzone.com)
Zones pertinentes
- Java Zone — Tutoriels, bonnes pratiques, JEPs
- DevOps Zone — CI/CD, Docker, Kubernetes
- Cloud Zone — AWS, GCP, Azure
- Performance Zone — JVM tuning, profiling
Refcardz (cheat sheets)
- "Getting Started with Java"
- "Spring Boot 3"
- "Java Performance Tuning"
- "Microservices with Spring Cloud"
- "Docker for Java Developers"
5. Java Magazine
Description
Magazine officiel Oracle, disponible gratuitement en ligne. Articles techniques rediges par les experts du Java Community Process.
Themes recurrents
- Nouveautes JDK (interviews des specification leads)
- Bonnes pratiques de coding
- Performance et GC tuning
- Architecture microservices
- Security best practices
- Java dans le cloud
Editions notables
- "Java 21: The Next Big Step" — Virtual threads, pattern matching
- "GraalVM: Native Compilation" — Debut 2024
- "Project Loom Deep Dive" — Structured concurrency
- "Building Cloud-Native Java" — Spring Boot + K8s
6. Conferences Java
Devoxx (Europe)
- Devoxx Belgium (Anvers, novembre) — La plus grande conference Java europeenne
- Devoxx France (Paris, avril) — 3000 participants, 100+ talks
- Devoxx UK (Londres, mai)
- Devoxx Morocco (Marrakech)
- Devoxx Poland (Cracovie)
Programme typique :
- Keynotes par les leaders du Java Community
- University (tutorials de 3h)
- Conference (talks de 50min)
- Quickie (talks de 15min)
- Hands-on Labs
- Hackergarten
JavaOne (USA)
- Conference historique Oracle (San Francisco/Montreal)
- Remplacee par Oracle CloudWorld depuis 2022
- Contenu technique Java toujours present
SpringOne (USA/Europe)
- Organise par VMware
- Focus Spring, Cloud Native, Kubernetes
- Annonces des nouveautes Spring
- Sessions techniques et workshops
Autres conferences
| Conference | Lieu | Mois |
|---|---|---|
| JNation | Portugal | Juin |
| Voxxed Days | Multiple | Toute l'annee |
| JBCNConf | Barcelone | Juillet |
| JPrime | Bulgarie | Mai |
| JFall | Pays-Bas | Novembre |
| Devnexus | Atlanta, USA | Mars |
| JavaZone | Oslo | Septembre |
7. JEPs (Java Enhancement Proposals)
Comment suivre les JEPs
JEPs majeures recents
| JEP | Titre | JDK |
|---|---|---|
| 425 | Virtual Threads (Preview) | 19-20 |
| 444 | Virtual Threads (Final) | 21 |
| 440 | Record Patterns (Preview) | 19-20 |
| 441 | Record Patterns (Final) | 21 |
| 443 | Unnamed Patterns & Variables | 21 |
| 445 | String Templates (Preview) | 21 |
| 453 | Structured Concurrency (Preview) | 21 |
| 446 | Scoped Values (Preview) | 21 |
| 454 | Foreign Function & Memory API (Preview) | 22 |
| 456 | Anonymous Classes Improvement | 22 |
| 463 | Implicitly Declared Classes | 22 |
Calendrier de releases
- JDK 21 (Sep 2023) — LTS, virtual threads, pattern matching
- JDK 22 (Mar 2024) — New features, previews
- JDK 23 (Sep 2024) — 12 JEPs incluant Markdown in Javadoc
- JDK 24 (Mar 2025) — Key Encapsulation Mechanism API
- JDK 25 (Sep 2025) — Prochain LTS probable
8. Communautes
Forums
Discord / Slack
Podcasts
- Inside Java (Oracle)
- Java Pub House (Freddy Guime, Bob Paulin)
- The Java Easily Podcast
- A Bootiful Podcast (Josh Long)
- Off Heap (Jake Lee)
Newsletters
- Java Weekly (Baeldung)
- Sivalabs Weekly (Siva Prasad Reddy)
- Dev.java Newsletter (Oracle)
- Spring Tips (Spring.io)
9. Outils de developpement
Build tools
- Maven — standard de facto
- Gradle — plus rapide, Kotlin DSL
- sbt — Scala/Java
Framework tools
- Spring Boot CLI — prototypes rapides
- Spring REST Docs — documentation d'API
- OpenAPI Generator — generation de clients
Analyse de code
- SonarQube — qualite et securite
- Checkstyle — style de code
- PMD — bugs potentiels
- SpotBugs — detection de bugs (successeur de FindBugs)
- ArchUnit — tests d'architecture
- JaCoCo — couverture de code
Profiling / Monitoring
- JMC (JDK Mission Control) + JFR
- Async Profiler
- IntelliJ Profiler
- YourKit
- Grafana + Prometheus + Micrometer
10. Certification
Oracle Java Certifications
| Certification | Examen | Prix |
|---|---|---|
| Oracle Certified Foundations Associate | 1Z0-811 | ~150$ |
| Oracle Certified Professional: Java SE 21 | 1Z0-830 | ~245$ |
| Oracle Certified Professional: Java SE 17 | 1Z0-829 | ~245$ |
Spring Certifications
| Certification | Details |
|---|---|
| Spring Professional 2024 | 90 min, 80 questions, ~250$ |
| Spring WebFlux | Specialisation reactive |
Preparation
- Oracle University
- Spring Certification
- Whizlabs — Mock exams
- Enthuware — Java certification mocks
Conclusion
La cle pour rester competent en Java est la veille technologique continue :
- Quotidien : Baeldung, Reddit, Twitter/X
- Hebdomadaire : Java Weekly, Inside Java
- Mensuel : Java Magazine, articles DZone
- Annuel : Devoxx, JavaOne, SpringOne conferences
- Continu : Suivre les JEPs, tester les previews
Cette combinaison assure de rester a jour avec un ecosysteme qui evolue rapidement tout en conservant une base solide de connaissances fondamentales.