0% ont trouvé ce document utile (0 vote)
2 vues4 pages

Prerequis Java

Le document présente une liste des compétences essentielles à maîtriser pour un développeur Java moderne, incluant des concepts fondamentaux en informatique, des design patterns, et des architectures logicielles. Il aborde également des technologies clés comme Spring, les API REST, les bases de données SQL, ainsi que des pratiques de tests et de performance. Enfin, il souligne l'importance des outils professionnels et du monitoring dans le développement logiciel moderne.

Transféré par

mika1080p
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
2 vues4 pages

Prerequis Java

Le document présente une liste des compétences essentielles à maîtriser pour un développeur Java moderne, incluant des concepts fondamentaux en informatique, des design patterns, et des architectures logicielles. Il aborde également des technologies clés comme Spring, les API REST, les bases de données SQL, ainsi que des pratiques de tests et de performance. Enfin, il souligne l'importance des outils professionnels et du monitoring dans le développement logiciel moderne.

Transféré par

mika1080p
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

🧠

Fondations indispensables (à maîtriser à 100%)


Informatique & génie logiciel

Algorithmique & structures de données (listes, maps, arbres, complexité Big-O)

Programmation orientée objet (SOLID, encapsulation, héritage, polymorphisme)

👉
Design patterns courants
Singleton, Factory, Builder, Strategy, Observer

👉
Architecture logicielle
MVC, couche service / repository, architecture hexagonale (bonus)

2️⃣ Java moderne (Java 11 → 17)

À maîtriser vraiment, pas juste connaître :

Syntaxe Java moderne (var, records, switch amélioré)

Collections (List, Set, Map) et performances associées

Streams & Lambda

Gestion de la mémoire (GC, heap, stack)

Exceptions (checked vs unchecked)

Multithreading & concurrence (bases)

Maven ou Gradle

👉 Objectif : être capable d’écrire du code propre, lisible et performant.

3️⃣Spring & Spring Boot (cœur du métier)


Spring Core

Injection de dépendances

Annotations (@Component, @Service, @Autowired, etc.)

Cycle de vie des beans

Spring Boot

Configuration ([Link])

Profils (dev, test, prod)

Auto-configuration

Packaging & déploiement

Spring Data JPA

Entités JPA

Relations (OneToMany, ManyToOne, etc.)

Repositories

JPQL / requêtes natives

Pagination & tri


Transactions (@Transactional)

👉 Objectif : créer une API complète et robuste sans magie incomprise.

4️⃣ API REST (incontournable)

Principes REST (GET, POST, PUT, DELETE)

Codes HTTP (200, 201, 400, 401, 403, 404, 500)

DTOs & mapping

Validation (@Valid, @NotNull, etc.)

Gestion des erreurs globales

Sécurité de base (JWT, OAuth2 – bonus)

Outils

Postman / Insomnia : tests d’API

Documentation : Swagger / OpenAPI

5️⃣ Front minimal (mais maîtrisé)

Pas besoin d’être frontend expert, mais :

HTML / CSS / JS

Bases solides

Manipulation du DOM

Requêtes HTTP (fetch)

Bootstrap

Grilles

Composants UI

HTMX

Requêtes AJAX sans JS lourd

Intégration avec Spring MVC

👉 Objectif : construire une UI simple connectée à ton backend.

6️⃣ Bases de données (SQL sérieux)

Modélisation relationnelle

SQL avancé :

JOIN

Index

Transactions

Contraintes
PostgreSQL ou SQL Server

Optimisation de requêtes

Migration de schéma (Flyway / Liquibase – bonus)

7️⃣Tests (très important en senior)


Tests unitaires

JUnit 5

Mockito

Tests de services & repositories

Tests d’intégration

SpringBootTest

Base de données embarquée ou Testcontainers

👉 Objectif : sécuriser le code et éviter les régressions.

8️⃣Performance & montée en charge


Tests de charge (au moins un)

Gatling ou Locust (gros plus)

Comprendre :

Latence

Throughput

Bottlenecks

Optimisation

Index SQL

Cache (Ehcache, Redis – bonus)

Pagination

Pool de connexions

9️⃣ Monitoring & observabilité (profil expérimenté)

Prometheus : métriques

Grafana : dashboards

Logs structurés

Health checks (/actuator/health)

👉 Très apprécié en entreprise moderne.

🔟 Outils professionnels

IntelliJ IDEA (debugger, refactoring, shortcuts)

Git
Branches

Rebase / merge

Pull requests

CI/CD (GitHub Actions, GitLab CI – bonus)

Vous aimerez peut-être aussi