Perfectionnement Java

Ce séminaire en 3 parties d'une heure présentera les principes qui gouvernent la conception d'applications backend: les designs patterns, les bonnes pratiques d'accès aux données et enfin l'implémentation du principe request/response en Java avec HTTP.

Le parti pris: pas de framework, faire bien avec peu, et maîtriser les bases. Cette approche rigoureuses favorisera ensuite l'appréciation de tel ou tel framework (cas d'usages, force et faiblesse) et permettra même de transposer ces connaissances à d'autres langages.

Be an engineer, not a frameworker. s'intitule un célèbre article. Time to level up.

(3 heures)

En classe virtuelle ou en présentiel
En français ou en anglais
Public

Développeurs et développeuses, architectes

Accessible aux personnes en situation de handicap

Délai

Le cours peut être organisé dans un délai d'un mois.

Objectifs

A l'issue du cours vous saurez:

Prérequis

Ce cours demande une connaissance générale de la programmation d'applications backend. en Java.

Méthodes pédagogiques

Le cours alterne théorique et pratique: la mise en pratique prend la forme d'une application "démo" enrichie par le formateur tout au long des wébinaires et dont les participants peuvent disposer à la fin du wébinaire.

Une forte interaction avec les participants permettra à chacun de rapprocher les sujets du cours de son travail quotidien.

Programme détaillé

Session 1: designs pattern et bonnes pratiques de programmation

Les designs patterns sont des manière d'organiser son code pour traiter une problématique donnée. Chaque métier a ses designs patterns: aux échecs il ne suffit pas de savoir déplacer les pièces il faut aussi connaître les ouvertures, sortes de design patterns. Ils témoignent de pratiques qui ont fait leur preuve, qui sont transmis de générations en générations, tel un bien commun qui permet d'organiser son code d'une manière efficace et adaptée au besoin.

Le livre "Design Patterns: Elements of Reusable Object-Oriented Software" (1994) en propose 23. Beaucoup sont toujours au cœur des applications que nous développons aujourd'hui, même s'ils sont souvent masqués par les frameworks (Spring par exemple). Comprendre leur cas d'usage permet de transcrire un besoin métier en architecture logicielle de manière pertinente et faire ensuite bon usage de tel ou tel framework. Spring par exemple est d'abord une formidable .... factory (un design pattern...).

Cette session partira de la nécessaire "séparation des responsabilités" (separation of concerns) pour introduire l'injection de dépendances, le rôle d'une factory, la factorisation permise par la mise en œuvre de proxy, l'échange d'informations à travers des commands et le traitement des commands par des observers. Tout cela sans frameworks: seulement avec Java SE.

Session 2: accès aux données et transactions

Il est très fréquent que les applications backend sollicitent une base de données relationnelle. En découle deux aspects essentiels: l'utilisation des connexions pour soumettre des requêtes et la préservation de la cohérence grâce aux transactions.

Pourquoi n'utilise-t-on pas une connexion unique (singleton) ? Pourquoi utilise-t-on un pool de connexion ? Quel est le lien entre une connexion, transaction et thread ? Quels sont les principes ACID ?

Autant de questions au cœur de nombreuses applications backend et qui sont rarement maîtrisées car souvent abstraites par des frameworks, alors qu'on n'utilise bien un famework que si on sait comment il opère. En découle, trop souvent, une programmation par coïncidence: le programme fonctionne mais on ne sait pas comment et lorsqu'il ne fonctionne pas on ne sait pas pourquoi. Ce séminaire permettra d'éviter cette situation inconfortable en présentant des principes non seulement essentiels mais en plus indépendants d'une stack particulière (Java, .NET, etc...).

Session 3: création d'API REST en Java.

En Java, l'API Servlet normalise l'échange d'informations en HTTP. Être une servlet signifie "être capable de traiter une requête". Plus personne n'écrit ses propres servlets puisque les frameworks, Spring par exemple, propose une surcouche bienvenue permettant de gagner en productivité.

Néanmoins il est essentiel de bien connaître l'API Servlet: que signifie one thread per task ? À quoi ressemble une requête HTTP ? Une réponse HTTP ? En quoi consiste un filtre ? Lorsqu'on maîtrise tout cela il reste encore à connaître les bonnes pratiques de conception d'une API REST: qu'est ce qu'une ressource ? Comment faire bon usage des verbes HTTP ? Que signifie l'étrange appellation HATEOAS ? En montrant comment réaliser une API REST avec de simples servlets ce séminaire mettra l'accent sur les bases du développement d'API en Java, ce qui favorise ensuite la compréhension de tel ou tel framework web.

Prix

750 euros H.T. pour les 3 sessions d'une heure quelque soit le nombre de participants.

Contact

Questions, inscriptions, demande d'adaptation: