Livres pour les expérimentés
30 livres et 52 critiques, dernière mise à jour le 22 novembre 2020 , note moyenne : 4.5
- GWT (Google Web Toolkit) - Développez des Applications Internet Riches (RIA) en Java
- Les Design Patterns en Java : Les 23 modèles de conception fondamentaux
- Les EJB 3 (avec Struts 2, JSF 2, JasperReports 3, Flex 3) - Développez pour le web par l'exemple : 3 applications détaillées
- Programmation concurrente en Java
- JBoss AS 5 Development
- Apache Maven
- Java SOA Cookbook
- Java 6 : Entraînez-vous et maîtrisez Java par la pratique - Collections : Les TP Informatiques
- Les Cahiers du programmeur Java EE 5
- Filthy Rich Clients
- Java Persistence et Hibernate
- Programmer en Java
- Java Generics - and Collections
- Rich Client Programming - Plugging into the Netbeans Platform
- SCJP - Sun Certified Programmer for Java 5: (Exam 310-055)
- Eclipse et JBoss
- Programmation Orienté Aspect pour Java / J2EE
- Eclipse - Principes, patterns et plugins
- Les Cahiers du programmeur Swing
- Mieux programmer en Java - 68 astuces pour optimiser son code
- Les expressions régulières par l'exemple
- Spring par la pratique
- Aide-Mémoire de Java
- Refactoring des applications Java/J2EE
- Hibernate 3.0 - Gestion optimale de la persistance dans les applications Java/J2EE
- Au coeur de Java 2, Volume 2, Fonctions avancées JDK 5.0
- Cahiers du programmeur - Java/XML
- Java & XSLT
- Au Coeur de Java 2 JDK 5, Vol.1 - Notions Fondamentales
- Java Efficace - Guide de Programmation
GWT (Google Web Toolkit)
Développez des Applications Internet Riches (RIA) en Java
Résumé de l'éditeur
Ce livre sur GWT (Google Web Toolkit) s'adresse aux développeurs Java souhaitant créer des applications RIA sans passer par JavaScript ou aux développeurs web confirmés (JavaScript/XHTML/CSS) désireux de disposer d'un framework décuplant leur productivité. Une connaissance de Java et de XHTML/CSS est un pré-requis pour tirer le meilleur parti de ce livre.
Dans le monde du développement des applications internet riches (RIA), Google propose aujourd'hui l'outil GWT (en version 2 au moment de la rédaction du livre) qui offre une passerelle entre les mondes Java et JavaScript en adoptant un fonctionnement surprenant : proposer de compiler du code Java vers une application JavaScript nativement interprétable par les navigateurs web.
Tout au long de ce livre, vous découvrirez comment développer une telle application : la bibliothèque graphique prédéfinie, la gestion des évènements, les communications client-serveur et les optimisations.
Vous serez amené à mettre en ouvre les bonnes pratiques d'architecture : design patterns, Modèle Vue Présentateur et injection de dépendance. Vous découvrirez également les techniques préconisées pour l'internationalisation et le développement de tests unitaires.
L'ensemble de cet ouvrage s'articule autour d'exemples de mise en ouvre entièrement disponibles en téléchargement sur www.editions-eni.fr, vous permettant de tester par vous-même les principes présentés.
Édition : ENI - 400 pages, 1re édition, 11 octobre 2010
ISBN10 : 2746058308 - ISBN13 : 9782746058309
- Avant-propos
- Développer avec Google Web Toolkit
- Créer une interface graphique
- Gérer des événements
- Communication client-serveur
- XML, DOM et JSON
- Concevoir l'architecture
- Tests
- Internationalisation
- Techniques avancées
Tout d'abord, l'auteur a fait le choix de ne pas parler du positionnement de GWT, de son historique, des généralités. Cela pourra déranger un novice mais j'ai personnellement apprécié : les ouvrages précédents ayant brillamment traité cet aspect, il n'aurait pas été d'un grand intérêt de le refaire, surtout que cela permet d'alléger le livre et d'aborder des points autrement plus intéressants.
L'auteur commence donc son premier chapitre "Développer avec GWT" en allant à l'essentiel. Pas besoin d'installer GWT en ligne de commande, on l'installe vite fait bien fait dans Eclipse. Il faut dire que l'intégration à cet IDE a bien progressé au fil des versions et que la documentation en ligne existante est suffisante. L'espace libéré lui permet d'expliquer chaque partie de la structure d'un projet GWT, tant au niveau développement qu'au niveau déploiement une fois compilé.
Dans le deuxième chapitre "Créer une interface graphique", inutile de décrire chaque widget, les livres précédents et la documentation en ligne y pourvoient amplement. A la place, il préfère se concentrer sur les widgets de positionnement qui posent le plus de problèmes (comme on le voit sur le forum). De plus, il est question principalement des nouveaux widgets de positionnement, ceux de la version 2.0, les XXXLayouts qui sont à utiliser de préférence.
Ensuite, qu'il s'agisse des exemples à la fin du chapitre 2 (FormPanel, Widgets personnalisés) ou de ceux du chapitre 3 relatifs aux événements, ils sont toujours concrets et utiles. Jugez plutôt : composant d'upload de fichier ou composant qui permet d'opacifier une zone de l'écran.
Au chapitre 4 sur la communication client/serveur, il sera question du classique RPC, de son futur remplaçant deRPC mais aussi de l'accès bas niveau (RequestBuilder) nécessaire pour uploader un fichier ou récupérer des flux XML/JSON (traités côté client au chapitre 5).
Le sixième chapitre "Concevoir l'architecture" présente un exemple concret d'application du pattern MVP! Vous comprendrez les différences par rapport à MVC et les bénéfices d'un outil comme GIN.
Bien qu'introduisant les GWTTestCase ou les bancs d'essai GWT, le septième chapitre sur les tests aurait probablement mérité d'être plus développé.
En lisant le chapitre 8 sur l'internationalisation, on voit immédiatement que l'auteur y a été confronté et l'a mis en ouvre personnellement dans des exemples réels, de même qu'au dernier chapitre sur les techniques avancées (JSNI, CLient Bundle).
Je dois avouer que ce livre m'a plu davantage que ce que j'imaginais à priori; principalement pour le contenu inédit qu'il apporte. Je le conseille également aux développeurs qui cherchent un ouvrage pratique qui soit davantage un complément aux documentations officielles qu'un substitut.
C'est pourquoi j'ai décidé de me procurer ce livre qui avait l'air de survoler l'ensemble des notions à maitriser en GWT. En effet on y retrouve de nombreux points-clés tels que : le récapitulatif de la technologie, la gestion des interfaces graphiques, le modèle d'évènement utilisé par GWT ainsi que la communication client / serveur. Parmi les chapitres du livre, on retrouve des cas pratiques détaillés auxquels chaque développeur pourra être confronté : l'internationalisation de son application, le parsing des fichiers (XML, JSON), etc.
D'autres chapitres m'ont paru un peu plus obscurs (par exemple le chapitre sur les tests) mais c'est surtout parce que je n'ai pas encore eu le temps de les mettre en pratique. Mais, si je me réfère à la qualité des autres, je pense ne pas avoir de surprises le jour où je devrai m'y mettre.
Pour conclure, je dirai que ce livre est maintenant sur mon bureau et me sert de gros pense-bête. Je m'y réfère assez souvent pour voir si je suis toujours dans le vrai et valider mes choix techniques. C'est une ressource intéressante, complète, mais qui fait peut-être l'impasse sur des thématiques plus basiques (installation de l'environnement, utilisation du langage Java, etc.). Les exercices reflètent bien des cas concrets, qu'on retrouve habituellement dans nos métiers de développeur d'applications, mais il permet également d'avoir une bonne approche lors de la phase de conception et de qualification.
Les Design Patterns en Java : Les 23 modèles de conception fondamentaux
Résumé de l'éditeur
Cet ouvrage, fondé sur de nombreux exemples d'application, vous aidera à comprendre ces modèles et développera votre aptitude à les appliquer dans vos programmes.
Forts de leur expérience en tant qu'instructeurs et programmeurs Java, Steve Metsker et William Wake vous éclaireront sur chaque pattern, au moyen de programmes Java réels, de diagrammes UML, de conseils sur les bonnes pratiques et d'exercices clairs et pertinents. Vous passerez rapidement de la théorie à l'application en apprenant comment écrire un meilleur code ou restructurer du code existant pour le rationaliser, le rendre plus performant et plus facile à maintenir.
Édition : Campus Press - 520 pages, 2e édition, 3 décembre 2009
ISBN10 : 2744023965 - ISBN13 : 9782744023965
- Introduction
- Introduction aux interfaces
- ADAPTER
- FACADE
- COMPOSITE
- BRIDGE
- Introduction à la responsabilité
- SINGLETON
- OBSERVER
- MEDIATOR
- PROXY
- CHAIN OF RESPONSABILITY
- FLYWEIGHT
- Introduction à la construction
- BUILDER
- FACTORY METHOD
- ABSTRACT FACTORY
- PROTOTYPE
- MEMENTO
- Introduction aux opérations
- TEMPLATE METHOD
- STATE
- STRATEGY
- COMMAND
- INTERPRETER
- Introduction aux extensions
- DECORATOR
- ITERATOR
- VISITOR
- A. Recommandations
- B. Solutions
- C. Code source d'Oozinoz
- D. Introduction à UML
Un autre point intéressant, cet ouvrage est construit comme un cahier d'exercices. Au fur et à mesure de sa lecture, le lecteur est invité à compléter en exercice les exemples présentés, afin de lui faire appliquer immédiatement les concepts présentés, et ainsi faciliter leur assimilation. Bien entendu, les corrigés se trouvent en annexe.
Quelques critiques…
Tout d'abord, l'auteur a choisi d'illustrer son ouvrage à l'aide d'un exemple directeur. Cette idée est intéressante: le lecteur est censé pouvoir se raccrocher à ce fil conducteur, et mieux cerner le schéma global de ce micro-projet. Malheureusement le domaine choisi, à savoir une usine de fabrication de feux d'artifices, n'est pas parlant pour un profane.
Ensuite, cet ouvrage semble être une traduction littéraire. De nombreux points auraient certainement pu mieux respecter les expressions idiomatiques de la langue française.
Enfin, le niveau de cet ouvrage est signalé comme étant avancé, ce qui est loin d'être le cas selon moi. Les concepts ne sont pas poussés dans leur retranchement, un lecteur averti y verrait plutôt une application quasi-immédiate. Par ailleurs, sa notion de polymorphisme est tout simplement incomplète, car restreinte à l'application de LSP. Or depuis Java 1.5, le polymorphisme paramétrique est disponible, et il aurait été intéressant de voir ce qu'il impliquait dans la conception.
Commenter Signaler un problème
J'ai eu l'occasion de lire l'ouvrage Les Design Patterns en Java : Les 23 modèles de conception fondamentaux, publié en 2ème édition chez Pearson
consulter ma critique
n'hésitez pas à partager vos avis sur cet ouvrage à la suite de mon post
à tous
Les EJB 3 (avec Struts 2, JSF 2, JasperReports 3, Flex 3)
Développez pour le web par l'exemple : 3 applications détaillées
Résumé de l'éditeur
L'auteur propose le développement avec les EJB de trois applications web de vente en ligne aux fonctionnalités quasi identiques et qui sont basées sur des couches métier et persistance communes. À l'aide de l'IDE Eclipse et du serveur d'application JBoss 6, il exploite les fonctionnalités d'un container EJB pour :
- mettre en place une couche de persistance basée sur les Entity beans, le langage JPQL et la Java Persistence API ;
- créer des objets métiers à l'aide des Session beans et des Message-driven beans ;
- définir une politique de sécurité avec une gestion des rôles et des permissions définie dans un fichier de propriétés, une base ou un annuaire LDAP ;
- exposer des EJB 3 en tant que web services ;
- mettre en place des traitements différés et ponctuels à l'aide des EJB Timers ;
- faire de la programmation par aspect grâce aux Interceptors.
Tout au long des chapitres, l'auteur :
- décrit et met en place les nouveautés incluses dans les dernières versions des frameworks Struts 2 et JSF 2 ;
- détaille l'utilisation du framework GraniteDS pour réaliser la communication entre les objets Java et Flex 3 et créer une interface RIA ;
- met en avant le framework open-source de reporting JasperReports et montre son utilisation avec les EJB, Struts 2 et JSF 2 pour créer des rapports graphiques.
Enfin, l'auteur décrit les apports de la toute dernière version des EJB, la version 3.1, qui a été finalisée en décembre 2009.
Les sources des applications sont en téléchargement sur le site www.editions-eni.fr et l'auteur continuera de les faire évoluer sur son site.
Édition : ENI - 370 pages, 1re édition, 1er juillet 2010
ISBN10 : 2746055678 - ISBN13 : 9782746055674
- 1. Introduction
- 2. L'application VenteEnLigne
- 3. Les entity beans et l'API de persistance (JPA)
- 4. Les sessions Beans
- 5. Traitements des commandes avec les Message-Driven Beans
- 6. Utilisation des WebServices
- 7. Les EJBs Timer
- 8. Les Interceptors
- 9. Securité
- 10. Struts 2
- 11. Développement d'un client avec JSF 2
- 12. Génération de rapports avec JasperReports
- 13. Développement d'un client avec Flex 3
- 14. Mise en place de l'environnement
- 15. EJB 3.1 : les nouveautés avec Java EE 6
- 13. Développement d'un client avec Flex 3
À l'aide de capture d'écran et d'extrait de code source, il présente clairements les différents aspect de ceux-ci : la couche métier avec les Session Bean, la persistance avec JPA, la securité, les fonctionnalités transverses avec les interceptors ou encore l'interopérabilité par le biais des WebServices.
Mais le point fort de ce livre est qu'il ne porte pas uniquement sur les EJBs, mais aussi leur utilisation dans des projets avec des outils et frameworks qui ne sont pas forcément liés à ceux-ci au départ.
J'ai fort apprécié la section d'intégration de Flex et des EJBs par exemple, qui est très bien expliquée, ou encore l'intégration avec JasperReport. Ces sujets sont très spécifiques et donc très rarement traités, ce qui en fait une plus-value importante (du moins pour ceux qui s'y intéresse).
Le chapitre concernant la spécification JEE 6 est appréciable également afin de survoler rapidement les nouveautés de celle-ci.
Au niveau de la forme, le livre est bien écrit et assez aisé à suivre. Mon seul regret est de devoir de temps en temps jongler entre les pages, du fait des extraits de code parfois trop verbeux.
Public
Grâce à ses codes source très bien expliqués, ses fonds d'écrans explicites et des explications très facile à comprendre, ce livre est particulièrement bien adapté à des profils neophytes désirant découvrir les EJBs 3.
Commenter Signaler un problème
J'ai eu l'occasion de lire le livre Les EJB 3 (avec Struts 2, JSF 2, JasperReports 3, Flex 3), de Celinio Fernandes.
C'est un excellent livre francophone pour découvrir les EJBs simplement, et dans des cas pratiques d'interaction avec des fronts Web (JSF et Struts 2) ou RIA (Flex).
Programmation concurrente en Java
Résumé de l'éditeur
Édition : Pearson Education - 370 pages, 1re édition, 1er mai 2009
ISBN10 : 2744023337 - ISBN13 : 9782744023330
18,5 cm x 23 cm, 795g
- Les bases
- Thread safety
- Partage des objets
- Composition d'objets
- Briques de base
- Structuration des applications concurrentes
- Exécution des tâches
- Annulation et arrêt
- Pools de threads
- Applications graphiques
- Vivacité, performances et tests
(list] - Éviter les problèmes de vivacité
- Performances et adaptabilité
- Tests des programmes concurrents
- Verrous explicites
- Construction de synchronisateurs personnalisés
- Variables atomiques et synchronisation non bloquante
- Le modèle mémoire de Java
Si la présence du mot "Java" me laissait penser qu'il était orienté pratique, le sujet me semblait quand même assez spécifique. Quand j'ai décidé de le lire, c'était donc plus par curiosité. Bien m'en a pris et je vais vous expliquer pourquoi.
Sur la forme tout d'abord.
Cet ouvrage fait partie d'une collection "Référence" particulièrement soignée. Je n'ai relevé aucun problème de traduction et je tenais à le souligner car je sais que certains développeurs préfèrent parfois la version originale pour les éviter.
La table des matières est très détaillée et illustre bien via son plan progressif à quel point l'ouvrage est didactique.
J'ai particulièrement apprécié des choses que l'on voit trop rarement :
- Dans la présentation, l'auteur expose les prérequis et situe son ouvrage, nous dit ce qu'il est, ce qu'il n'est pas et le cas échéant, il nous oriente vers des ouvrages plus indiqués ! Un must.
- Les nombreux exemples sont tous référencés dans une table des listings et même si le sujet s'y prête bien, ils sont de trois types : les mauvais, les moyens et les bons.
Sur le fond ensuite.
Jusque là, je n'avais qu'effleuré la programmation concurrente. Je l'avais plus ou moins rencontré dans des applications desktop (Swing) ou dans des applications web (Servlet) mais elle nous concerne bien plus que je l'imaginai (Les threads sont partout !).
Avec cet ouvrage, vous comprendrez entre autres :
- pourquoi les interfaces graphiques sont monothread !
- pourquoi de nombreux programmes ne sont pas corrects !
- pourquoi les plantages de la production ne sont pas causés par des ondes alpha !
- pourquoi tant qu'on a pas compris ce qu'est la thread-safety, on ne sait pas programmer !
Vous verrez également que parfois, la programmation concurrente n'apporte aucune performance supplémentaire et que parfois, elle simplifie l'écriture de programmes !
Dans ce livre, j'ai appris beaucoup de vocabulaire : vivacité, réentrance, confinement, publication, … et j'ai pu mettre des noms sur certaines de mes pratiques comme le "confinement dans la pile". J'ai également découvert la richesse des API Java (AtomicXXX et le framework Executor, …)
En plus de toutes ces explications théoriques, cet ouvrage se veut également un guide pratique pour nous aider dans notre activité de codage et prodigue de nombreux conseils tirés de 20 ans d'expériences.
Bref, vous l'aurez compris, j'ai aimé ce livre et je le conseille à tous les développeurs Java intermédiaire/avancé. Je n'ai qu'un seul regret, ne pas l'avoir lu plus vite !
Le livre est découpé en plusieurs parties : une première aborde les bases de la concurrence, de la "thread safety" et de la composition de classes concurrentes. Une seconde partie montre comment une bonne utilisation de la concurrence peut améliorer la réactivité et la performance des applications (utilisation de pool de threads…). Une troisième partie aborde le test des applications concurrentes pour s'assurer du bon fonctionnement du code. Enfin, une dernière partie couvre des aspects avancés de la programmation concurrente. A noter que la table des matières est très détaillée, permettant de retrouver rapidement un sujet recherché.
On trouvera tout au long du livre des exemples de codes sur ce qu'il est bon de faire et à éviter pour obtenir un code concurrent sécurisé, performant et maintenable. On trouvera ainsi des modèles d'utilisation de la programmation concurrente que l'on pourra réutiliser dans des projets réels comme par exemple la meilleure manière de gérer un cache en utilisant des threads (en principe le code du livre est disponible sur le site de Pearson, mais je n'ai pas encore trouvé l'endroit).
Pas toujours évident, le sujet de la programmation concurrente ne s'adresse pas au débutant en programmation et nécessite une bonne connaissance de Java, ou au moins quelques connaissances pour réussir à suivre. L'auteur de ce livre réussi tout de même à faire passer la pilule sur un sujet qui n'est pas des plus amusants à première vue. En tout cas, je conseille ce livre à tous ceux que la programmation concurrente intéresse, car il me semble que cet ouvrage est une petite bible sur le sujet.
Commenter Signaler un problème
Une chose m'a particulièrement marqué :
Trop peu de développeurs se soucient de la justesse de leur programme. Un peu comme pour la propreté du code (cf Clean Code), ils sont nombreux à s'arrêter dès que ça fonctionne ! Or en ce qui concerne la concurrence, les conditions limites vont s'exprimer le plus souvent en production et non en développement.
Je ne dis pas qu'il faut faire systématiquement du code multithread (cela à un coût certain) mais au minimum de l'indiquer pour ceux qui viennent après. L'auteur fait d'ailleurs remarqué que même de nombreux frameworks connus ne l'indiquent pas et on est alors obligé de le deviner en se mettant à leur place !!! C'est pourquoi il propose à la fin de son ouvrage des annotations pour l'indiquer explicitement.
Quelle est votre opinion sur le sujet ?
Est-ce que vous y penser en développant ? Est-ce que vous y penser parce que vous avez des comportements étranges en production ?
Etes vous sensibiliser sur le sujet ? Allez vous faire gaffe à l'avenir ?
Que pensez vous de sa proposition des annotations ?
La javadoc de l'api standard est bien fichue de ce coté là est indique le plus souvent si une classe est 'thread-safe' ou non.
A mon sens, il s'agit avant tout d'un problème de documentation et l'annotation n'y changera pas grand chose. A savoir lorsqu'elle sera absente, on ne saura pas ce qu'il faut en conclure.
Je confirme, la pratique trop souvent répandue est de se poser les questions de concurrence que lorsque des erreurs se produisent. Dès que ça semble rouler, on oublie cette vilaine bête noire...
JBoss AS 5 Development
Résumé de l'éditeur
A complete guide for JBoss developers covering everything from basic installation to creating, debugging, and securing Java EE applications on this popular, award-winning JBoss application server
Master the most important areas of Java Enterprise programming including EJB 3.0, web services, the security framework, and more
Starts with the basics of JBoss AS and moves on to cover important advanced topics with the help of easy-to-understand practical examples
Written in a very simple and readable style, this book includes essential tips and tricks that will help you master JBoss AS development
Édition : PackT Publishing - 396 pages, 1re édition, 1er décembre 2009
ISBN10 : 1847196829 - ISBN13 : 9781847196828
- Chapter 1: Installing Core Components
- Chapter 2: What's New in JBoss AS 5 ?
- Chapter 3: Customizing JBoss AS Services
- Chapter 4: Developing EJB 3 Session Beans
- Chapter 5: Developing JPA Entities
- Chapter 6: Creating a Web Application
- Chapter 7: Developing Applications with JBoss Messaging Service
- Chapter 8: Developing Applications with JBoss and Hibernate
- Chapter 9: Managing JBoss AS
- Chapter 10: Developing Applications with JBoss Web Services
- Chapter 11: Clustering JBoss AS
- Chapter 12: Developing a Clustered Application
- Chapter 13: JBoss AS Security
- Chapter 14: Securing JBoss AS Applications
Concernant la version traitée de JBoss, il s'agit de la version 5. Le livre a été publié en décembre 2009, en même temps que la sortie de la version 6 de JBoss, qui s'aligne petit à petit avec Java EE 6. Mais le livre reste totalement à jour, dans la mesure où il traite principalement de fonctionnalités de JBoss qui sont plus ou moins indépendantes des versions de Java EE.
Le livre est constitué de 14 chapitres. On peut trouver, comme à l'accoutumé dans les livres de la collection Packt Publishing, un résumé à la fin de chaque chapitre qui récapitule les principales notions qui ont été vues.
Les 3ers chapitres décrivent l'installation de JBoss, ses nouveautés et la configuration des services (logs, connexion à la base, les transactions, utilisation de la console JMX, de la console d'administration basée sur Jopr).
Le chapitre 4 met en avant le container EJB de JBoss puisqu'il est consacré au développement des session beans (EJB 3). Il y a du code, des explications théoriques (par exemple sur le cycle de vie des session beans) et pratiques (par exemple configurer la taille du pool de stateless session beans dans JBoss).
Le chapitre 5 aborde la persistance et crée un projet dans Eclipse en utilisant les entity beans et la Java Persistence API (JPA).
Le chapitre 6 utilise JSF 1.2 pour la création d'une application Web. L'auteur décrit le serveur Web contenu dans JBoss et qui utilise Apache Tomcat.
Le chapitre 7 utilise JMS avec les Message-Driven Beans et JBoss Messaging qui remplace JBoss MQ. Là encore on trouve une partie théorique et une partie pratique.
Le chapitre 8 montre l'utilisation d'Hibernate avec JBoss Tools / Hibernate Tools.
Les chapitres 9 à 12 rentrent dans le coeur de JBoss AS avec des explications sur JMX et les MBeans, ainsi que la gestion des ressources depuis la console d'administration. Des Web Services sont développés et déployés avec JBoss WS.
Le clustering de serveurs JBoss AS n'est pas oublié avec des explications sur la configuration nécessaire pour le load balancing et l'utilisation de JBoss Cache pour synchroniser les données dans un cluster.
Enfin j'ai trouvé les chapitres 13 et 14 sur la sécurité très complets. Tout est abordé : JAAS, JBossSX, certificats, sécurisation des EJB, encryption des Web Services.
Ce que j'ai aimé : Les nombreuses illustrations (de la console et de la structure des fichiers dans JBoss, des captures d'écrans d'Eclipse …), les exemples concrets, le côté simple des explications.
Ce que j'ai moins aimé : Certains points ne sont pas abordés en détails mais ce n'est pas quelque chose de négatif dans la mesure où l'auteur fournit les explications de base nécessaires pour aller plus loin dans les détails si nécessaire.
English version :
Before reading this book, I already knew the author, Francesco Marchioni, because of his web site - http://www.mastertheboss.com/ - which is dedicated to JBoss. So it was with enthusiasm that I wished to get a copy of the book and I was not disappointed. Indeed the book is like the web site : practical, rich in samples and useful information.
The book uses JBoss 5. It was published in december 2009, when the first version of JBoss 6 was becoming available and starting to implement Java EE 6. But the book is still up to date since it describes functionalities of JBoss that are more or less independant of the versions of Java EE.
The book is made of 14 chapters. As usual with the books from the Packt Publishing collection, there is a resume at the end of each chapter which recapitulates the main subjects.
The first 3 chapters describe the installation of JBoss, the new features and the configuration of services (logs, database connection, transactions, use of the JMX console and the administration console based on Jopr).
Chapter 4 is dedicated to the EJB container in JBoss since the session beans (EJB 3) are being developed. There is coding, theoretical explanations (for instance the session beans life cycle) and practical explanations (for instance how to configure the size of the pool of stateless session beans in JBoss).
Chapter 5 is about the persistence and a project is developed in Eclipse, using entity beans and the Java Persistence API (JPA).
Chapter 6 uses JSF 1.2 for the creation of a web application. The author describes the Web server inside JBoss and which uses Apache Tomcat.
Chapter 7 uses JMS with Message-Driven Beans and JBoss Messaging which replaces JBoss MQ. Again, there are nice explanations : theoretical and practical.
Chapter 8 shows the use of Hibernate with JBoss Tools / Hibernate Tools.
Chapters 9 to 12 go into the heart of JBoss AS with explanations of JMX, the MBeans and the management of resources from the administration console. Web Services are developed and deployed in JBoss WS.
Clustering of JBoss AS servers is not forgotten : there are explanations on the configuration needed for load balancing and the use of JBoss Cache to synchronise data in a cluster, among many other explanations.
Finally I found chapters 13 and 14 on security very complete. The author writes about everything : JAAS, JBossSX, certificates, securing EJB, Web Services encryption …
What I liked the most : The many illustrations (of the console, the file system structure in JBoss, the screenshots of Eclipse …), the concrete samples, the simple explanations.
What I liked the least : one might have liked to read more details about certains subjects but that is not a negative thing because the author gives the basic explanations needed to investigate further if necessary.
Commenter Signaler un problème
Bonjour utilisateurs de JBoss,
je viens de faire une critique du livre JBoss AS 5 Development qui est sorti en décembre 2009.
Elle se trouve ici : http://java.developpez.com/livres/?page=Anglais#L9781847196828
Si vous avez des questions ou remarques, n'hésitez pas.
Apache Maven
Résumé de l'éditeur
Les raisons : il systématise, rationalise et simplifie le développement collaboratif de projets Java, faisant gagner aux entreprises comme aux développeurs du temps et de l'argent !
Les auteurs, membres de l'équipe de développement Maven, aidés par toute la communauté francophone, ont imaginé de présenter Maven 2 sous un angle original et didactique, à travers un projet fictif, inspiré de leurs expériences sur le terrain, dont ils détaillent toutes les phases successives.
Ce projet évolue au fil des besoins et de la contribution de développeurs aux profils différents, vous familiarisant avec les concepts fondamentaux de Maven et leur mise en oeuvre pratique, mais aussi avec les fonctionnalités plus avancées.
Vous profitez également des recommandations et bonnes pratiques pour optimiser votre utilisation de Maven.
Vous découvrez ainsi de manière ludique et grâce à des exemples concrets le potentiel de Maven, et tous les avantages qu'il peut apporter à vos propres projets.
Édition : Pearson Education - 324 pages, 1re édition, 1er novembre 2009
ISBN10 : 274402337X - ISBN13 : 9782744023378
18,7 x 23 cm
- Premiers pas avec Maven
- Introduction
- Au-delà de java.lang
- Un peu plus que compiler
- Mettre en place des tests unitaires
- Mettre en place des tests d'intégration
- Maven en entreprise
- Gestion avancée des dépendances
- Quand le projet devient trop lourd
- Maven et JEE
- Maven et les IDE
- Le jour J : la livraison
- Encore plus loin avec Maven
- Utiliser un outil non supporté
- L'assurance qualité
- Respecter un format de distribution
- Un nouveau projet démarre
- Avons-nous fait le bon choix ?
- Nos recommandations
- Épilogue
- Lexique
Je connais Maven pour l'avoir utilisé sur quelques projets, par le maintien de la FAQ Maven sur le site Developpez.com et également par la lecture de quelques ouvrages sur l'outil.
C'est donc avec grande curiosité que je souhaitais lire "Apache Maven" d'Arnaud Héritier et Nicolas De Loof, un ouvrage en français et atypique selon les dires.
Je dois dire tout de suite que je n'ai pas été déçu car voilà un ouvrage informatique que j'ai dévoré comme un roman, par petits bouts tous les jours, vraiment !
Ce livre raconte donc l'histoire d'un projet, petit et désordonné au départ (sauvegardé sur une disquette), qui deviendra par la suite le produit phare de la multinationale Geegol au travers des bonnes pratiques que le projet distille avec son utilisation de Maven.
On apprendra alors tout au long de l'histoire comment utiliser Maven pour répondre aux incontournables des projets en entreprise, depuis la création du projet jusqu'à sa livraison.
On prendra alors connaissance des nombreuses fonctionnalités de Maven, comme sa gestion des dépendances, la convention plutôt que la configuration, les profils, etc. Mais également sa possibilité d'intégration avec d'autres produits, comme les IDE, les serveurs d'intégration continue, etc.
Très pragmatique, le livre fournit des exemples de configuration directement utilisables dans vos projets.
J'ai aimé également l'ouverture des auteurs sur le produit, on trouvera bien sûr les avantages de Maven mais aussi ses points faibles, les alternatives (ex : Graddle, Ant) ainsi qu'un avant goût du futur, avec Maven 3.
Vous l'aviez peut être deviné : j'ai énormément apprécié ce livre et j'y retrouve l'esprit pédagogique présent également dans la collection "Tête la première" (pour moi une référence en matière de pédagogie informatique).
Les grands intérêts du livre passent par le style employé, très jovial, jamais ennuyant. On y retrouve les grandes lignes principales permettant de mener à bien un projet Java mais également de nombreuses astuces qui pourront parfaire vos réalisations.
Nous avons donc au final un très bon livre en français sur Maven, que je conseille à tous ceux qui auront à travailler avec cet outil formidable.
Du point de vue du contenu, Apache Maven couvre les fonctionnalités les plus importantes et/ou les plus intéressantes de Maven, le tout réparti en trois parties :
Premiers pas avec Maven
Dans cette partie, c'est tout d'abord le choix de Maven face à d'autres outils similaires qui est introduit. Sa force principale est les conventions apportées car elles permettent à n'importe quel développeur connaissant Maven de retrouver ses repères rapidement sur n'importe quel projet basé sur Maven. Dans cette partie on découvre également la gestion de dépendances, les premiers plug-ins et comment générer des livrables.
Maven en entreprise
Dans cette seconde partie, l'intégration de Maven dans les trois plus importants IDE (Eclipse, Netbeans et Idea) est présentée, le tout sous la forme d'un débat, dont la conclusion est particulièrement intéressante ! La notion de dépôt d'entreprise est également introduite, permettant de réduire considérablement la bande passante vers Internet, mais également d'avoir une gestion plus fine de ce qui est permis ou non au sein des projets. Et pour finir, les auteurs présentent un plug-in permettant de simplifier considérablement la livraison d'un livrable (deux commandes !)
Encore plus loin avec Maven
Maven, c'est aussi tous ses plug-ins. Mais comment faire quand il n'en existe aucun qui correspond à nos besoins ? Les auteurs nous montrent qu'il n'est pas sorcier de créer nos propres plug-ins Maven. C'est ensuite la notion d'archétype qui est présentée : ceux-ci sont une espèce de template de projet préconfiguré. Exit le copier-coller d'un projet et de renommer à la main les fichiers qui vont bien. Les archétypes proposent une solution beaucoup plus élégante !
Les auteurs terminent finalement par le chapitre certainement le plus intéressant : des best practices basées sur leurs propres expériences
Conclusion
Au final, j'ai réellement dévoré ce livre. Je connaissais et utilisais déjà Maven mais sans avoir pris le temps de regarder toutes ses possibilités. À la fin de ce livre, j'avais qu'une seule envie : tester par moi-même ! Je conseille donc vivement ce livre à toute personne ne connaissant pas (ou mal) Maven. Par contre pour les très bons connaisseurs, je doute que ce livre soit très intéressant, sauf pour convaincre leur management d'utiliser Maven.
Il ne faut pas s'attendre ici à trouver LA bible sur Maven, mais plutôt d'apprendre à utiliser cet outil au sein d'une organisation.
Pour ce faire, Nicolas de Loof et Arnaud Héritier nous racontent l'histoire d'une équipe de développeurs, qui va être confrontée à différentes situations - qui ne manqueront pas de nous rappeler nos propres expériences.
Le livre se divise en trois grandes parties.
La première se destine à nous familiariser avec Maven et ses principaux concepts.
La seconde aborde des concepts plus poussés, en particulier concernant l'utilisation de Maven au sein d'une entreprise.
Enfin la dernière partie regroupe différents sujets, par exemple des cas atypiques d'utilisation de Maven.
1e partie : Premiers pas avec Maven
Cette première partie se destine à nous familiariser avec Maven et ses principaux concepts.
Les auteurs en profitent pour poser le décor de leur histoire. Nous suivrons donc l'équipe de développement d'un petit projet nommé noubliepaslalistedescourses !
Autrefois construit par un simple fichier .bat, cette application va rajeunir en étant migré vers Maven.
C'est ici que l'on constate les premiers bénéfices de l'outil d'Apache : gestion simplifiée des dépendances, cycle de vie de construction d'un projet, création des livrables (fichier JAR final par exemple), etc.
Les auteurs s'attaquent à d'autres problématiques, telles que la gestion des versions du JDK, l'intégration d'autres langages (Groovy par exemple).
Un chapitre est également consacré à la politique de tests, en mettant en lumière les différents types de tests (unitaires, fonctionnels, d'intégration, etc.) et même l'intégration continue.
On le voit dès cette première partie : ce livre n'est pas là uniquement pour nous parler de Maven, mais bien de tout ce qui a trait à l'environnement de développement.
2e partie : Maven en entreprise
Cette seconde partie aborde des questions plus poussées, des aspects de Maven qui prennent tout leur sens dans un environnement d'entreprise.
Ainsi, la première problématique abordée est la gestion avancée des dépendances, et en particulier l'introduction des dépôts d'entreprises (les repositories).
Par la suite, on s'attaque aux concepts des projets multi-modules et de l'héritage, très utiles dès que les projets prennent de l'importance !
Il est également question de la construction de livrables plus complexes, en particulier les WAR, les EJB ou les EAR.
Un chapitre est dédié à l'intégration de tout ceci au sein du principal outil du développeur : l'IDE (l'environnement de développement).
Qu'il s'agisse d'Eclipse, de NetBeans ou encore d'IntelliJ, ils sont tous étudiés par les auteurs du livre, qui nous montrent aussi bien la facilité d'utilisation de Maven directement dans l'IDE, que les petits plus qu'ils ont à offrir au développeur pour faciliter son travail quotidien.
Cette seconde partie s'achève sur un point crucial de la vie d'un projet : la livraison !
Cette étape, trop souvent bâclée, peut faire échouer un projet. Les auteurs nous donnent donc les moyens proposés par Maven pour simplifier, automatiser et fiabiliser ce processus.
3e partie : Encore plus loin avec Maven
Cette dernière partie aborde différents sujets qui n'ont pas encore été vus dans les chapitres précédents.
Tout d'abord, les auteurs nous expliquent comment il est possible de lancer des tâches par Maven alors qu'aucun plugin spécifique n'existe pour cela.
Il est ainsi question de développement de plugin Maven, mais aussi de l'intégration d'Ant au sein de Maven.
Un autre sujet connexe est abordé ici : la surveillance de la qualité du code.
Là aussi, Maven peut apporter des solutions - essentiellement grâce à des plugins ou à Sonar - et les auteurs ne manquent pas de nous le montrer.
C'est également le bon moment pour introduire la fonctionnalité de génération de site - et de rapports techniques - offerte par Maven !
Par la suite, un chapitre est entièrement consacré au démarrage d'un nouveau projet.
C'est ici l'occasion de voir les recommandations que l'on peut faire sur de nouveaux projets, et non plus de parler de migration de projets existants vers Maven.
On passe ainsi en revue certaines bonnes pratiques à mettre en place dès le début d'un projet, on apprend également à utiliser les archetypes de Maven, ces plugins qui nous permettent de créer le squelette d'un projet en fonction de son type.
Maintenant que nous avons fait le tour des principales fonctionnalités de Maven, les auteurs se posent une question un peu déroutante, mais tout de même intéressante : "Avons-nous fait le bon choix ?".
C'est ici que l'on fait une sorte de bilan, de savoir si finalement Maven est véritablement l'outil à utiliser au sein de nos projets, d'en définir les limitations et les problèmes.
Les auteurs nous parlent ensuite de l'écosystème autour de Maven : ses concurrents (Ant, Ivy et Gradle en première ligne), les sociétés qui gravitent autour de l'outil (en particulier Sonatype), etc.
Enfin, on termine avec quelques pages nous montrant les nouveautés de Maven 3.
Avant de conclure cet ouvrage, les auteurs décident de nous offrir leurs précieuses recommandations vis-à-vis de l'utilisation de Maven, leurs 10 commandements.
Mon avis
Apache Maven est un livre plutôt atypique.
Il s'apparente plus à un roman qu'à un livre technique traditionnel, et ne doit pas être pris pour une sorte de "bible" sur l'outil d'Apache.
Le fait que Nicolas de Loof et Arnaud Héritier aient abordé le sujet de Maven en racontant la vie et l'évolution d'une équipe de développement est une excellente idée, car cela nous montre un usage très réel et concret de cet outil.
Cela nous permet également de voir tous les à-côtés qui ne sont habituellement pas traités par des ouvrages informatiques sur un outil.
Ici, au-delà de Maven, les auteurs évoquent le TDD (Test Driven Development ou Développement piloté par les tests), les différentes façons de tester son application, le suivi de qualité, l'intégration continue, l'aspect livraison, les bonnes et mauvaises pratiques en général, etc.
C'est forcément un autre bon point pour ce livre !
Alors certes mon niveau en Maven, qui est plutôt bon, ne m'a pas permis de sortir de cette lecture avec beaucoup de nouvelles informations.
Toutefois, cela m'a conforté dans mes idées, m'a rassuré sur mes bonnes pratiques, et m'a appris quelques astuces plutôt sympathiques.
Le fait que ce livre aborde vraiment tous les aspects de la vie d'un projet est un énorme plus, et pourra, à mon avis, intéresser des personnes n'ayant pas un profil de développeur !
Selon moi, ce livre doit être vu comme un indispensable complément à une "bible" Maven, par exemple Maven: The Definitive Guide, d'autant que ce dernier vient tout juste d'être traduit en français.
Vous trouverez une critique complète de cet ouvrage, ainsi que tous les détails relatif à ce livre à cette adresse : http://linsolas.developpez.com/critiques/apache-maven/
Commenter Signaler un problème
27/12/2009 :
La critique de romaintaz, membre de la rédaction
Quelques extraits :
Il s'apparente plus à un roman qu'à un livre technique traditionnel, et ne doit pas être pris pour une sorte de "bible" sur l'outil d'Apache.
Bonjour,
Un livre francophone de 324 pages sur Maven devrait sortir dans le mois, à l'initiative de Nicolas De Loof et Arnaud Héritier, tous deux committers Apache.
En voici le sommaire :
- Introduction
- Au-delà de java.lang
- Un peu plus que compiler
- Mettre en place des tests unitaires
- Mettre en place des tests d'intégration
- Gestion avancée des dépendances
- Quand le projet devient trop lourd
- Maven et JEE
- Maven et les IDE
- Le jour J : la livraison
- Utiliser un outil non supporté
- L'assurance qualité
- Respecter un format de distribution
- Un nouveau projet démarre
- Avons-nous fait le bon choix
- Nos recommandations
- Épilogue
- Lexique
En attendant, vous pouvez déjà consulter certains extraits :
- La table des matières complète
- Préface par Jason Van Zyl et l'avant-propos par les auteurs
- Extrait du chapitre 2 - Au-delà de java.lang
- Extrait du chapitre 10 - Le jour J : la livraison
De quoi se faire une idée du contenu
Qu'en pensez-vous ? Qui est intéressé ?
Si les extraits sont représentatifs du reste du bouquin, alors on pourra s'attendre à un ensemble d'anecdotes sur les différentes phases du cycle de vie d'un projet et la façon dont Maven répond aux problématiques rencontrées ; une approche très intéressante et passionnante à lire.
J'en ai entendu parler au JUG, quand Arnaud Heritier en a fait la pub.
En plus la couverture est sympa.
Java SOA Cookbook
Résumé de l'éditeur
The book focuses primarily on the use of free and open source Java Web Services technologies -- including Java SE 6 and Java EE 5 tools -- but you'll find tips for using commercially available tools as well.
Java SOA Cookbook will help you:
- Construct XML vocabularies and data models appropriate to SOA applications
- Build real-world web services using the latest Java standards, including JAX-WS 2.1 and JAX-RS 1.0 for RESTful web services
- Integrate applications from popular service providers using SOAP, POX, and Atom
- Create service orchestrations with complete coverage of the WS-BPEL (Business Process Execution Language) 2.0 standard
- Improve the reliability of SOAP-based services with specifications such as WS-Reliable Messaging
- Deal with governance, interoperability, and quality-of-service issues
The recipes in Java SOA Cookbook will equip you with the knowledge you need to approach SOA as an integration challenge, not an obstacle.
Édition : O'Reilly - 740 pages, 1re édition, 1er mars 2009
ISBN10 : 0596520727 - ISBN13 : 9780596520724
- Chapter 1. Introduction to SOA
- Chapter 2. XML Schema and the SOA Data Model
- Chapter 3. Working with XML and Java
- Chapter 4. Getting Started
- Chapter 5. Web Services with SAAJ
- Chapter 6. Creating Web Service Applications with JAX-WS
- Chapter 7. Providing SOAP-Based Web Services
- Chapter 8. RESTful Web Services
- Chapter 9. Service Orchestrations with BPEL
- Chapter 10. Advanced Orchestrations with BPEL
- Chapter 11. SOA Governance
- Chapter 12. Web Service Interoperability
- Chapter 13. Quality of Service
- Chapter 14. Enterprise Service Bus
[list]
Contributeur pour 97 Things Every Software Architect Should Know, Eben Hewitt nous gratifie là d'un bel ouvrage de plus de 700 pages qui vous aidera à mettre en ?uvre des cas pratiques autour de la SOA.
La structure de la collection Cookbook de chez O'Reilly est la suivante : exposition des problèmes suivis de leurs solutions, des fragments de code ; le tout agrémenté d'explications et de comparaisons entre les différentes opportunités offertes dans le vaste domaine de la gestion des services.
Le contenu de "Java SOA Cookbook" est le suivant :
[list][*]La première partie du livre aborde les fondamentaux de la SOA (définitions, XML, schémas, interaction avec Java).[*]La deuxième partie se focalise sur les Web Services (déploiement, WSDL, SOAP, SAAJ, JAX-WS, REST).[*]La partie suivante est orientée business avec l'orchestration des services via BPEL (Business Process Execution Language, que l'on prononce "bipeul" ) et la gouvernance.[*]La dernière partie discute autour de l'interopérabilité des Web Services, de la qualité de service, et d'ESB.
[list]
D'un point de vue programmatique, le lecteur trouvera beaucoup d'exemples de codes (téléchargeables sur Internet) et des discussions autour de ceux-ci. Une remarque cependant : même si les recettes sont très bien expliquées, il faut être familier avec Java 5 ou 6, J2E et les concepts de développement Web (EARs, WARs...).
Voilà donc un livre que j'ai apprécié, par sa structure efficace, la richesse et la qualité de son contenu. Et comme en cuisine, vous utiliserez ce livre comme un ouvrage de référence quand des problèmes précis seront à résoudre, une lecture linéaire est, je pense, trop ennuyante.
Pour apprécier à sa juste valeur le livre Java SOA Cookbook, il faut bien comprendre que tous les termes du titre sont importants. Pour ma part, je me suis attaché uniquement à Java SOA, et j'ai été un peu surpris...
Le mot cookbook est plutôt judicieusement choisi, car on peut réellement le comparer à un livre de cuisine : une liste de recettes, sans avoir forcement tout le temps une suite logique entres elles. Par exemple, dans le chapitre concernant les gâteaux, on peut trouver 4 recettes de gâteaux au chocolat, et la 5ème est un gâteau au citron.
Dans le livre Java SOA Cookbook, c'est un peu pareil. Par exemple, dans le chapitre sur BPEL, on utilise d'abord le BPEL Engine de Apache 2-3 recettes, pour ensuite utiliser NetBean et OpenESB, puis encore un autre outil commercial pour la suite.
Et c'est comme cela dans l'ensemble du livre, ce qui est un peu déstabilisant pour "découvrir" la SOA et les sujets du livre.
Mais cela n'empêche pas l'ouvrage d'être un bon livre sur le sujet.
Les Web Services sont bien représentés, tant les services SOAP que les services REST
La partie Business Process Management, malgré mes remarques, est très intéressante elle-aussi. N'ayant personnellement jamais travaillé avec ceux-ci, j'ai appris beaucoup de choses.
Java SOA Cookbook, une fois la surprise passée du format, est un excellent livre qui permettra d'appréhender facilement les Web services, la gestion de processus métier ou, de manière plus générale, la SOA par le biais d'exemples concrets très bien détaillés.
English
To appreciate the book Java SOA Cookbook with its real value, it should be understood that all terms of the title are important. For my part, I have given attention only on Java SOA, and I was a little surprised ..
The term cookbook is carefully chosen, because you can really compare it to a cookbook: a list of recipes, without necessarily having all the time a logical sequence between them. For example, in the chapter on cakes, there are 4 recipes with chocolate, and the 5th is a lemon cake.
In the book "Java SOA Cookbook" is just the same. For example, in the chapter about BPEL, the firsts recipes use the Apache BPEL Engine, the next ones use NetBeans Designer and OpenESB, and the lasts use a commercial product for BPEL.
And it's like this in the entire book, which is a little unsettling for "discovering" the SOA and the subjects of the book.
But this does not prevent the book from being a good book on the subject. The Web Services are well covered, both the services that services SOAP REST.
The Business Process Management part, despite my remarks, is very interesting too. Having personally never worked with BPM/BPEL, I learned many things.
Java SOA Cookbook, once past the surprise of the format, is an excellent book which will easily understand Web services, management of business processes or more generally SOA through examples and very well detailed.
Commenter Signaler un problème
Le terme SOA est très en vogue ces dernières années, et les concepts se déclinent de manière exhaustive en Java.
Il existe un ouvrage édité par O'Reilly UK intitulé Java SOA Cookbook qui se propose d'illustrer la SOA par l'intermédiaire de petites recettes pratiques.
Voici ce qu'en pense le responsable bénévole Spring :
Pour apprécier à sa juste valeur le livre Java SOA Cookbook, il faut bien comprendre que tous les termes du titre sont importants. Pour ma part, je me suis attaché uniquement à Java SOA, et j'ai été un peu surpris...
(...)
Java SOA Cookbook, une fois la surprise passée du format, est un excellent livre qui permettra d'appréhender facilement les Web services, la gestion de processus métier ou, de manière plus générale, la SOA par le biais d'exemples concrets très bien détaillés.
Certains ont eu l'occasion de feuilleter ce livre ?
C'est un très bon livre sur la SOA, on y trouvera la trousse à outils nécessaire pour résoudre ses problèmes et répondre aux questions sur le sujet.
Il y a énormément de sujets abordés (plusieurs dizaines), le développeurs comme le concepteur SOA y trouvera forcemment son bonheur.
Et vous ? vous en avez pensé quoi ?
Java 6 : Entraînez-vous et maîtrisez Java par la pratique
Collections : Les TP Informatiques
Résumé de l'éditeur
119 QCM - 59 travaux pratiques et leurs corrigés - Plus de 23 H de mise en pratique.
Édition : ENI - 300 pages, 1er mai 2007
ISBN10 : 2746036134 - ISBN13 : 9782746036130
- Chapitre 1 : Le langage
- Pré-requis
- Contrôle de flux
- Exception
- Type de données
- Classe
- Interface
- Classe anonyme et interne
- Accessibilité
- Énumération
- Ellipse
- Chapitre 2 : Les collections
- Pré-requis
- java.util.List
- java.util.Map
- java.util.Set
- java.util.Queue
- Chapitre 3 : Les entrées/sorties
- Pré-requis
- Les flux binaires
- Accès aléatoire
- Les filtres
- Les flux de caractères
- Les flux mémoires
- La sérialization
- N/IO
- Chapitre 4 : JDBC - Base de données
- Pré-requis
- Installation d'une base de données MySQL avec accès ODBC
- Accès en lecture et écriture par Statement
- Accès en lecture et écriture par PreparedStatement
- Les procédures stockées
- Les DataSources
- Chapitre 5 : Threads
- Pré-requis
- La classe Thread
- Synchronisation multithreads
- java.util.concurrent.ExecutorService
- java.util.concurrent.ArrayBlockingQueue
- java.util.concurrent.Exchanger
- java.lang.management.ThreadInfo
- Chapitre 6 : Swing
- Pré-requis
- Construction d'un répertoire téléphonique
- Construction d'un éditeur de texte
- Mise à jour asynchrone d'une table
- Installation d'un lookAndFeel
- Actions
- Tri et table
- SystemTray
- Chapitre 7 : JAXP - XML
- Pré-requis
- SAX
- DOM
- XPath
- Transformation
- JAXB
- StAX
- Chapitre 8 : Classes utilitaires
- Pré-requis
- java.lang.ProcessBuilder
- java.util.Scanner
- Expressions régulières
- Préférences
- Logs
- Console
- Annotations
- Scripts
- Chapitre 9 : Java Web Start
- Pré-requis
- Exécution d'une application
- javax.jnlp.ServiceManager
- Chapitre 10 : Services Web
- Pré-requis
- Création et usage d'un service Web
- Usage d'un service Web sur un site marchand
- Chapitre 11 : Accès réseaux
- Pré-requis
- Socket
- HTTP
- Cookie
Certes, les cas sont très pratiques, mais malheureusement les fonctionnalités de Java 5 / 6 ne sont pas très présentes. Un sous-chapitre très succint sur les Annotations, un Chapitre entier sur JDBC sans parler des nouvelles fonctionnalités de la 6, rien non plus sur les nouveautés liées aux Collections. Il y a tout de même un chapitre sur les web services ainsi qu'un sous-chapitre parlant de Stax et des scripts. On ne peut bien sur pas voir tous les aspects de Java dans un livre de 300 pages, mais dans ce cas, le titre du livre me semble mal adapté.
Je n'ai pas eu l'occasion de lire d'autre livre de cette collection mais la mise en page est très claire. Je n'ai pas eu trop de difficulté à « switcher » des énoncés aux corrections, grâce aux hauts de pages qui sont intuitifs. Le jeu des FAQs pour se tester avant chaque chapitre est très judicieux, c'est un bon moyen de faire un bilan rapide de compétence et de s'informer plus particulièrement par soi même le cas échéant (même si certaines réponses données sont discutables car non exhaustives, c'est d'autant plus gênant lorsque le public visé est débutant).
J'ai été aussi surpris par un vocabulaire approximatif. Pour ma part, il ne me semble pas assez précis, surtout lorsqu'il s'agit de vulgariser un langage (on ne parle pas d'accesseurs, ni d'instance de classe,…). Cela ne gênera toutefois pas les non puristes.
Pour finir, les corrigés sont pédagogiques et bien rédigés, je regrette juste qu'ils se concentrent trop sur la description du corrigé (on décrit ce qu'on fait) et non sur la démarche utilisée (pourquoi utiliser cette Classe plutôt qu'une autre, quel intérêt d'utiliser ce pattern, pourquoi je prends cette API et pas celle là,.). Bref, à la fin du TP on maîtrise le sujet posé, mais on n'a malheureusement pas le recul nécessaire pour l'appliquer dans un projet.
Surtout que certaines petites erreurs viennent entacher la poursuite des TPs (exemple du chapitre 7 où il manque des informations sur les fichiers styles ou une méthode main pour tester une classe).
En l'état, impossible de faire fonctionner le TP complètement. Heureusement que les corrigés sont accessibles en ligne sur le site des éditions ENI.
Encore faudrait-il le savoir !! Cela n'est écrit nulle part dans le livre. J'ai passé 2h à trouver la solution avant de voir une minuscule phrase sur la page arrière du bouquin parlant des corrigés en ligne.
Vous l'aurez compris, je n'ai pas été très tendre avec ce livre, mais c'est tout simplement parce que, comme beaucoup de personnes qui achètent ce genre de livre, je suis exigeant. Malgré cela, j'ai passé un bon moment et j'ai appris certaines choses « concrètes » ce qui au final est ce que l'on attend d'un livre de TP.
Commenter Signaler un problème
Collections : Les TP Informatiques
119 QCM - 59 travaux pratiques et leurs corrigés - Plus de 23 H de mise en pratique.
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
Les Cahiers du programmeur Java EE 5
Résumé de l'éditeur
Cet ouvrage s'adresse aux architectes et développeurs confirmés qui veulent découvrir les nouveautés de Java EE 5 ou migrer leurs applications J2EE 1.4 existantes. Il montre comment s'imbriquent les différentes API de Java EE 5 dans une application internet-intranet.
Édition : Eyrolles - 329 pages, 1re édition, 1er mai 2009
ISBN10 : 2212120389 - ISBN13 : 9782212120387
- Présentation de l'étude de cas
- L'architecture de l'application
- Outils et installation
- Objets persistants
- Traitements métier
- Exécution de l'application
- Interface web
- Gestion du panier électronique
- Conserver l'état dans l'application
- Echanges
- Traitements asynchrones
- Annexes
- Spécifications EE5
- Tâches ANT
- Sigles et acronymes
- EJB2
La progression du livre est très pédagogique ce qui est un tour de force compte tenu de l'étendue du sujet : l'auteur parvient à expliquer au fur et à mesure différents concepts et leur imbrication sans sauter les étapes.
Autre point positif, le site de l'auteur est doté d'un forum et permet ainsi de discuter de tel ou tel aspect du livre.
Si je devais relever des points négatifs, je dirais que la présence systèmatique du code des annotations peut paraître inutile compte tenu d'une certaine redondance, mais bon ça reste anécdotique.
Pour conclure, c'est un livre très abouti, à commander donc et à recommander.
Cet ouvrage tient toutes ses promesses. Il réussit le tour de force d'aborder un nombre impressionant d'APIs de la plateforme Java EE de façon claire et concise. Celles-ci ne sont donc pas abordées dans leur intégralité (un livre ne suffirait pas) mais elles le sont suffisamment pour commencer à savoir s'en servir et nous donner l'envie d'aller plus loin. Ces APIs font toutes partie des spécifications constituant Java EE 5 (EJB3, JPA, JSP, JSF, JSTL, JMS, JAX-WS, JAXB, JavaMail, ...). Pour les personnes voulant approfondir ces notions, l'auteur a eu la très bonne idée de donner, tout au long de son ouvrage, des références sur les sujets qu'il aborde.
Le livre est construit autour du développement d'une application web complète (de type site marchand). C'est cette approche qui permet de couvrir de façon concrète le large panel d'APIs abordées.
Autre point intéressant, la première partie est consacrée à la conception de l'application où l'auteur partage son expérience et son savoir faire en expliquant ses choix (attitude qu'il adopte tout au long du livre).
Agréable à lire et au contenu d'une grande qualité, cet ouvrage m'apparaît être un indispensable pour tout développeur Java EE désireux de connaître la plateforme Java EE 5.
Vous trouverez également sur le site de l'auteur les sources complètes du livre ainsi qu'un espace de discussion autour du livre et du code de l'application.
Filthy Rich Clients
Résumé de l'éditeur
The keys to Filthy Rich Clients are graphical and animated effects. These kinds of effects provide ways of enhancing the user experience of the application through more attractive GUIs, dynamic effects that give your application a pulse, and animated transitions that keep your user connected to the logical flow of the application. The book also discusses how to do so effectively, making sure to enrich applications in sensible ways.
Édition : Prentice Hall PTR - 608 pages, 1re édition, 19 août 2007
ISBN10 : 0132413930 - ISBN13 : 9780132413930
Broché
- Graphics and GUI Fundamentals
- Desktop Java Graphics APIs: Swing, AWT, and Java 2D
- Swing Rendering Fundamentals
- Graphics Fundamentals
- Images
- Performance
- Advanced Graphics Rendering
- Composites
- Gradients
- Image Processing
- Glass Pane
- Layered Panes
- Repaint Manager
- Animation
- Animation Fundamentals
- Smooth Moves
- Timing Framework: Fundamentals
- Timing Framework: Advanced Features
- Effects
- Static Effects
- Dynamic Effects
- Animated Transitions
- Birth of a Filthy Rich Client
En effet, l'intégration de Java2D lors de la sortie de Java 2 (1.2) dès 1998 a permis d'étendre considérablement les capacités de la plateforme Java en ce qui concerne les effets et traitements d'images et ce de manière totalement portable d'un système à l'autre. De même, Swing, sorti à la même époque, permettait enfin de faire des interfaces graphiques en s'affranchissant des limites de l'AWT, mieux Swing reposait sur Java2D. Cependant, s'il peut-être aisé de trouver des informations, cours ou livres sur Java2D et plus encore sur Swing, il est resté assez difficile de trouver des exemples d'intégration avancée entre ces deux bibliothèques hormis les démos fournies par Sun avec le JDK. Et même celles-ci ne montrent pas comment Java2D peut, littéralement, transformer et transcender Swing.
Tous les programmeurs qui ont eut à créer leur propre composant Swing ou à modifier l'affichage d'un composant existant ont du à un moment ou à un autre écrire un peu de Java2D dans leur code d'affichage ; cependant nous sommes tous généralement restés confinés à des appels des primitives pour tracer des lignes ou encore remplir de simples polygones avec des couleurs unies, personne ne sachant vraiment trop comment combiner les deux bouts ensemble. Ainsi, tandis que les nouvelles versions de Windows et MacOS se succédaient les unes aux autres apportant à chaque fois leur lot de nouveaux effets graphiques cools, les interfaces graphiques Java restaient portables, certes, mais étaient également globalement toujours aussi grises et ennuyantes.
Ne craignez rien ! Romain Guy (Gfx) et Chet Haase, les deux superstars des très populaires présentations orientées Desktop des conférences JavaOne de ces dernières années viennent ENFIN à notre rescousse ! Si vous avez déjà été explorer les tonnes d'exemples et d'astuces que Gfx a proposés sur ce site et notre forum Java ou sur son blog ou ceux que Chet a postés sur le sien, une bonne partie est condensée dans ce livre (en anglais). Avec un langage simple, clair et non dénué d'humour, les deux auteurs nous présentent tour à tour tout ce qui est nécessaire pour faire que votre application Swing sorte du lot et accroche votre utilisateur ; qu'elle puisse s'intégrer aux designs plus riches en couleurs et autres effets graphiques ainsi qu'aux nouveaux standards en matière d'ergonomie ou de présentation des OS d'aujourd'hui.
Dans la première partie de l'ouvrage, nous retrouveront, outre les conseils habituels de "bonne conduite" en ce qui concerne la programmation Swing, des astuces pour bénéficier d'optimisations des performances du rendu. La seconde partie aborde des concepts plus avancés tels que les Composites (ce qui se passe lors de la superposition de 2 rendus), les gradients de couleur, les filtres permettant de faire des traitements sur des images mais également certains concepts Swing nécessaires à l'intégration de ces effets dans une IHM tels que le Glass Pane ou encore le Repaint Manager. La troisième partie touchera quant à elle à l'animation en présentant les concepts de base de ce qui fait une animation puis en abordant le Timing Framework auquel participe Chet Haase. La dernière partie du livre aborde enfin les effets qu'il est possible de créer en combinant tout ce qui a été vu au cours des chapitres précédents ainsi que les différentes étapes de la conception et de la création d'un client "obscènement" riche (traduction libre de Filthy Rich Client).
Attention toutefois, ce livre est uniquement disponible en anglais. Il supposera que vous connaissez déjà les fondamentaux de Swing et que vous avez également quelques connaissances de la manière de dessiner, ce serait-ce qu'une ligne droite ; ce n'est en aucun cas un ouvrage d'introduction à Java2D. De plus, on pourra parfois regretter que certaines images illustrant les chapitres soient un peu petites et que l'impression en niveaux de gris ne permette pas toujours de se rendre compte du résultat final de certains des effets, notamment ceux de surbrillance.
Cependant, ce livre reste une réussite en tout point et est un "must have" pour toute personne qui désire améliorer l'apparence de son application Swing que ce soit à petite dose pour l'épicer juste ce qu'il faut ou au contraire en balançant tout le "bling-bling" d'un seul coup à la face de l'utilisateur. À noter que les exemples accompagnant chacun des chapitres du livre sont directement et gratuitement téléchargeables sur le site http://filthyrichclients.org/
Java Persistence et Hibernate
Résumé de l'éditeur
Avec JPA (Java Persistance API), composante essentielle des spécifications EJB 3, le monde Java/JEE dispose enfin d'un standard fiable et efficace pour la gestion de la persistance et du mapping objet-relationnel. Largement inspiré du pragmatisme d'Hibernate et tirant parti d'une avancée majeure de Java SE 5 (les annotations), Java Persistance privilégie la simplicité de développement en plaçant les métadonnées de persistance au coeur du code Java SE ou EE et en reléguant les descripteurs XML aux cas extrêmes.
Un livre pratique illustré d'une étude de cas détaillée
A la fois pratique et didactique, cet ouvrage décrit les différentes facettes de l'API et de son implémentation Hibernate en montrant comment les mettre en oeuvre à travers une étude de cas déclinée au fil des chapitres. Il insiste tout particulièrement sur la définition des annotations et l'utilisation du gestionnaire d'entités en environnement Java SE ou Java EE, ainsi que sur les aspects méthodologiques et sur les questions de performances : mapping de modèles objet ou de schémas relationnels complexes, récupération efficace des objets persistants, gestion de la concourance et persistance transitive, configuration des pools de connexions et des caches de second niveau, etc.
L'ouvrage montre également comment repousser les limites de Java Persistence API grâce aux possibilités d'optimisation et aux extensions offertes par Hibernate.
Édition : Eyrolles - 365 pages, 1re édition, 18 décembre 2007
ISBN10 : 2212122594 - ISBN13 : 9782212122596
- Préface
- Remerciements
- Table des matières
- Avant-propos
- Persistance et mapping objet-relationnel
- Démarrer avec Java Persistence
- Métdadonnées et mapping des entités
- Héritage, polymorphisme et modèles complexes
- Méthodes de récupération des entités
- Création, modification et suppression d'entités
- Obtenir et manipuler le gestionnaire d'entités
- Fonctionnalités de mapping avancées
- La suite Hibernate Tools
- Projets annexes Java Persistence/Hibernate
- Index
Agréable à lire, illustré de nombreuses captures d'écran qui renforcent les explications données, c'est un livre trés détaillé qui couvre l'ensemble des possibilités d'Hibernate.
Pour autant, même si le public visé est clairement celui des développeurs, il couvre bien plus que le simple aspect programmation.
Tout au long du livre l'auteur s'attache à nous proposer une mise en oeuvre qui va bien au delà du simple mapping mécanique entre une base de données et le modèle métier.
Pour certains cas notamemnt, il étudie plusieurs possibilités de mapping, ou de modélisation, et montre les conséquences sur les autres couches. Les stratégies de chargement les plus adaptées en fonction des différents contextes qu'il est possible de rencontrer sont également abordées dans le détail. Les concepteurs et les architectes devraient apprécier et en tirer sans aucun doute des renseignements utiles.
Mon seul regret concerne la partie technique : l'auteur a choisi de n'utiliser que les annotations. Personnellement je trouve que c'est dommage. J'aurai bien aimé trouver les exemples en XML.
L'auteur commence par nous présenter la problématique de la persistance et l'évolution des librairies facilitant cette tâche au fil des ans jusqu'à l'avènement de JPA. Il nous montre également les avantages d'un outil de mapping objet-relationnel. Il présente ensuite ce qu'est JPA et c'est qu'est Hibernate.
On continue avec beaucoup de pratique avec les chapitres 3 et 4. Dans ces chapitres, on va apprendre à annoter nos entités pour configurer le mapping objet-relationnel. J'ai trouvé ces chapitres très complets, mais ils vont un peu vite, ce qui est parfois déroutant car on passe d'une notion à une autre très rapidement. Ils présentent également les notions complexes comme l'héritage et le polymorphisme sur les entités.
Les deux chapitres suivants traitent quand à eux des méthodes de récupération des entités ainsi que de la façon de les gérer, c'est-à-dire les modifier, les supprimer et les créer. Ces 2 chapitres sont très complets et plus simples à suivre que les précédents. La partie récupération traite bien de toutes les manières de récupérer des objets (EJB-QL, SQL natif, Criteria). On y parle également des transactions et de la gestion des accès concourants.
Vient ensuite un chapitre sur la gestion de l'EntityManager. C'est-à-dire comment le créer ou récupérer et comment gérer son cycle de vie tout au long de l'exécution de l'application. Il traite des différentes stratégies de gestion de l'EM ainsi que du traitement par lot ou de l'utilisation dans un batch. On y traite également de l'utilisation des EJB3 pour gérer l'EntityManager. Comme je n'ai pas pu installer JBoss intégré, je n'ai pu tester cette partie. Avec le chapitre 8, on entre dans le cour d'Hibernate qui permet de faire plus de choses que la spécification JPA. On verra donc les formules, les procédures stockées, les types personnalisés, les clés composées et encore d'autres notions avancées de mapping avancés. Ces 2 chapitres traitent de notions assez complexes, mais ils les traitent bien, et on s'y retrouve facilement.
L'avant dernier chapitre parle de la suite Hibernate Tools. Il traite surtout du plugin pour Eclipse permettant de faciliter le développement JPA/Hibernate et de SchemaExport, l'utilitaire permettant de générer le schéma de la base de données. Le dernier chapitre, quant à lui, traite des autres projets autour d'Hibernate. On va notamment s'intéresser aux pools de connexion et au gestionnaire de cache de second niveau ainsi qu'à la validation des entités.
En conclusion, j'ai trouvé certaines notions de ce livre complexes à mettre en oeuvre et le plan du livre laisse parfois à désirer. L'auteur va parfois un peu trop vite et le lecteur se retrouve emmêlé entre plusieurs notions parfois très différentes. Néanmoins, ce livre présente très bien les différentes notions de JPA ainsi que les aspects avancés qui nécessitent Hibernate. Mais je ne le conseillerais pas aux débutants.
Programmer en Java
Résumé de l'éditeur
Biographie de l'auteur
Ingénieur informaticien au CNRS, Claude Delannoy possède une grande pratique de la formation continue et de l'enseignement supérieur. Réputés pour la qualité de leur démarche pédagogique, ses ouvrages sur les langages et la programmation totalisent plus de 250 000 exemplaires vendus.
Édition : Eyrolles - 799 pages, 5e édition, 11 octobre 2007
ISBN10 : 2212122322 - ISBN13 : 9782212122329
- Présentation de Java
- Généralités
- Les types primitifs de Java
- Les opérateurs et les expressions
- Les instructions de contrôle de Java
- Les classes et les objets
- Les tableaux
- L'héritage
- Les chaînes de caractères et les types énumérés
- La gestion des exceptions
- Les threads
- Les bases de la programmation graphique
- Les contrôles usuels
- Les boîtes de dialogue
- Les menus, les actions et les barres d'outils
- Les évènements de bas niveau
- Les gestionnaires de mise en forme
- Textes et graphiques
- Les applets
- Les flux et les fichiers
- La programmation générique
- Les collections et les algorithmes
- Programmation Java côté serveur : servlets et JSP
- L'introspection et les annotations
Ce livre sera aussi une très bonne référence pour les initiés à Java car il contient une annexe très bien fournie et des exemples de code tout faits qui peuvent beaucoup servir.
Une chose très constructive aussi : beaucoup de remarques sur certains points communs avec le langage C++, pour que l'on puisse bien voir les différences ou similitudes avec ce langage. J'ai également beaucoup apprécié le chapitre sur la programmation générique qui est vraiment bien construit. Sinon, mon seul regret est qu'il manque un chapitre sur JDBC qui est très utile et aurait pu introduire une partie BDD.
Conclusion : Ce livre est pour moi LA référence en français du langage Java pour ceux qui voudraient l'apprendre.
C'est également un très bon aide mémoire pour les initiés car il donne tout ce qu'il faut pour être totalement autonome afin de développer ses propres applications et appréhender en toute sérénité la volumineuse documentation Java.
Avec plus de détail, ce livre montre une approche très pratique et scolaire sur les divers points du langage Java avec des exemples de code expliqués. J'ai également apprécié les diverses comparaisons entre le Java et le langage C++ qui permette de voir comment le Java est assez proche du C++ et permet également aux développeurs C++ de ne pas être dépaysé par le Java.
Mon avis sur cet ouvrage est très positif, cependant, il est vraiment réservé pour apprendre les bases et ce limite uniquement aux aspects les plus importants du langage Java, ce qui signifie que si vous cherchez des informations sur des techniques de programmation avancés, ce livre ne sera pas fait pour vous. Par contre pour apprendre ou migrer sur le Java, ce livre est un réel plus à avoir à côté de soi.
Les plus :
- Un sommaire très détaillé qui pour moi est un bon indicateur sur le contenu
- La rédaction et le style simple facilitant la bonne compréhension
- Un contenu de qualité et fiable et les parallèles avec C/C++
- Plus de 250 000 ouvrages vendus, ce n'est pas un hasard
Les moins :
- La mise en page trop sobre (mais les goûts et les couleurs, vous connaissez la suite…)
- Certains chapitres ne sont vraiment que des petites introductions (mais on comprendra que l'ouvrage n'a pas non plus vocation à l'exhaustivité)
Au final, sans être LE livre indispensable au développeur Java qui se respecte, il est je pense un très bon livre en français sur le développement Java pour ceux que l'anglais rebuterait.
Le petit bonus : pour chaque plate-forme (Mac, Windows et Linux/Unix) un CD contenant Eclipse Europa, le JDK en version 6, et les codes sources du livre, ainsi les malheureux de la connexion internet ne seront pas en reste.
Je conseille donc vivement la lecture de "Programmer en Java" de Claude Delannoy, non seulement au débutant Java, mais aussi aux initiés qui chercheraient un référent documentaire.
Java Generics
and Collections
Résumé de l'éditeur
* Fundamentals of generics: type parameters and generic methods
* Other new features: boxing and unboxing, foreach loops, varargs
* Subtyping and wildcards
* Evolution not revolution: generic libraries with legacy clients and generic clients with legacy libraries
* Generics and reflection
* Design patterns for generics
* Sets, Queues, Lists, Maps, and their implementations
* Concurrent programming and thread safety with collections
* Performance implications of different collections Generics and the new collection libraries they inspired take Java to a new level. If you want to take your software development practice to a new level, this book is essential reading.
Java Generics and Collections covers everything from the most basic uses of generics to the strangest corner cases. It teaches you everything you need to know about the collections libraries, so you'll always know which collection is appropriate for any given task, and how to use it.
Édition : O'Reilly - 273 pages, 1re édition, 1er novembre 2007
ISBN10 : 0596527756 - ISBN13 : 9780596527754
Broché
- Introduction
- Subtyping and wildcards
- Comparison and bounds
- Declaration
- Evolution, not Revolution
- Reification
- Reflection
- Effective Generics
- Design Patterns
- The main interfaces of the Java Collections Framework
- Preliminaries
- The Collection interface
- Sets
- Queues
- Lists
- Maps
- The Collections class
Pour commencer, je vais parler des différentes parties de ce livre et de leurs contenus respectifs et je ferai ensuite part de mes impressions concernant le concernant.
Les auteurs débutent, donc, par la partie sur les Generics. Le premier chapitre présente très brièvement les différentes notions utilisées dans ce livre, à savoir, les Generics, la boucle ForEach, l'(Un)Boxing, les types et les méthodes génériques ainsi que les assertions.
Les chapitres suivants nous parlent du sous-typage, des Wildcards de génériques, de l'usage des generics dans les comparaisons et des arguments génériques multiples.
Le chapitre ? lequelest un un peu plus pratique. Il va nous apprendre à utiliser les Generics dans nos déclarations et classes, constructeurs et méthodes. Et donc implicitement à créer nos premières classes.
Le chapitre 5 enchaîne sur la manière dont ont été implémentés les generics de telle sorte à conserver la compatibilité ascendante. Ce chapitre est très utile car il présente les techniques pour utiliser des librairies normales avec une application ou vice-versa et nous met en garde contre les différents problèmes pouvant subvenir.
Le chapitre suivant est à nouveau très technique et explique en détail, le système de "Reification" des types paramétrés. Il présente les différents principes à respecter lors de l'utilisation de classes génériques.
Les chapitres suivants sont plus pratiques. Le premier traite de l'api de "Reflection" pour les generics et des generics pour "Reflection". Ou comment utiliser les generics avec l'api de reflection et l'amélioration de l'api avec les generics. Le chapitre qui suit ("Effective Generics") traite directement des problèmes principaux pouvant subvenir en utilisant les generics, dont la conservation de la compatibilité des binaires.
Enfin, le dernier chapitre sur les generics traite des design pattern pour lesquels il est intéressant de les utiliser.
J'ai trouvé cette première partie très compliqué à assimiler et assez technique. Ceci est peut-être dû à mon niveau d'anglais qui n'est pas parfait, mais c'est le premier livre anglophone que j'ai autant de peine à suivre. Il faut également avouer que le sujet est très complexe quand on s'y plonge. J'ai du parfois m'y reprendre à plusieurs fois pour comprendre une notion. Néanmoins, il se révèle très complet et est une très bonne source d'informations sur les generics.
La partie suivante est consacrée à l'étude du framework de Collections de Java. Les 2 premiers chapitres présentent les principales interfaces du framework et les principaux concepts utilisés dans le framework, comme les iterators, les performances ou encore le multi-threading.
Le chapitre suivant présente en détail l'interface Collection qui est l'interface de référence pour presque toutes les collections du framework. Les principales méthodes et constructeurs sont présentées en détails ainsi que l'implémentation de Collection.
Les quatre chapitres suivants traitent des principales implémentations du framework. A savoir, les Sets, les Queues, les Lists et les Maps. Chaque type de collection est présenté tout d'abord de manière générale et ensuite chacune des implémentations de ce type est présentée en détails et une conclusion à la fin de chaque chapitre nous aide à choisir une implémentation.
Le dernier chapitre traite de la classe Collections qui offre une série de méthodes pour traiter les collections. Les principales méthodes sont présentées et expliquées. Un cas d'utilisation est presque toujours représenté.
J'ai trouvé cette deuxième partie mieux organisée que la première et plus accessible. Néanmoins, elle se révèle toujours assez difficile à comprendre et à suivre bien que le sujet soit plus simple. J'ai beaucoup aimé la présentation des différentes implémentations qui se révèle très complète et très utile dans le choix d'une implémentation.
En conclusion, je dirais que ce livre n'est pas adapté aux débutants qui veulent débuter dans les generics, mais plutôt à un public avancé qui désire aller jusqu'au bout du sujet. Il se révèle en effet très technique et je n'ai jamais réussi à m'y plonger très longtemps. Néanmoins, c'est une excellente source d'informations du fait du nombre de sujets traités. Un bon livre donc, mais pas à mettre entre toutes les mains.
Rich Client Programming
Plugging into the Netbeans Platform
Résumé de l'éditeur
The open-source NetBeans Platform is an extraordinarily powerful framework for building "write once, run anywhere" rich client applications. Now, for the first time since the release of NetBeans IDE 5.0, there's a comprehensive guide to rich client development on the NetBeans Platform. Written for Java developers and architects who have discovered that basic Swing components are not enough for them, this book will help you get started with NetBeans module development, master NetBeans' key APIs, and learn proven techniques for building reliable desktop software. Each chapter is filled with practical, step-by-step instructions for creating complete rich client applications on top of the NetBeans Platform and plugins for NetBeans IDE.
Rich Client Programming's wide-ranging content covers
- Why modular development makes sense for small, medium, and large applications
- Using NetBeans to accelerate development and improve efficiency
- Leveraging NetBeans productivity features, from the Component Palette to Code Completion
- Leveraging NetBeans' modular architecture in your own applications
- Implementing loosely coupled communication to improve code maintainability and robustness
- Managing user- and system-configuration data
- Building reloadable components with solid threading models
- Constructing sophisticated multiwindow applications and presenting rich data structures to users
- Adding user-configurable options
- Integrating Web services with NetBeans desktop applications
- Automating module updates and providing user help
Édition : Prentice Hall PTR - 640 pages, 1re édition, 1er mai 2007
ISBN10 : 0132354802 - ISBN13 : 9780132354806
18 x 3 x 23 cm, broché
- Foreword by Jonathan Schwartz
- Foreword by Jan Chalupa
- Preface
- About the Authors and Contributors
- Acknowledgments
- Chapter 1: Getting Started with the NetBeans Platform
- Chapter 2: The Benefits of Modular Programming
- Chapter 3: Modular Architecture
- Chapter 4: Loosely Coupled Communication
- Chapter 5: Lookup
- Chapter 6: Filesystems
- Chapter 7: Threading, Listener Patterns, and MIME Lookup
- Chapter 8: The Window System
- Chapter 9: Nodes, Explorer Views, Actions, and Presenters
- Chapter 10: DataObjects and DataLoaders
- Chapter 11: Graphical User Interfaces
- Chapter 12: Multiview Editors
- Chapter 13: Syntax Highlighting
- Chapter 14: Code Completion
- Chapter 15: Component Palettes
- Chapter 16: Hyperlinks
- Chapter 17: Annotations
- Chapter 18: Options Windows
- Chapter 19: Web Frameworks
- Chapter 20: Web Services
- Chapter 21: JavaHelp Documentation
- Chapter 22 Update Centers
- Chapter 23: Use Case 1: NetBeans Module Development
- Chapter 24: Use Case 2: Rich Unger on Application Development
- Chapter A: Advanced Module System Techniques
- Chapter B: Common Idioms and Code Patterns in NetBeans
- Chapter C: Performance
- Index
Poussé par la notoriété grandissante des dernières versions 5.x et de la très attendue version 6, Rich Client Platform : Plugging into the Netbeans Platform est le deuxième livre présentant Netbeans comme plateforme de client riche. Apportant une nouvelle expérience du développement d'application RCP, le site Netbeans.org restait jusqu'à aujourd'hui la principale source d'information pour apprendre à profiter de la plateforme : API très riche, documents techniques, nombreux tutoriaux offerts par la communauté, sans oublier la mailing-list très active. Cependant, il manquait une introduction aux concepts de base de l'architecture et c'est le défi que les auteurs ont su relever avec qualité au travers des 22 chapitres de ce livre.
Les auteurs
Tim Boudreau, aujourd'hui évangéliste pour la plateforme,il fût un des auteurs du premier livre sur Netbeans RCP; Jaroslav Tulach, garant du projet OpenIDE, il fût un des fondateurs de Netbeans dans les années 1997; enfin Geertjan Wielenga, rédacteur technique des branches module et RCP de Netbeans, son blog https://blogs.oracle.com/geertjan/ n'est plus à présenter aux développeurs ayant déjà utilisé la plateforme.
La critique
Le livre commence par 4 chapitres proposant de faire nos premiers pas avec Netbeans et l'architecture modulaire. Vous y découvrirez d'abord comment créer un nouveau module, puis comment il est structuré (layer.xml, bundle.properties, …). Les auteurs décrivent ensuite les intérêts à découper une application en plusieurs modules et les avantages que Netbeans apporte dans ce domaine : les différents types de modules qui coexistent au sein du contrôleur et les différentes façons de les faire communiquer.
Les 7 chapitres suivants détaillent les principales API au coeur de Netbeans. Vous découvrirez la puissance des Lookups, fournissant entre autre un moyen de dialoguer entre modules, les Filesystems offrant un accès unifié aux sources de données (répertoire/ fichier, jar, xml, …) et l'intégration d'une structure d'information grâce aux Nodes. C'est aussi au travers de ces chapitres que vous apprendrez à utiliser les vues de Netbeans, à organiser les fenêtres et à adapter l'interface en fonction des éléments sélectionnés.
Suivent 8 chapitres qui traitent des API plus spécifiques à l'IDE. Tout d'abord vous apprendrez à réaliser un support complet d'un type de fichier dans l'éditeur de code, exemple basé sur les fichier manifest (.mf) : vues multiples et représentation graphique, coloration syntaxique, auto complétion, liens inter document, mise en évidence des erreurs et drag & drop grâce à la palette. Puis vous verrez comment apporter une meilleure expérience utilisateur avec le panneau des options, la mise à disposition d'une documentation et le centre de mise à jour.
Pour finir, les 4 derniers chapitres proposent une approche plus concrète des concepts étudiés tout au long du livre. Vous verrez tout d'abord avec quelle facilité il est possible d'ajouter le support d'un framework au projet Web standard ; Comment faire communiquer un module et un WebService avec moins de 10 lignes de codes ; Pour finir, 2 exemples fonctionnels complets sont détaillés : le support de l'outil Tidy via un plugin Netbeans et une application RCP de manipulation d'une bande sonore. Le livre se clôt enfin par 3 appendices ciblés sur les bonnes pratiques de design et de performances à privilégier lors du développement de module Netbeans.
En conclusion, ce livre est une parfaite introduction à la prise en main de la plateforme Netbeans. On peut regretter l'oubli des Wizards, formulaire à étapes multiples, bien qu'introduits dans plusieurs chapitres (et sur le blog de Geertjan). Néanmoins ce livre couvre les aspects vitaux pour maîtriser la puissance de la plateforme. Il englobe aussi la version 5,5 et chaque point est décrit par un code source clair et illustré (aussi dispo sur le cdrom). Captivant, structuré et d'un anglais largement abordable, ce livre est indispensable à tous les développeurs de plugins et d'applications RCP et je le conseille vivement aux personnes qui souhaitent en connaître davantage sur la plateforme.
SCJP
Sun Certified Programmer for Java 5: (Exam 310-055)
Résumé de l'éditeur
Exam Objective Highlights in every chapter point out exam objectives to ensure you're focused on passing the examReal-world exercises--Step-by-step instruction modeled after the hands-on exam questions.
Exam Watch sections in every chapter highlight key exam topics covered.
Simulated exam questions match the format, tone, topics, and difficulty of the real exam.
Covers all exam 310-055 topics, including:
- Declarations and Access Control
- Object Orientation
- Assignment and Initialization
- Operators
- Flow Control, Exceptions, and Assertions
- I/O, Formatting, and Parsing
- Generics
- Collections
- Inner Classes
- Threads
- Java Development
The best fully integrated study system available.
CD-ROM includes:
Complete MasterExam practice testing engine, featuring:
- One full practice exam
- Detailed answers with explanations
- Score Report performance assessment tool
- Electronic book for studying on the go
- Bonus downloadable MasterExam practice test (with free online registration)
Édition : McGraw-Hill/Osborne Media - 825 pages, 1re édition, 1er décembre 2005
ISBN10 : 0072253606 - ISBN13 : 9780072253603
Broché
- Language Fundamentals
- Declarations and Access Control
- Operators and Assignments
- Flow Control, Exceptions, and Assertions
- Object Orientation, Overloading and Overriding, Constructors, and Return Types
- Java.lang-The Math Class, Strings, and Wrappers
- Objects and Collections
- Inner Classes
- Threads
- Development
- APPENDIX: About the CD
Donc si c'est un livre pour apprendre le language Java que vous cherchez, passez votre chemin.
Cela étant dit, ce livre très utile et très intéressant, les deux auteurs du livre sont les co-créateurs de l'examen et donc connaissent très bien le sujet traité par le livre
Fréquemment ils mettent en avant ce qui est important de savoir, tout comme ils informent le lecteur lorsqu'un sujet est hors propos pour la certification.
Le livre en lui même est très agréable à lire, malgré des sujets parfois difficiles à appréhender. Personnellement j'ai dévoré ce livre une première fois, pour le relire par après plus en détail.
L'organisation du livre quant à elle est très clair. Un chapitre reprend un sujet important pour le décortiquer en détail.
Et pour chacun chaque section, un lien est fait vers le ou les objectifs de la certification que celle-ci couvrera.
En fin de chapitre est présent un "Two-Minute Drill", un rappel très succint des informations traités par le chapitre, et un mini test de tester vos acquis sur les sujets du chapitre.
En fin de livre, un examen blanc complet est présent, celui-ci contient des questions du même style que celles qui seront posées durant l'examen.
Enfin, un examen supplémentaire est disponible sur le CD-Rom accompagnant le livre, ainsi qu'un autre en téléchargement sur le site du livre.
En conclusion, je dirai que pour ma part ce livre à répondu à son objectif, c'est grâce à lui que j'ai réussi mon examen SCJP 5.
Eclipse et JBoss
Résumé de l'éditeur
Édition : Eyrolles - 629 pages, 1re édition, 1er mars 2005
ISBN10 : 2212114060 - ISBN13 : 9782212114065
- Développement et déploiement J2EE avec Eclipse et JBoss
- L'étude de cas WebStock
- Développement Web avec MyEclipse
- Développement EJB avec JBoss, MyEclipse et XDoclet
- Aspects avancés de JBoss
Programmation Orienté Aspect pour Java / J2EE
Résumé de l'éditeur
La programmation orientée aspect (POA) fait partie, comme la programmation orientée objet (POO), de la lignée des techniques de programmation qui ont permis de simplifier l'écriture des programmes informatiques, en les rendant plus modulaires et plus faciles à faire évoluer. Complémentaire et non concurrent de la POO, la POA peut être implémentée sous forme d'extension à n'importe quel langage existant.
Des concepts de la POA aux implémentations avec Java/J2EE
Écrit par trois experts français qui conjuguent une triple expérience du sujet - recherche théorique, conception d'outils logiciels et mise en oeuvre en entreprise -, cet ouvrage est structuré en quatre parties. La première partie présente les principes de la POA et introduit les concepts d'aspect, de coupe, de point de jonction, etc. La deuxième partie décrit les principaux outils de POA du monde Java : AspectJ, JAC (Java Aspect Components), JBoss AOP et AspectWerkz. La troisième partie présente plusieurs exemples d'applications types dans lesquelles s'exprime tout le potentiel de la POA. L'ouvrage s'achève sur une étude de cas détaillée montrant comment implémenter la POA dans une application J2EE existante, aussi bien au niveau de la couche métier que de la couche présentation.
Édition : Eyrolles - 446 pages, 1er avril 2004
ISBN10 : 2212114087 - ISBN13 : 9782212114089
1. Introduction : limites de la programmation objet et apports de la POA
2. Notions d'aspect, de coupe, de code advice, de point de jonction…
Principaux outils de POA du monde Java
1. AspectJ
2. JAC (Java Aspect Components)
3. JBoss AOP
4. AspectWerkz
5. Comparaison des outils de POA
Applications de la POA
1. Implémentation des design patterns
2. Qualité de service des applications : design par contrats, tests, supervision des applications
3. Serveurs d'applications et POA
Étude de cas détaillée
1. Utilisation de la POA dans une application J2EE : couches métier, client et présentation
J'ai apprécié l'approche pragmatique de cet ouvrage, chaque solution est présentée avec une même structure dans ses sous-chapitres. Les solutions sont ensuite utilisées par la suite pour présenter les cas d'utilisation (même si au cours de la lecture j'ai ressenti la préférence des auteurs pour leur bébé JAC). Vous trouverez également dans cet ouvrage des explications sur comment appliquer la POA à votre proche métier ou dans vos techniques habituelles et conventionnelles de programmation. Un bon point pour le style d'écriture des auteurs, l'attention du lecteur est bien entretenue et sa compréhension améliorée. La mise en page est bien conçue dans l'ensemble, les codes sources sont disponibles sur le site de l'éditeur, bref tous les ingrédients sont là.
Ce livre constitue donc, à mon sens une bonne introduction sur le sujet de la POA : assez général pour couvrir un spectre de plusieurs outils, et détaillé pour vous accompagner à comprendre et utiliser les solutions présentées pour une application concrète dans vos projets. Malgré tout (mais je ne pense pas que les auteurs avaient la prétention d'être exhaustif), pour aller plus loin une exploration unitaire des frameworks présentés sera nécessaire. Au final, un livre que je vous conseille pour découvrir la POA.
Un soin particulier est apporté à la description des design patterns réécrits en utilisant ce nouveau paradigme, ainsi qu'à l'installation des outils utilisés dans l'ouvrage.
Enfin, l'étude de cas complète permet de fixer les idées afin de maîtriser le concept.
Ce (gros) livre de 446 pages s'avère très complet et permettra au novice de la POA comme à l'expert de trouver ce qu'il cherche. Attention toutefois, une maîtrise parfaite du paradigme objet est nécessaire pour le comprendre aisément.
En conclusion, un ouvrage à recommander aux programmeurs Java / J2EE professionnels désireux d'évoluer.
Eclipse
Principes, patterns et plugins
Résumé de l'éditeur
Ce livre aborde non seulement les processus de codage, mais il donne également des conseils et des astuces d'expert pour accélérer votre prise en main. Un exemple complet, qui illustre toutes les phases à parcourir, de la conception globale à la réalisation d'un logiciel qualifié, ainsi que les règles d'or d'Eclipse concernant la création d'extensions, vous aideront à concevoir vos propres contributions.
Vous apprendrez notamment à : Créer un plug-in en moins d'une heure ; Utiliser le plug-in de tests automatisés JUnit ; Concevoir une interface de test ; Employer les patterns comme outils d'investigation ; Gérer les exceptions.
Édition : Campus Press - 450 pages, 1re édition, 20 juillet 2004
ISBN10 : 2744017264 - ISBN13 : 9782744017261
- Configuration préalable d'Eclipse
- Programme de bienvenue
- Plan
- Contribution d'un élément de menu pour les tests
- Codage du comportement de la commande de test
- Affichage des résultats
- Définition d'un point d'extension
- Notification d'une extension
- Publication d'une extension
- Une vue des résultats
- Contributions de menus
- Echecs des tests et erreurs de compilation
- Echecs comme marqueurs
- Recherche des tests
- Builders et natures
- Propriété d'auto-test
- Gestion des exceptions
- Résolution d'un marqueur
- Vue du rapport de test avec JFace
- Editeur simple pour exclure des tests
- Retour sur ResultView pour observer les changements
- Perspectives
- Système d'aide du plug-in
- Internationalisation et ergonomie
- Publication d'un plug-in
- Core Runtime : l'Adaptable
- Espace de travail et ressources
- Noyau Java
- Le Kit de composants SWT
- JFace : structure d'interface utilisateur
- Le plan de travail Workbench
- Configuration préalable d'Eclipse
- Programme de bienvenue
- Plan
- Contribution d'un élément de menu pour les tests
- Codage du comportement de la commande de test
- Affichage des résultats
- Définition d'un point d'extension
- Notification d'une extension
- Publication d'une extension
- Une vue des résultats
- Contributions de menus
- Echecs des tests et erreurs de compilation
- Echecs comme marqueurs
- Recherche des tests
- Builders et natures
- Propriété d'auto-test
- Gestion des exceptions
- Résolution d'un marqueur
- Vue du rapport de test avec JFace
- Editeur simple pour exclure des tests
- Retour sur ResultView pour observer les changements
- Perspectives
- Système d'aide du plug-in
- Internationalisation et ergonomie
- Publication d'un plug-in
- Core Runtime : l'Adaptable
- Espace de travail et ressources
- Noyau Java
- Le Kit de composants SWT
- JFace : structure d'interface utilisateur
- Le plan de travail Workbench
A la vue de la biographie des auteurs on s'attend à un livre d'un très bon niveau, et c'est le cas. Ce livre vous permet d'entrer dans le monde d'Eclipse de manière progressive, logique et pratique. Même si l'entrée en matière est progressive, ce livre s'adresse à un public averti ayant déjà de solides bases en Java et plus généralement en programmation orientée objet.
Je suis assez sensible à la manière dont les sujets sont organisés dans un livre : les chapitres sont souvent courts, ne traitant qu'un sujet à la fois, on ressent ici le talent des auteurs en terme de modélisation. Par conséquent, ce livre est probablement le meilleur moyen pour commencer à développer des plugins Eclipse.
Alors pourquoi seulement la moyenne pour ce livre ? Pour les choix de traduction qui ont été faits :
Les plus :
- Les copies d'écran utilisent une version française (d'ailleurs ce choix ne tient pas sur la longueur du livre) ;
- Les noms des Design Pattern, ainsi que le nom des règles qui sont les fondements sur lesquels se base Eclipse, ont été traduits. On se retrouve à aller chercher la traduction anglaise (qui est quand même fournie dans le livre) pour comprendre de quoi ils parlent. Ce choix me paraît une vrai fausse bonne idée.
J'ai trouvé ces choix très déstabilisant et cela m'a vraiment gaché la lecture. Ils encouragent à regarder le code existant, or ce code est en anglais ! Il me parait utopique de penser que l'on puisser contribuer à Eclipse sans être capable d'au moins se retrouver dans une documentation dans la langue de Shakespeare.
Il est clair que ce livre ne couvre pas la totalité du sujet, bien trop immense au vue du sujet. Cependant, il permet par la suite de se retrouver plus aisément dans la documentation de Eclipse.
En conclusion, je dirais que la traduction trahit l'esprit du livre, et je recommanderais plutôt sa VO !
Bien sûr, cela nécessite une connaissance déjà avancée du langage Java, et des notions de développement GUI avec SWT/JFace seraient un plus pour aborder ce livre, mais on peut apprendre sur le tas.
Parlons un peu des deux auteurs : Erich Gamma et est un des quatre auteurs du livre design patterns, communéments appelés le GoF (pour Gang of Four ).
C'est aussi l'un des initiateurs de l'environnement de tests unitaires en Java JUnit, et de l'IDE Eclipse.
Quant à Kent Beck, c'est LE môssieur de l'eXtreme Programming ! Autant vous dire qu'ils savent ce qu'ils racontent.
D'ailleurs, sachez que le projet autour duquel ce livre s'articule est un plugin, simple, certes, mais pleinement fonctionnel, intégrant une interface graphique claire et implémentant JUnit sous Eclipse.
Cela doit se ressentir, j'adore ce livre. Je l'ai lu deux fois et il reste mon livre de référence pour le développement de plugins simples.
Ce n'est pas un ouvrage vraiment de référence mais un GROS tutoriel pourrait-on dire, bourré de détails et dont la méthode d'apprentissage ne lasse pas.
Les Cahiers du programmeur Swing
Résumé de l'éditeur
Cet ouvrage décrit la création d'un logiciel libre d'aménagement d'intérieur développé avec Java 5 et Swing, de sa conception UML jusqu'à sa ditribution, en passant par l'utilisation d'Eclipse, dont les astuces de productivité sont dévoilées. Le développeur y découvrira comment exploiter efficacement les nombreuses fonctionnalités de Swing : création d'arbres, de tableaux et de boîtes de dialogue, dessin dans un composant graphique, glisser-déposer, gestion d'opérations annulables, intégration d'un composant 3D, …
Édition : Eyrolles - 499 pages, 1re édition, 7 décembre 2006
ISBN10 : 2212120192 - ISBN13 : 9782212120196
Broché
- L'étude de cas : Sweet Home 3D
- Mise en place de l'environnement de développement
- Choix technique : Swing ou SWT ?
- Arbre du catalogue des meubles
- Tableau des meubles du logement
- Modification du tableau des meubles avec MVC
- Gestion des actions annulables
- Composant graphique du plan
- Vue 3D du logement
- Enregistrement et lecture du logement
- Glisser-déposer et copier-coller
- Edition des préférences utilisateur
- Bibliographie
- Index
Un bon point pour commencer, le sommaire complet et les titres de chapitres détaillés permettent d' accéder rapidement à l'information. Ensuite pour chaque chapitre, les grands thèmes couverts sont annoncés, on sait donc d'avance ce que l'on va découvrir, c'est structuré et ça suscite l'envie de lire. Pour la matière, toutes les phases de création du projet Sweet Home 3D sont présentées : on débute par l'idée et les phases inhérentes au démarrage d'un projet (cahier des charges, conception…), puis l'installation des outils de développement, la programmation proprement dite et les cycles de tests associés pour finir avec le déploiement de l'applicatif. Le comparatif avec d'autres API graphiques (AWT, SWT, JFace) est le bienvenu pour expliquer les choix qui peuvent conduire à l'utilisation ou non d'un des outils. On pourra lire également sur chaque page des petits encarts pour agrémenter les explications du livre (B.A.-BA, A retenir, Astuces, Pour aller plus loin, Attention…)
Ce livre ne traite donc pas uniquement de Swing et on puisera énormément d'informations sur (entre autres) :
- Les fondations d'un projet informatique (cahier des charges, référentiel des sources)
- Les nouveautés de Java 5 (annotations, généricité,)
- Les designs patterns (MVC, Singleton, Décorateur, Proxy…)
- Le déploiement avec Java Veb Start
- ANT
Le livre expose des extraits de code commentés sur l'implémentation de l'application, des scénarios fonctionnels, des diagrammes de classes UML et des copies d'écrans pour illustrer les différentes étapes. J'ai cherché ce qui pouvait manquer dans le contenu mais tout est là.
C'était une découverte de la collection "Les cahiers du programmeur", et je dois dire que j'ai été enchanté tant par la qualité du contenu technique que par la pédagogie adoptée pour tenir le lecteur en haleine, mais aussi par la mise en page très riche et lisible à la fois. Je donne donc la note maximale et je ferai simple pour la conclusion : tous les livres devraient être comme ça, vous pouvez donc l'acheter les yeux fermés !
Mon avis aurait donc pu être faussé.
C'est la raison pour laquelle j'ai attendu que quelqu'un d'autre fasse une critique de ce livre, avant de publier la mienne :-).
Ce livre est le seul que j'ai lu jusqu'à ce jour qui explique aussi clairement comment développer une application Swing en utilisant le modèle MVC tout en faisant bien la distinction entre le modèle MVC de votre application et le modèle MVC (ou plutôt M-VC) des composants Swing.
Attention que ce livre n'est pas là pour vous faire découvrir tous les composants Swing qui sont à votre disposition, mais plutôt pour vous faire découvrir comment bien découper/structurer votre application Swing.
Malgré cela, on y apprend l'utilisation des JTable, JTree, …, à afficher le même modèle sous des vues différentes (on visualise la même pièce en 3D, en 2D et sous forme de table), implémenter l'Undo/Redo, le Drag and Drop, l'internationalisation d'une application, …
On y apprend de plus comment découper un projet, comment les personnes ont raisonné pour finalement arriver au design de cette application.
Tout au long de l'ouvrage, l'auteur compare également Swing et AWT avec SWT et JFace, nous fait découvrir des modules Eclipse intéressants.
L'étude de cas que l'auteur a choisi pour ce livre est certainement pour beaucoup dans la qualité de l'ouvrage.
Dès le premier chapitre, on a envie d'en savoir plus, de connaitre comment l'auteur s'y est pris pour réaliser son étude de cas.
Sachez également que l'auteur a aussi mis son étude de cas à la disposition de tous, sous licence open source, et qu'elle est totalement opérationelle.
En conclusion, je ne peux que conseiller ce livre à tous ceux qui programment ou désirent programmer en Swing.
Ce livre me semble assez unique dans sa façon d'aborder Swing.
Pourquoi je ne donne que 4.5/5 à ce livre ? C'est la question que l'auteur m'a posée.
Je lui ai répondu que je mettrais 5/5 au livre qui m'expliquerait Swing à la façon "Head First/Tête première". Et le système des étoiles ne me permet pas de lui donner 4.9/5.
Ceci est surtout du à la structure qu'a utilisée l'auteur pour écrire ce livre. Il n'en a pas fait un simple catalogue Swing montrant toutes les méthodes et classes de Swing et leur utilisation; il crée plutôt un projet qu'on va faire avancer tout au long du livre en lui ajoutant de nouvelles fonctionnalités. En plus de toutes les informations techniques que l'on obtient durant la lecture des différents chapitres, l'auteur nous fait aussi part de son expérience dans le travail en groupe et le développement de projet. En effet, on va voir comment découper le projet en plusieurs scénarios bien distincts, comment appliquer la méthode XP, comme utiliser CVS pour archiver et partager les fichiers du projet, etc. L'auteur va aussi traiter de la différence SWT/SWING/AWT.
Les domaines techniques abordés par cette application sont très vastes. On va voir comment créer des nouveaux composants Swing en respectant l'architecture MVC et comment faire une application respectant elle aussi le principe MVC. On va aussi voir comment utiliser les composants complexes que sont le JTable et le JTree. On va aussi apprendre à gérer des actions annulables dans l'application et la façon d'utiliser le glisser-déposer dans votre application. On passera aussi sur l'enregistrement de préférences utilisateurs et des données de l'application. En plus, on verra aussi comment visualiser une vue en 2D et en 3D !
En conclusion, je conseille ce livre non seulement à toutes personnes développant une application Swing mais aussi à toute personne développant une application graphique en Java, car ce livre dans ses métiers sait se montrer très général, de sorte que la plupart des informations sont utilisables pour une application graphique non Swing.
Mieux programmer en Java
68 astuces pour optimiser son code
Résumé de l'éditeur
Tous les programmeurs vous le diront : le temps passé au débogage représente une grande part du développement de programmes et de d'applications. Réduire cette phase de débogage, programmer "juste" du premier coup : tels sont les objectifs atteints par ce livre qui expose en détail les pièges classiques de la programmation Java et la manière de les éviter. En proposant des solutions aux principaux problèmes rencontrés en Java, l'ouvrage va droit au but : pas de discours inutiles mais des recommandations concrètes, répondant aux attentes des programmeurs.
Une structure divisée en ateliers
Les 68 ateliers qui composent cet ouvrage abordent les princpales difficultés de la programmation Java : objets, exceptions, calsses et interfaces, tests d'égalité, multithreadiing, et ce à l'aide d'une multitude d'exemples très détaillés. En toutre, 18 d'entre eux sont consacrés à la manière d'écrire un code plus performant et donc plus rapide.
A qui s'adresse ce livre ?
- Aux étudiants de 1er cycle universitaire (IUT, Deug, …) et aux élèves d'écoles d'ingénieurs.
- Aux programmeurs Java débutants, intermédiaires ou avancés.
Édition : Eyrolles - 224 pages, 1re édition, 1er juillet 2000
ISBN10 : 2212091710 - ISBN13 : 9782212091717
- Techniques générales
- Objets et tests d'égalité
- Gestion des exceptions
- Performances
- Programmation multithread
- Classes et interfaces
- Annexes
Ces astuces sont parfois plus des explications sur comment faire quelque chose qu'une réelle astuce. Mais elles sont néanmoins très intéressantes. Avec ces astuces, vous apprendrez à faire correctement des tests d'égalité, à avoir un code multithread sécurisé ou encore à gérer correctement vos exceptions. Vous apprendrez aussi à implémenter des classes constantes et à redéfinir la méthode equals.
La partie sur les performances se révèle à mon goût un peu faible. Une astuce sur l'optimisation manuelle du code s'avère très intéressante. Les autres étant plus basiques, avec par exemple l'utilisation de StringBuffer à la place de String dans une boucle. Mais cette partie traite aussi de concepts plus avancés tels que l'inlining, l'évaluation différée ou encore l'utilisation de variables de pile plutôt que de variables globales. De plus, les comparaisons entre les différentes techniques sont expliquées directement en bytecode ce qui permet de voir directement ce que ça donne.
Une chose que je trouve dommage est que ce livre n'a pas été mis à jour depuis sa première édition. Il utilise donc Java 1.2, mais la plupart des astuces présentées ici sont toujours valables avec les dernières versions de Java.
En conclusion, ce livre vous montrera différentes manières de mieux coder en Java et d'optimiser les performances de vos programmes. Mais ce livre n'est pas la solution miracle à vos problèmes de performances.
Personnellement je n'ai pas pu m’empêcher de tester ce que j'apprenais dans ce livre sur ma machine. C'est aussi très enrichissant d'essayer ces astuces sur un vrai projet (personnel et déjà finalisé de préférence) afin d'encore mieux appréhender ce qui est dit dans ce livre.
Le livre est abordable pour un débutant, qui butera certainement sur quelques chapitres comme les threads ou les exceptions s'il n'a jamais dû s'en servir, mais rien d'insurmontable.
Le dernier chapitre sur les classes et interfaces est un peu à prendre avec des pincettes étant donné l'ancienneté du livre. Mais ça reste une bonne lecture.
Commenter Signaler un problème
Il à pris un coup de vieux mais mérite quand même de l’intérêt pour les débutants. Avec ces 200 pages il est assez rapide à lire.
http://java.developpez.com/livres/in...ts#L2212091710
Les expressions régulières par l'exemple
Résumé de l'éditeur
- les solutions aux exercices du livre
- Que faire quand ça ne marche pas ?
Cet ouvrage vous apprendra comment :
- construire une expression régulière;
- enrichir votre syntaxe;
- imbriquer à bon escient des expressions régulières dans vos programmes;
- écrire des expressions régulières en Perl, Javascript, PHP, Java,C#, Python,C++/Qt, Emacs/Lisp, C/POSIX, Grep et Sed.;
44 exercices corrigés en détail, de très nombreux exemples, des tableaux aide-mémoires et une grille d'aide au débugage vous amèneront à une maîtrise complète de cet outil efficace, ludique et polyvalent.
Édition : Technique & Pratiques - 126 pages, 1re édition, 1er juillet 2005
ISBN10 : 2914010656 - ISBN13 : 9782914010658
- Avant propos
- Qu'est ce qu'une expression régulière
- Débuter avec les expressions régulières
- Enrichir ses expressions régulières
- Bien utiliser les expressions régulières
- Syntaxe dans dix langages
- Solutions des exercices
- Que faire quand ça ne marche pas?
L'approche est progressive. Le premier chapitre introduit par un exemple simple les différentes notions.
Le deuxième chapitre va un peu plus loin en expliquant le fonctionnement des différents opérateurs basiques.
Le chapitre 3 explique de manière plus concrète les expressions régulières via des cas d'utilisations.
Le chapitre 4 donne des conseils de bonnes pratiques avec les expressions régulières.
Le chapitre 5 fait un tour d'horizon des langages proposant des outils pour les expressions régulières.
Deux annexes dans ce livre :
- les solutions aux exercices du livre
- que faire quand ça ne marche pas !
Spring par la pratique
Résumé de l'éditeur
Cet ouvrage montre comment développer des applications Java/J2EE professionnelles et performantes grâce à Spring, associé à d'autres frameworks populaires telles que Struts, Hibernate ou Axis. Spring s'appuie sur des concepts modernes, tels que la notion de conteneur léger, l'inversion de contrôle ou la programmation orientée aspect, afin d'améliorer l'architecture des applications Java/J2EE en les rendant plus souples, plus rapides à développer et plus facilement testables.
Un livre pratique illustré d'une étude de cas détaillée.
L'ouvrage présente les concepts sur lesquels reposent Spring avant de détailler les différentes facettes du développement d'applications Web avec Spring : couche présentation (Struts, Spring MVC, Spring Web Flow, portlets, applications Ajax), persistance des données et gestion des transactions, intégration avec d'autres applications et sécurité applicative.
L'accent est mis tout particulièrement sur les bonnes pratiques de conception et de développement, qui sont illustrées à travers une étude de cas détaillée, le projet Open Source Tudu Lists.
Édition : Eyrolles - 518 pages, 1re édition, 1er avril 2006
ISBN10 : 2212117108 - ISBN13 : 9782212117103
Broché, 19 x 23 cm
- Remerciements
- Avant-propos
- Introduction
Les fondations de Spring
- Les concepts des conteneurs légers
- Le conteneur léger de Spring
- Les concepts de la POA
- Spring AOP
Intégration des frameworks de présentation
- Intégration de Struts
- Spring MVC
- Spring Web Flow
- Utilisation d'AJAX avec Spring
- Support des portlets
Gestion des données
- Persistance des données
- Gestion des transactions
Technologies d'intégration
- Technologies d'intégration Java
- Technologies d'intégration XML
- La sécurité avec Acegi Security
Les outils connexes
(list][*]Supervision avec JMX[*]Test des applications Spring[*]Annexe[*]Index[/list]
Ce livre conviendra donc aux débutants, qui y trouveront de nombreux exemples sur la manipulation des différents connecteurs de Spring, mais l'expert y trouvera peu d'intérêt, le plan choisi étant volontairement trés général.
C'est donc avec sceptiscime que j'ai accueilli le premier livre francophone sur ce framework : Serait-ce une simple traduction/adaptation des versions anglaises? Possèdera-t-il une valeur ajoutée ?
Au final, j'ai été séduit ! Ce livre est très bien écrit, agréable à lire et aborde les sujets les plus fréquents dans le développement J2EE. De plus, il décrit non seulement des fonctionnalités propres à Spring 2.0 mais aussi l'intégration avec un framework Ajax (DWR). C'est le premier livre que j'ai pu lire à avoir traité ces derniers points.
Le livre se base sur une application réelle, Tudu List, qui est proposée sous différents frameworks de présentation : Struts, Spring MVC, Spring WebFlow, Portlet.
Cela permet de voir comment Spring est mis en pratique sur un projet complet. C'est, à mon avis, parfois plus intéressant que d'essayer de comprendre une portion de code dénuée de contexte.
Je conseille donc ce livre à toute personne qui désire découvrir Spring Framework, le livre introduisant la notion de conteneur légers, la programmation orientée aspect pour ensuite présenter de manière plus technique les possibilités de Spring.
En effet, il passe rapidement sur les considérations de modélisation ou de structuration d'une application pour directement aborder les multiples façons d'utiliser Spring, notamment du fait de ses nombreux connecteurs. Il en couvre d'ailleurs la plupart je pense, ce qui est une bonne chose.
Aussi, l'ensemble du livre est très orienté technique, allant même jusqu'à détailler les balises xml. Cela peut s'avérer très utile si vous êtes non anglophone, un peu moins sinon, vu que la doc Spring est très bien foutue.
Au final, je suis resté sur ma faim concernant la modélisation et la façon de travailler. Certes, plein de solutions techniques sont abordées, mais le "comment construire son application" autour de Spring n'est pas assez approfondi je trouve. Ce qui est dommage, je trouve, vu que Spring apporte une vraie révolution en termes de conception (à mes yeux du moins). D'où mon 4.
Ce livre présente un tour d'horizon du framework Spring. Mais il fait plus que de vous donner une idée, il vous montre comment l'utiliser. Si ce livre s'appelle "Spring par la pratique" c'est qu'il s'appuie entièrement sur une application écrite à l'occasion : TUDU List. Vous pouvez voir cette application sur le site : http://app.ess.ch/tudu/welcome.action . Différentes versions de cette application ont aussi été créées correspondant aux différentes technologies présentées dans le livre.
La première partie du livre commence par présenter les problématiques de la programmation Java et Java EE (séparation de préoccupation, test, indépendance de la plateforme et du serveur…). Ensuite il présente brièvement les réponses qu'apporte Spring avec la notion de conteneur léger et de POA. Enfin il présente brièvement l'application TUDU List qui sert de fil rouge au livre.
On trouve ensuite 4 chapitres très denses en informations. Le premier revient en détail sur les conteneurs léger et les notions d'inversion de control et d'injection de dépendance. Le second présente Spring en tant que conteneur léger et son utilisation. Le troisième présente la POA et enfin le quatrième l'intégration de la POA dans Spring.
Ensuite le livre aborde les différentes technologies et frameworks utilisés en Java EE et reprend la même structure tout du long :
- Présentation sommaire de la technologie
- Intégration dans Spring
- Intégration dans TUDU List
Par exemple dans le cas de Struts, les auteurs commencent par présenter le framework en définissant MVC2, les actions et les FormBeans, ensuite ils présentent les trois possibilités d'intégration de Struts dans Spring, enfin ils présentent la solution utilisée dans TUDU List avec des morceaux de code et de fichiers de configuration.
Le livre aborde donc successivement tous les aspects : framework de présentation (Struts, Spring MVC, Spring WebFlow, Ajax et Portlets), gestion des données (persistance, transactions), l'intégration (JMS, JCA, XML, Acegy Security) et enfin les outils connexes (supervision avec JMX et test).
Même si certains points mériteraient d'être plus détaillés, ce livre est indispensable pour qui veut un aperçu complet de ce que peut lui apporter Spring et de ce que va lui coûter sa mise en oeuvre. On peut déplorer que parfois les extraits de code soient trop courts pour permettre de bien comprendre où ils se situent et nécessitent de se reporter aux codes sources de l'application. Cela rend obligatoire le fait d'avoir un ordinateur sous la main, ou de laisser des commentaires si l'on est coincé dans un train.
Aide-Mémoire de Java
Résumé de l'éditeur
Édition : Dunod - 246 pages, 1er septembre 2005
ISBN10 : 2100491458 - ISBN13 : 9782100491452
Ce petit livre couvre succinctement l'essentiel de la programmation Java, avec à la fois les explications sur le fonctionnement fondamental de chaque fonctionnalité et des exemples pertinents.
Bien sûr, si vous voulez aborder un aspect bien spécifique, ce livre ne vous sera pas suffisant, mais il offrira sans doute déjà assez d'informations pour bien débuter. De toutes façons, jamais un livre généraliste sur Java ne donnera jamais assez d'éléments sur un point précis des très vastes bibliothèques disponibles.
Au final : un must have.
Cet aide-mémoire, de petit format, devrait être tout le temps dans votre poche.
Dès les premières pages de cet aide-mémoire, je fus surpris par sa qualité tant du point de vue du texte, que du point de vue des bouts de code Java donnés.
Ainsi, d'entrée de jeu (chapitre 1 et 2), on vous apprend comment afficher la date du jour dans un format donné, la nouvelle boucle ForEach, la classe StringBuilder, la classe Collator (Est-ce que Éléonor précède Fabian ou pas ?), les énumérations (enum).
J'aime également beaucoup la façon dont les auteurs vous expliquent les mécanismes de la programmation par objet, la généricité (nouveauté du JDK 5.0) et le contrôle d'exécution.
Le chapitre 8, dédié aux API Java, aborde les collections, les tables, les URL et Sockets, AWT, Swing et les applets. Cela ne couvre évidemment pas tout ce qu'un livré dédié à Swing pourrait couvrir, bien évidemment, mais vous y avez vraiment l'essentiel (composants, événements, conteneurs et systèmes d'agencement (layout))
Dans le dernier chapitre (le 9), ils y ont même consacré une petite partie sur la sécurité, et l'utilitaire policytool.
J'oubliais également la partie consacrée aux entrées-sorties, ainsi que celle consacrée aux threads.
Quand je vous dis que malgré sa petite taille, il couvre une multitude de choses, je n'exagère pas. Ce n'est pas un ouvrage de référence, qui passe en revue toutes les API du JDK. Mais un excellent aide-mémoire, illustré abondamment d'extraits de code, très bien pensés.
Un excellent rapport qualité/prix
Refactoring des applications Java/J2EE
Résumé de l'éditeur
Édition : Eyrolles - 349 pages, 1er septembre 2005
ISBN10 : 2212115776 - ISBN13 : 9782212115772
- Remerciements
Avant-propos
- Objectifs de cet ouvrage
- Organisation de l'ouvrage
- A propos des exemples
- A qui s'adresse l'ouvrage ?
Chapitre 1: L'évolution logicielle et le refactoring
- La problématique de l'évolution logicielle
- Le périmètre d'intervention du refactoring
- Le refactoring au sein des méthodes agiles
- Conclusion
Chapitre 2: Préparation du refactoring
- La gestion de configuration
- Gestion des tests et des anomalies
- Conclusion
Chapitre 3: L'analyse du logiciel
- L'analyse quantitative du logiciel
- L'analyse qualitative du logiciel
- Sélection des candidats au refactoring
- Conclusion
Chapitre 4: Mise en oeuvre du refactoring
- Support du refactoring de code dans Eclipse
- Les techniques de refactoring du code
- Conclusion
Chapitre 5: Les tests unitaires pour le refactoring
- Les tests unitaires avec JUnit
- Les simulacres d'objets avec EasyMock
- Analyse de couverture avec EMMA
- Utilisation des test unitaires pour le refactoring
- Conclusion
Chapitre 6: Le refactoring avec les design patterns
- Les design patterns
- Utilisation des modèles comportementaux
- Amélioration de la structure des classes
- Conclusion
Chapitre 7: Refactoring avec la POA (Programmation Orientée Aspect)
- Principes de la programmation orientée aspect
- Modularisation des traitements
- Optimisation des traitements
- Analyse du logiciel et tests unitaires
- Conclusion
Chapitre 8: Refactoring de base de données
- La problématique du refactoring avec les bases de données
- Refactoring de la structure de la base
- Refactoring des requêtes SQL
- Refactoring de l'utilisation de JDBC
- Conclusion
Chapitre 9: Présentation de l'étude de cas
- Cahier des charges du logiciel
- JGenea, une solution Java pour le généalogie
- Architechture de JGenea Web
- Récupération de JGenea Web
- Fonctionnalités d'Éclipse utiles pour l'étude de cas
- Conclusion
Chapitre 10: Analyse de JGenea Web
- Analyse quantitative
- analyse qualitative
- Conclusion
Chapitre 11: Refactoring de JGenea Web
- Réorganisation et mise à niveau
- Application des techniques de base
- Utilisation des Design Patterns dans la gestion des accès aux données
- Modularisation avec un aspect
- Pour aller plus loin
Annexe
- Installation d'Eclipse
- Installation de PMD sous Eclipse
- Installation de Checkstyle sous Eclipse
- Installation de Metrics sous Eclipse
- Téléchargement d'EMMA
- Téléchargement du client CVS pour Windows
- Téléchargement de StatCVS
- Téléchargement de Tomcat
- Installation et configuration du plugin Tomcat de Sysdeo pour Eclipse
- Installation du plug-in AJDT pour Eclipse
- Script DDL de JGenea Web
- Références
De plus, les façons d'analyser l'existant sont bien expliquées, et de nombreux outils sont proposés pour arriver à nos fins. Bien qu'il date de 2005, son contenu reste tout à fait d'actualité.
Après, j'ai trouvé que ça s'est gâté. On passe de hors sujet en hors sujet, même si ceux-ci s'avèrent agréables à lire. Une bonne partie du livre nous explique comment utiliser Eclipse pour renommer les méthodes, réorganiser le contenu des classes, présente quelques design patterns et la POA, la façon d'écrire des tests unitaires… Je trouve qu'on s'écarte souvent du sujet principal.
J'espérais trouver un livre dans lequel obtenir plus d'informations sur la manière de refondre le code plus en profondeur. Ceci dit, le livre précise bien qu'un refactoring s'applique à du code dont les fondements sont sains, mais cela ne suffit pas à combler ma déception.
La lecture de ce livre n'aura cependant pas été une perte de temps, car de nombreuses idées traversent l'esprit pendant la lecture de ce dernier par rapport à mon cas personnel, et les techniques/outils présentés le sont très bien.
Il présente une approche progressive du refactoring. On commence avec les choses de bases (renommage de variable, changement de nom de méthode) pour finir sur des choses plus compliquées (applications de pattern, refactoring de la base de données …). L'approche est très graduelle, on ne se sent pas perdu et les outils (audit de code ou test) sont clairement expliqués.
Ce qui est intéressant, c'est que l'auteur pose toutes les conditions pour que cela se passe bien. Il explique comment déterminer les points sensibles qui seront soumis à refactoring, comment s'assurer que le comportement du logiciel sera le même après refactoring. Il détaille bien les outils de mesures mais aussi leur piège et faux positifs. Pour chaque technique il indique quand l'utiliser et quels sont les risques qui lui sont propres. Par exemple, vous avez sans doute déjà utilisé les fonctions de renommage de votre IDE, mais qu'en est-il en cas de chargement dynamique de la classe ou d'introspection sur la méthode ?
Chaque technique est accompagnée d'un exemple et de capture d'écran pour Eclipse.
Enfin, ce qui ajoute beaucoup de valeur à ce livre, c'est l'étude de cas qui occupe environ un cinquième du volume. On a tous lu des livres avec des exemples (parfois à peine plus complexes qu'un "Hello World"). On pense avoir compris et quand on arrive sur un vrai cas, on se pose encore des questions, on hésite, on ne sait plus … Ici l'étude de cas se fait sur une vraie application, pas juste trois classes et deux JSP. Cette étude de cas permet de mettre en application les techniques décrites dans la première partie de façon guidée. Et si vous ne voulez pas faire les premières étapes (renommage) mais uniquement la refonte des DAO ou des actions Struts, il existe une version de chacune des étapes sur le CVS.
En conclusion, un livre obligatoire à lire si l'on se retrouve un jour avec du code hérité.
Ce livre est un bijou, une merveille, un joyau.
Je me suis vraiment régalé à la lecture de ce livre. Il commence tout d'abord par vous expliquer la raison d'être du refactoring, ce que c'est et ce que ce n'est pas.
Ensuite, il vous explique les préparations à faire (création de branches, de clichés, s'assurer qu'on a bien les tests unitaires, …) avant d'effectuer un refactoring de votre application.
Puis, il vous explique la mise en oeuvre du refactoring, à l'aide de l'EDI Eclipse.
Il vient ensuite vous montrer comment combiner les tests unitaires avec le refactoring, et l'utilisation de simulacre d'objets avec EasyMock, mais également l'analyse de couverture avec EMMA.
Toute un chapitre est également consacré aux design patterns, et comment ils peuvent vous venir en aide dans le cas du refactoring.
L'auteur aborde également, avec élégance, la problématique du refactoring avec les bases de données. Et cela est vraiment enrichissant.
La troisième partie du livre est entièrement consacrée à l'étude de cas: un programme de généalogie.
A travers cette étude de cas, l'auteur vous apprendra comment, grâce à une analyse quantitative et une analyse qualitative, trouver les parties de code nécessitant un refactoring.
Une fois ces parties détectées, il va appliquer différents refactoring appris lors de la deuxième partie du livre.
Conclusion :Sans discussion, un excellent achat.
Eh bien moi je me suis retrouvé dans le cas ou ce code ne m'appartenait pas et, qui plus est, était mal agencé pour me permettre de le faire évoluer sereinement sans devoir tout réécrire de A à Z.
Je me suis donc retroussé les manches et ai commencé à proprement parler le refactoring de l'application.
Je dois bien avouer que je ne m'en serait jamais sorti si je n'avais pas suivi les conseils précieux distillés dans cet ouvrage.
L'auteur commence d'abord par expliquer le pourquoi du refactoring.
Ensuite viennent les pré-processus indispensables pour effectuer un refactoring robuste tels que le versioning des différentes ressources, la mise en oeuvre des tests unitaires,…
Le troisième chapitre est pour moi le plus théorique. Il aborde les méthodes qui permettent d'analyser le code tant de manière quantitative que qualitative.
Je dois bien avouer que j'ai du relire ce chapitre une seconde fois pour bien comprendre à quels moments, et quels endroits du code, le refactoring devenait une nécéssité voire même une obligation.
Chapitre 4. Là, on rentre réellement dans la mise en oeuvre du refactoring. Chaque technique de refactoring abordée dans ce chapitre est basée sur un plan bien précis. Ce plan est décomposé en 4 parties :
- les objectifs de cette technique ainsi que les risques pouvant survenir
- les moyens de détection
- le refactoring proprement dit
- un exemple concret de mise en oeuvre
Le chapitre suivant traite de l'utilisation de test unitaires en combinaison avec le refactoring. Il explique également comment créer des simulacres d'objets qui permettront, comme le terme l'indique, de simuler des objets.
C'en est terminé avec la première partie de l'ouvrage.
La seconde partie traite des techniques avancées pour effectuer le refactoring d'une application telles que les design patterns, SOA.
Ce qui m'a le plus surpris dans cette partie, c'est le refactoring de la base de données.
Comme quoi on en apprend tous les jours.
La dernière partie reprend une étude de cas complète. Cette partie de l'ouvrage met en pratique la totalité des techniques abordées lors des chapitres précédents, en passant :
- par l'analyse quantitative et qualitative,
- par le refactoring de l'application,
- par la mise en oeuvre des tests unitaires
En conclusion, cet ouvrage est un petite merveille. A recommander chaudement.
Commenter Signaler un problème
Refactoring des applications Java/J2EE
Note sur une échelle de 5
3/5
Votre critique
J'ai trouvé l'ouvrage très intéressant dans ses premiers chapitres, où il expose les différents types de refactoring à considérer, les manières de les mettre en oeuvre.
De plus, les façons d'analyser l'existant sont bien expliquées, et de nombreux outils sont proposés pour arriver à nos fins. Bien qu'il date de 2005, son contenu reste tout à fait d'actualité.
Après, j'ai trouvé que ça s'est gâté. On passe de hors sujet en hors sujet, même si ceux-si s'avèrent agréables à lire. Une bonne partie du livre nous explique comment utiliser Eclipse pour renommer les méthodes, réorganiser le contenu des classes, présente quelques design patterns et la POA, la façon d'écrire des tests unitaires... Je trouve qu'on s'écarte souvent du sujet principal.
J'espérais trouver un livre dans lequel trouver plus d'informations sur la manière de refondre le code plus en profondeur. Ceci dit, le livre précise bien qu'un refactoring s'applique à du code dont les fondements sont sains, mais cela ne suffit pas à combler ma déception.
La lecture de ce livre n'aura cependant pas été une perte de temps, car de nombreuses idées traversent l'esprit pendant la lecture de ce dernier par rapport à mon cas personnel, et les techniques/outils présentés le sont très bien.
La critique en ligne
Hibernate 3.0
Gestion optimale de la persistance dans les applications Java/J2EE
Résumé de l'éditeur
Édition : Eyrolles - 317 pages, 1re édition, 1er juin 2005
ISBN10 : 2212116446 - ISBN13 : 9782212116441
19 x 2 x 23 cm
- Historique de la persistance en Java
- Principes de la persistance
- Les autres solutions de persistance
- Conclusion
- Installation d'Hibernate
- Les classes métier persistantes
- La session Hibernate
- Conclusion
- Référentiel des métadonnées
- Les fichiers de mapping
- Conclusion
- Stratégies de mapping d'héritage et polymorphisme
- Mise en oeuvre d'une association bidirectionnelle
- Les autres types d'associations
- Conclusion
- Le lazy loading, ou chargement à la demande
- Les techniques de récupération d'objets
- Conclusion
- Persistance d'un réseau d'instances
- Les transactions
- Conclusion
- La session Hibernate
- Les transactions applicatives
- Utilisation d'Hibernate avec Struts
- Gestion de la session dans un batch
- Interpréter les exceptions
- Conclusion
- Fonctionnalités de mapping liées aux métadonnées
- Fonctionnalités à l'exécution
- Les nouveaux types de mapping d'Hibernate 3
- Conclusion
- L'outillage relatif aux métadonnées
- L'outillage Hibernate Tools
- Extensions et intégration
- Conclusion
Après quelques rappels historiques et l'évocations des solutions passées et présentes, l'auteur nous fait partager toute sa connaissance d'Hibernate à travers des exemples simples et pertinents.
Suffisamment détaché de la documentation officielle, ce livre vous apprendra Hibernate 3.0 de A à Z en illustrant le propos par de nombreux exemples, dans un style agréable à lire et efficace.
Il y en a pour tous les goûts : que ce soit le débutant qui souhaite s'initier à cette solution de gestion de la persistance, le connaisseur qui est à la recherche de conseils et de bonnes pratiques, ainsi que l'expérimenté toujours à l'affût des nouveautés, améliorations, notions avancées, fonctionnalités à venir.
En conclusion, cet ouvrage complet ne devrait pas vous décevoir, et vous accompagnera dans votre démarche de gestion de la persistance avec l'une des (futures) implémentations de la norme EJB 3.0.
Retrouvez la critique complète ici.
Au coeur de Java 2, Volume 2, Fonctions avancées JDK 5.0
Résumé de l'éditeur
Édition : Campus Press - 858 pages, 1er juin 2005
ISBN10 : 2744019623 - ISBN13 : 9782744019623
- Multithreads
- Collections
- Programmation des bases de données
- Objets distribués
- Swing
- JavaBeans
- La sécurité
- Internationalisation
- Méthodes natives
- XML
- Annotations
Le 1er chapitre a été entièrement réécrit, pour aborder la nouvelle API concernant la Concurrence introduite dans la version 5 de Java. Cette nouvelle API met à votre disposition tout un ensemble de classes et interfaces vous permettant de construire plus facilement des applications mutithreads performantes que ce qui était possible jusqu'à présent.
Le second chapitre, couvrant les Collections, a été étendu pour aborde la notion de Queue, la classe PriorityQueue, …. Ce chapitre explique également les tables de hachage, et pourquoi il est important de choisir un bon code de hachage. Il aborde également la notion de Weak Reference, bien que cela soit traité de façon plus superficielle que dans le livre HardCore Java, de chez Oreilly.
J'ai une remarque négative à faire à l'encontre des traducteurs. Pourquoi ont il traduit les noms des classes et/ou interfaces en français dans les figures montrant les anciennes classes, comme Vector, Map et Properties. Mais cela ne concerne qu'une figure sur une page dans tout le livre.
Je n'ai pas eu l'impression qu'il y a beaucoup de modification concernant les chapitre 3 à 10 par rapport à l'ancienne version. Même si le chapitre sur la sécurité couvre maintenant AES et RSA, et que le chapitre XML couvre XPATH. Mais cela est assez concis et rien de tel qu'un ouvrage de référence sur XML et XPATH. Et que les exemples ont été revus. Par exemple, dans le chapitre 9, il expliquent comment appeler une méthode printf depuis Java.
Le chapitre 11 concernant les annotations est quant à lui tout à fait nouveau et vous explique en détails. Il aborde également BCEL, qui vous permet de manipuler directement du ByteCode.
Pour ceux qui possèdent une ancienne édition de ce deuxième tome , l'achat de celui ci vous sera utile si vous voulez connaitre les nouveautés introduites au niveau du Multithreading, des collections, des certificats RSA et AES, et connaitre les annotations. Pour ceux qui ne possedent pas d'ancienne édition de ce deuxième tome, je ne peux que vous conseiller ce livre de référence. En tout cas, si vous avez acheté récemment la dernière édition du Tome 1, n'hésiter pas à acheter son compagnon.
Cahiers du programmeur
Java/XML
Résumé de l'éditeur
Édition : Eyrolles - 217 pages, 1re édition, 1er décembre 2004
ISBN10 : 2212113161 - ISBN13 : 9782212113167
21 x 2 x 24 cm
Installation de l'environnement de développement
XML, pour configurer et transporter des données
Modélisation et visualisation des objets métier via XML
Struts, partie émergée de l'application ?
Les bases de données XML natives : grand déstockage d'Automne ?
Conception de services web
Ce ouvrage est destiné à toute personne désirant faire du développement web avec J2EE et XML. Que vous soyez un développeur J2EE débutant désirant vous ploger dans le développement web, un développeur J2EE confirmé désirant découvrir (ou redécouvrir) la technologie XML ou encore un chef de projet désirant avoir un apercu clair des possibilités offertes par le couple J2EE/XML, ce livre est fait pour vous.
Le parti pris de cet ouvrage est de faire découvrir les vastes possibilités de Java/XML grâce à la réalisation, tout au long du livre, d'un projet de site web totalement axé sur XML : le projet Octopuss.
Le principal atout de cet ouvrage est justement le projet Octopuss. Il est particulièrement agréable de découvrir de manière pratique ces technologies, parfois complexes. Ainsi, l'auteur commence tout simplement par un cahier des charges : exposition des besoins, spécifications fonctionnelles et techniques, méthodologies de développement, etc. Vous pouvez d'ailleurs découvrir ce premier chapitre sur le site d'Eyrolles : extraits du livre Java / XML.
Après une partie dédiée à l'installation des outils de développement (Eclipse, Tomcat, Log4j, etc.), on passe dans le vif du sujet : le développement de l'application. Chaque chapitre va vous permettre de découvrir une nouvelle facette de XML et son application pratique avec le projet Octopuss. Vous pourrez ainsi faire le tour du monde XML : les notions et API fondamentales (XML, XSL, XML Schema, JAXP, SAX, DOM, etc.), le data-binding (JAXB, Castor, etc.), les frameworks d'application (Struts, Cocoon, Barracuda), les bases de données XML natives et la conception de services Web.
On pourra aussi apprécier la mise en page claire, la présence de nombreux schémas explicatifs et de nombreux cadres présentant des définitions, liens web intéressants, etc.
La seule chose que l'on pourra regretter après la ecture de cette ouvrage est l'absence d'un CD. Celui-ci aurait pu contenir les outils de développement (outils libres et gratuits), ainsi que les codes sources du projet Octopuss. Je pense que cela aurait renforcé le côté pratique de l'ouvrage et aurait permis de se focaliser plus directement sur le côté technique.
Les codes sources de l'application sont téléchargeables : Java/XML Téléchargements.
Une dernière remarque que l'on pourrait faire est le fait que certaines technologies ne sont que survolées. A dire vrai, j'aurais lu avec plaisir quelques chapitres de plus. ;-)
Pour conclure, je dirais que cet ouvrage devrait trouver sa place dans la bibliothèque de tout développeur J2EE : un guide utile, agréable et pratique des technologies Java/XML.
Commenter Signaler un problème
Ce ouvrage est destiné à toute personne désirant faire du développement web avec J2EE et XML. Que vous soyez un développeur J2EE débutant désirant vous ploger dans le développement web, un développeur J2EE confirmé désirant découvrir (ou redécouvrir) la technologie XML ou encore un chef de projet désirant avoir un apercu clair des possibilités offertes par le couple J2EE/XML, ce livre est fait pour vous.
Le parti pris de cet ouvrage est de faire découvrir les vastes possibilités de Java/XML grâce à la réalisation, tout au long du livre, d'un projet de site web totalement axé sur XML : le projet Octopuss.
Le principal atout de cet ouvrage est justement le projet Octopuss. Il est particulièrement agréable de découvrir de manière pratique ces technologies, parfois complexes. Ainsi, l'auteur commence tout simplement par un cahier des charges : exposition des besoins, spécifications fonctionnelles et techniques, méthodologies de développement, etc. Vous pouvez d'ailleurs découvrir ce premier chapitre sur le site d'Eyrolles : extraits du livre Java / XML.
Après une partie dédiée à l'installation des outils de développement (Eclipse, Tomcat, Log4j, etc.), on passe dans le vif du sujet : le développement de l'application. Chaque chapitre va vous permettre de découvrir une nouvelle facette de XML et son application pratique avec le projet Octopuss. Vous pourrez ainsi faire le tour du monde XML : les notions et API fondamentales (XML, XSL, XML Schema, JAXP, SAX, DOM, etc.), le data-binding (JAXB, Castor, etc.), les frameworks d'application (Struts, Cocoon, Barracuda), les bases de données XML natives et la conception de services Web.
On pourra aussi apprécier la mise en page claire, la présence de nombreux schémas explicatifs et de nombreux cadres présentant des définitions, liens web intéressants, etc.
La seule chose que l'on pourra regretter après la ecture de cette ouvrage est l'absence d'un CD. Celui-ci aurait pu contenir les outils de développement (outils libres et gratuits), ainsi que les codes sources du projet Octopuss. Je pense que cela aurait renforcé le côté pratique de l'ouvrage et aurait permis de se focaliser plus directement sur le côté technique.
Les codes sources de l'application sont téléchargeables : Java/XML Téléchargements.
Une dernière remarque que l'on pourrait faire est le fait que certaines technologies ne sont que survolées. A dire vrai, j'aurais lu avec plaisir quelques chapitres de plus. ;-)
Pour conclure, je dirais que cet ouvrage devrait trouver sa place dans la bibliothèque de tout développeur J2EE : un guide utile, agréable et pratique des technologies Java/XML.
Java & XSLT
Résumé de l'éditeur
Cet ouvrage se concentre sur l'alliance de Java et de XSLT, explicitement conçu pour transformer des documents XML. À travers des cas concrets, le coeur de l'ouvrage aborde les aspects de transformations de documents dans des applications À stand-alone ou des servlets pour des cas aussi variés que les forums de discussion, ou la mise en forme de contenu pour des À appareils sans fil. De nombreux cas pratiques sont abordés dans cet ouvrage : feuilles de style, transformations de À documents, traitement de formulaires.
Citons quelques-uns des thèmes abordés :
- Introduction à XSLT
- Technologies web basées sur Java (détail de l'architecture modèle-vue-contrôleur, utiliser les EJB)
- Traitements XSLT avec Java (XML et SAX, les techniques de cache, interopérer avec DOM et JDOM)
- Feuilles de style et compilation
- XSLT et les Servlets
- Construction d'applications web avec XSLT (modèles XSLT, cookies)
- Internationalisation
- XSLT et les technologies sans fil (WML)
- Optimisation des performances, test
- Référence de l'API JAXP et du langage XSLT.
Java et XSLT aidera le programmeur Java à tirer parti de la puissance de XSLT pour des servlets ou des applications autonomes. Il permettra au développeur de réaliser des applications web complètes. La principale étude de cas est consacrée à une application de forum de discussion, à laquelle deux chapitres sont dévolus.
Édition : O'Reilly - 498 pages, 1re édition, 1er mars 2002
ISBN10 : 2841772055 - ISBN13 : 9782841772056
On pourrait se poser la question suivante : que peut-on raconter sur Java et XSLT en 500 pages ? Et bien, beaucoup de choses très intéréssantes dans ce cas.
Les exemples sont simples, pratiques, sans fioritures inutiles mais permettent de comprendre rapidement les notions exposées. Les textes sont clairs et agréables à lire.
Ce livre n'est pas uniquement centré sur son sujet annoncé mais s'étend un peu sur des sujets annexes, tels que les servlets, la sécurité de ces mêmes servlets par rapport aux threads, aussi bien que par rapport aux utilisateurs. Les notions de bases de XML et des parseurs sont rappelées rapidement mais pas baclées. La génération du XML, par exemple à partir de bases de données est aussi évoquée. Ainsi que bien d'autres sujets périphériques.
En conclusion, un livre complet, assez dense mais très clair et tout à fait abordable, même par des débutants un peu curieux (tels que moi) qui couvre bien son sujet et ses interconnections avec d'autres technologies.
Commenter Signaler un problème
Cet ouvrage se concentre sur l'alliance de Java et de XSLT, explicitement conçu pour transformer des documents XML. À travers des cas concrets, le coeur de l'ouvrage aborde les aspects de transformations de documents dans des applications À stand-alone ou des servlets pour des cas aussi variés que les forums de discussion, ou la mise en forme de contenu pour des À appareils sans fil. De nombreux cas pratiques sont abordés dans cet ouvrage : feuilles de style, transformations de À documents, traitement de formulaires.
Citons quelques-uns des thèmes abordés :
- Introduction à XSLT
- Technologies web basées sur Java (détail de l'architecture modèle-vue-contrôleur, utiliser les EJB)
- Traitements XSLT avec Java (XML et SAX, les techniques de cache, interopérer avec DOM et JDOM)
- Feuilles de style et compilation
- XSLT et les Servlets
- Construction d'applications web avec XSLT (modèles XSLT, cookies)
- Internationalisation
- XSLT et les technologies sans fil (WML)
- Optimisation des performances, test
- Référence de l'API JAXP et du langage XSLT.
Java et XSLT aidera le programmeur Java à tirer parti de la puissance de XSLT pour des servlets ou des applications autonomes. Il permettra au développeur de réaliser des applications web complètes. La principale étude de cas est consacrée à une application de forum de discussion, à laquelle deux chapitres sont dévolus.
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
Au Coeur de Java 2 JDK 5, Vol.1
Notions Fondamentales
Résumé de l'éditeur
Édition : Campus Press - 855 pages, 7e édition, 1er décembre 2004
ISBN10 : 2744018333 - ISBN13 : 9782744018336
format : 19x23x5 cm, poids : 1575 gr.
- Une introduction à Java
- L'environnement de programmation de Java
- Structures fondamentales de la programmation Java
- Objets et classes
- L'héritage
- Interfaces et classes internes
- Programmation graphique
- Gestion des événements
- Swing et les composants d'interface utilisateur
- Déployer des applets et des applications
- Exceptions et mise au point
- Les flux et les fichiers
- Programmation générique
- Annexes A : Les mots clés de Java
- Annexes B : Adaptation en amont du code du JDK 5.0
Une mise en page claire et soignée, ainsi qu'une bonne démarche pédagogique appuyée par des exemples simples et pertinents, permettent un apprentissage rapide et efficace du langage.
Des encarts (info, info C++, astuce, attention) informent le lecteur sur des points qu'il est bon de souligner, comme les équivalences/différences avec le C++ ou les pièges à éviter.
Pour chaque nouvel appel à l'API, une brève description de celui-ci est donnée à la fin de la section concernée. Et pour chaque nouveauté du JDK 5.0, son équivalent dans le précédent JDK est proposé, s'il existe. Une annexe regroupe d'ailleurs ces équivalences.
Aucun CD-ROM n'accompagne cette 7ème édition, mais les sources des exemples données dans l'ouvrage sont disponibles au téléchargement sur le site de l'éditeur.
Après avoir acquis les bases du J2SE, nul doute que vous voudrez aborder les fonctionnalités avancées du langage avec "Au Coeur de Java 2, vol.2 - Fonctions Avancées".
Ayant personnellement débuté en Java avec cet ouvrage, et pour avoir été très satisfait de ma rapide progression dans l'utilisation de ce langage, je ne peux que vous le conseiller!
Java Efficace
Guide de Programmation
Résumé de l'éditeur
Excédant la seule programmation Java, ces règles serviront de viatique pour la programmation objet en général et la production de code clair, correct, efficace, robuste et réutilisable.
Les bibliothèques Java (java.lang, java.util et dans une moindre mesure java.io) sont également abordées, ainsi que la sérialisation.
"J'aurais voulu avoir ce livre il y a dix ans. Certains peuvent penser que je n'ai besoin d'aucun livre sur Java, mais celui-ci fait exception." James Gosling, ancien vice-président de Sun Microsystems, co-créateur du langage Java.
Édition : Vuibert - 272 pages, 1er juin 2002
ISBN10 : 2711748057 - ISBN13 : 9782711748051
1. Privilégier des méthodes de fabrique statiques aux constructeurs
2. Appliquer la propriété du singleton avec un constructeur privé
3. Empêcher l'instanciation avec un constructeur privé
4. Empêcher la duplication d'objets
5. Éliminer les références d'objets obsolètes
6. Éviter les finaliseurs
Méthodes communes à tous les objets
7. Obéir au contrat général lors d'une redéfinition de la méthode equals
8. Toujours redéfinir hashCode lorsque equals est redéfini
9. Toujours redéfinir toString
10. Redéfinir judicieusement clone
11. Envisager l'implémentation de Comparable
Classes et Interfaces
12. Restreindre l'accès des classes et de leurs membres
13. Favoriser l'immuabilité
14. Préférer la composition à l'héritage
15. Prévoir et documenter l'héritage ou bien l'interdire
16. Préférer les interfaces aux classes abstraites
17. N'utiliser les interfaces que pour définir les types
18. Favoriser les classes imbriquées statiques
Équivalents pour constructions du langage C
19. Remplacer les structures par des classes
20. Remplacer une union par une hiérarchie de classes
21. Remplacer les constructions enum par des classes
22. Remplacer les pointeurs de fonctions par des classes et des interfaces
Méthodes
23. Vérifier la validité d'un paramètre
24. Procéder à des recopies défensives en cas de besoin
25. Concevoir avec attention la signature d'une méthode
26. Utiliser la surcharge avec discernement
27. Renvoyer des tableaux vides plutôt que null
28. Écrire des commentaires de documentation pour tous les éléments exposés d'une API
Programmation générale
29. Minimiser la portée des variables locales
30. Connaître et utiliser les bibliothèques
31. Éviter float et double si un résultat exact est requis
32. Éviter les chaînes de caractères là où d'autres types sont plus appropriés
33. Attention à la performance dans la concaténation de chaînes de caractères
34. Faire référence à un objet via son interface
35. Préférer les interfaces à la réflexion
36. Utiliser judicieusement les méthodes natives
37. Optimiser judicieusement
38. Suivre les conventions de nommage généralement acceptées
Exceptions
39. N'utiliser une exception que dans des situations exceptionnelles
40. Utiliser une exception vérifiée pour une situation récupérable et une exception non vérifiée pour une erreur de programmation
41. Ne pas abuser des exceptions vérifiées
42. Préférer l'utilisation d'une exception standard
43. Lever des exceptions en rapport avec l'abstraction
44. Documenter toutes les exceptions levées par une méthode
45. Inclure l'information de contexte dans les messages détaillés
46. Garantir l'atomicité d'une erreur
47. Ne pas ignorer une exception
Threads
48. Synchroniser l'accès à toute donnée partagée et muable
49. Éviter toute synchronisation excessive
50. Ne jamais invoquer wait en dehors d'une boucle
51. Ne pas s'appuyer sur l'ordonnanceur de threads
52. Documenter la sûreté des threads
53. Éviter les groupes de threads
Sérialisation
54. Implémenter judicieusement Serializable
55. Envisager l'utilisation d'une sérialisation sur mesure
56. Rédiger la méthode readObject de manière défensive
57. Fournir une méthode readResolve lorsque cela est nécessaire
Annexes
Bibliographie
Index des idiomes et patterns
Index
Il commence par parler de la création et de la destruction d'objets et de la façon de les rendre plus performantes. Il traite ensuite des méthodes communes à tous les objets, c'est-à-dire des méthodes héritées d'Object et de comment correctement les implémenter. Le chapitre suivant traite des interfaces et des bonnes pratiques de la conception orientée objet. Puis, il enchaine sur les équivalents du langage C indiquant, par exemple, comment remplacer les unions en Java. Les chapitres suivants traitent des méthodes et de la programmation en général, indiquant par exemple comment optimiser judicieusement son code. Les 3 derniers chapitres sont chacun très spécifiques, parlant tout d'abord des exceptions, puis des threads, et enfin de la sérialisation.
En conclusion, ce livre est indispensable à toute personne voulant écrire une API correctement maintenable et réutilisable. Le style de l'auteur permet de lire ce livre avec une très grande fluidité malgré la grande dose d'informations.
Ce livre s'adresse à ceux qui connaissent déjà Java, mais souhaitent produire un code solide. Si vous travaillez en équipe, il vous est sans doute arriver d'écrire des classes ou API qui sont ensuite utilisées par vos collègues. Malheureusement, l'usage que font vos collègues de votre travail entraine soit des erreurs de comportement soit des plantages dans votre code. Il peuvent même vous amener à devoir corriger une grande partie de l'application le jour où vous voulez faire évoluer votre API. Si cela vous est arrivé, ce livre est pour vous.
Il est constitué d'une série de57 recommandations. Ces recommandations peuvent se lire dans n'importe quel ordre, et présentent souvent des références les unes vers les autres. Elle sont regroupées par thématiques comme le montre la table des matières ci dessous et sont accompagnées d'exemples de code. Vous y trouverez même quelques critiques sur les API du JDK. Certaines se lisent tres vite (une page et demi), d'autres font près d'une dizaine de pages et demandent des efforts de concentration. Le style rédactionnel est très agréable à lire, même si la densité d'informations est élevée.
Ces conseils fournis par l'auteur d'une partie de java.util vous permettront de comprendre toutes les règles nécessaires au développement d'une API solide. Qu'il s'agissent d'immuabilité, de prévoir ou empêcher l'héritage et la surcharge, gérer la visibilité des méthodes et attributs, utiliser correctement les Exceptions et les Thread, vous trouverez une mine d'informations et surtout de bons conseils dans ce livre.