Ce support s’adresse aux développeurs qui souhaitent découvrir les principaux outils de l’environnement de développement intégré Apache NetBeans utiles pour le développement, la maintenance et l’industrialisation d’applications avec le langage Java. Dans chaque chapitre, les notions théoriques essentielles sont expliquées puis mises en pratique grâce à des exemples détaillés et des exercices corrigés.
Les auteurs commencent par décrire la mise en fonctionnement d’Apache NetBeans et de...
Ce support s’adresse aux développeurs qui souhaitent découvrir les principaux outils de l’environnement de développement intégré Apache NetBeans utiles pour le développement, la maintenance et l’industrialisation d’applications avec le langage Java. Dans chaque chapitre, les notions théoriques essentielles sont expliquées puis mises en pratique grâce à des exemples détaillés et des exercices corrigés.
Les auteurs commencent par décrire la mise en fonctionnement d’Apache NetBeans et de l’environnement Java sur un poste de développement, avant de détailler les notions importantes de la programmation orientée objet grâce à la réalisation d’un programme. La prise en main de l’IDE est approfondie grâce à la présentation de fonctionnalités facilitant et accélérant les développements.
Dans la suite du support, le lecteur aborde des connaissances plus poussées lui permettant de développer des applications plus riches. Un cas concret d’utilisation propose une comparaison de deux librairies graphiques, Swing et JavaFX. La notion d’industrialisation d’une application est illustrée avec la présentation en profondeur d’outils comme Git, Maven ou SonarQube, très fréquemment rencontrés dans le milieu professionnel et nécessaires à la mise en place d’une maintenance efficace et pérenne des applications développées avec Java. Un exercice corrigé permet au lecteur de découvrir la technique de développement TDD (Test Driven Development) utilisée pour réaliser des logiciels de qualité.
La conception et l’exploitation de services sont décrites avec le développement de services web de type SOAP et REST, qu’ils soient automatiquement générés grâce aux outils d’Apache NetBeans ou entièrement développés grâce au framework Spring.
Les principaux patrons de conception, Model-View-Controller et Model- View-Presentation, sont également étudiés puis mis en pratique grâce aux outils proposés par Apache NetBeans et aux librairies JSP et JSF utilisées dans le cadre de développement d’applications Java EE.
Pour aller plus loin, les auteurs familiarisent également le lecteur avec le profilage d’applications Java pour mettre en place une analyse en profondeur des performances d’une application Java.
4.1.2 Principe d'indépendance et de transparence des tests
4.1.3 Méthodologie de développement intégrant les tests : BDD et TDD
4.1.4 Exemple de formalisation du test BDD
4.1.5 Différence entre une erreur (error) et un échec (failure)
4.2 Définition d'un test unitaire avec JUnit
4.2.1 Écriture d'un premier test
4.2.2 Exécution des actions systématiques grâce aux annotations
4.2.3 Assertions
4.2.4 Interprétation du résultat des tests
4.2.5 Génération des tests unitaires par NetBeans
5. Analyse de la qualité de code intégrée à l’outil
5.1 Utilisation de l'analyseur de code intégré de NetBeans
5.1.1 Analyse globale
5.1.2 Analyse sur critère unique
5.1.3 Analyse en vue d'une migration
5.2 Couverture des tests
5.2.1 Couverture en lignes et couverture en branches
5.2.2 Configuration et analyse de la couverture de test dans NetBeans
5.2.3 Comparaison avec la couverture de test de JaCoCo - Java Code Coverage
5.3 Intégration de SonarQube
5.3.1 Introduction à SonarQube
5.3.2 Installation d'un serveur SonarQube local
5.3.3 Les sept axes de la qualité selon SonarQube
5.3.4 Installation de SonarLint4Netbeans
5.3.5 Analyse d'un projet grâce au plugin Maven sonar
6. Exercice corrigé : Conception d'un service de lecture de fichiers CSV en approche TDD
6.1 Spécifications de l'exercice
6.1.1 Préparation du projet
6.1.2 Modélisation des données
6.1.3 Désérialisation grâce à la classe CSVReader
6.2 Solution de l'exercice
6.2.1 Préparation du projet
6.2.2 Modélisation des données
6.2.3 Désérialisation grâce à la classe de service CSVReader
6.2.4 Recherche d'amélioration
La conception et l'exploitation de services
1. Introduction
2. Créer une base de données
2.1 Créer une base de données H2
2.2 Initialiser la base de données H2
3. Développer des services REST pour exposer des APIs
3.1 Notion d'API
3.2 Principe KISS
3.3 Veiller à l’aspect Stateless de l’API
3.4 Verbes de la grammaire REST
3.5 Installation d'un serveur d'applications WildFly
3.6 Création d'un projet d'application Web
3.7 Génération d'entités et services REST
3.7.1 À propos des entités et de JPA
3.7.2 Manipulation
3.7.3 Bonnes pratiques de conception
3.8 Configuration et test de services REST
4. Développer des services SOAP
4.1 Créer un projet Spring Boot
4.2 Générer les entités Java
4.3 Créer des objets de transfert de données
4.4 Développer des services Soap
4.5 Définir l'adresse d'un service web
4.6 Exécuter un projet
4.7 Tester des services Soap
5. Exercice corrigé : développer une API REST avec Spring
5.1 Créer un projet Spring Boot
5.2 Créer l'entité Etudiant
5.3 Créer la classe EtudiantDAO
5.4 Créer la classe EtudiantController
5.5 Tester l'API REST
NetBeans, Java et le Web
1. Introduction
2. Présentation de l'architecture Java EE
2.1 Le pattern Modèle - Vue - Contrôleur
2.1.1 Composants de base du Web en Java
2.1.2 MVC, MVC 2 et les frameworks Java
2.2 Le pattern MVP
3. Création d'une interface web avec JSF
3.1 Créer une application web
3.2 Générer les entités Java
3.3 Générer les pages JSF
3.4 Tester l'interface web
3.5 Manipuler la palette JSF de NetBeans
4. Création d'une interface JSP
4.1 Créer une première page JSP
4.2 Développer une application en JSP
4.2.1 Les balises
4.2.2 Les directives
4.2.3 Le développement d’une page JSP
4.2.4 Le développement d’une servlet
4.2.5 Le développement du JavaScript
5. Exercice corrigé : développement d’une application web JSF
5.1 Créer une application Web
5.2 Créer l'entité Etudiant
5.3 Créer la classe EtudiantDAO
5.4 Créer la classe EtudiantPresenter
5.5 Créer les pages JSF
5.6 Tester l'application JSF
5.7 Aller plus loin
Le profilage d'applications Java
1. Introduction
2. Avant de commencer : les grands principes de fonctionnement de la JVM
2.1 Gestion automatique de la mémoire
2.1.1 Les grandes zones mémoire de la JVM
2.1.2 Les mécanismes de recyclage : garbage collector
2.2 Aspect multithread
3. Premier profilage d'une application avec NetBeans
3.1 Déclenchement et configuration du premier profilage
3.1.1 Lancement et calibration
3.1.2 Choix des métriques
3.1.3 Télémétrie globale de l'application
3.2 Techniques de relevés pour le profilage
3.2.1 Le sampling
3.2.2 L'observation continue
4. Analyses possibles relatives à la mémoire
4.1 Analyse globale de la mémoire
4.1.1 Observation et interprétation du comportement de la mémoire
4.1.2 Observation de la mémoire dans un cas de mauvaise conception
4.2 Analyse des instances en cours d'exécution
4.2.1 Observation des instances en mode sampling
4.2.2 Observation continue des instances en cours d'exécution
4.2.3 Avantages et limites de l'observation de la mémoire en cours d'exécution
4.3 Analyses de la mémoire à froid
4.3.1 Réalisation d'un dump et découverte du HeapWalker
4.3.2 Comparaison de dumps
4.3.3 Console OQL
5. Analyses possibles relatives à l'utilisation du processeur
6. Autres possibilités du profileur de NetBeans
Index
Romain LEMOUNEAU
Romain LEMOUNEAU a travaillé pendant plus de 7 ans dans le développement de logiciels, d’abord en tant que développeur, puis en tant que leader technique. Ses expériences lui ont permis de mettre en oeuvre des technologies Java et client-serveur dans le but de développer et maintenir des applications de gestion.
Thomas Broussard a travaillé pendant plus de 9 ans en Recherche et Développement, d'abord en tant que développeur, puis en tant que coordinateur technique et enfin responsable de l'innovation. Ses expériences lui ont permis de mettre en œuvre tout le panel des technologies Java dans le but de créer des produits innovants. Fort de ces expériences, il assume depuis 6 ans, en parallèle de son poste principal, une activité d'enseignant en modélisation et développement Java auprès d'écoles d'ingénieurs.