FORMATION

LA PROGRAMMATION MODERNE DE 4D (J1 + J2 + J3)

warning: file_get_contents(http://www.telize.com/geoip/54.162.105.241) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /var/www/www.4d.com/docs/includes/common.inc(1762) : eval()'d code on line 4.
3 jours

Cette formation s'adresse aux développeurs 4D ayant déjà une certaine expérience de la programmation, et qui désirent utiliser la pleine puissance de l'outil. L'arrivée progressive des Objets en 4D v15 puis v16, suivie de la naissance d'un langage orienté objet change totalement la manière dont on peut penser à présent les développements 4D. Cela va bien plus loin que la notation à points ou l'apparition de nouveaux types de variables.

La programmation orientée Objet facilite le travail en équipe, la réutilisabilité du code et des objets d'interface, le débogage, et les tests. Elle est particulièrement adaptée au développement agile.

Les développeurs venant d'autres horizons (PHP, JavaScript) y trouveront également les techniques nécessaires pour passer de leurs environnements habituels à 4D, tout en conservant des concepts analogues.

 

Avec les nouvelles versions de 4D, v15 et v16, sont apparus de nouveaux outils et objets, extrêmement puissants, mais dont l'utilisation optimale nécessite souvent un changement dans les méthodes de programmation, afin d'en tirer le meilleur parti. Il est souvent difficile, pour un développeur, d'étudier à fond les évolutions du produit, et d'essayer les différentes options et les nouvelles techniques. Chaque développeur a souvent 'le nez dans le guidon' et continue d'appliquer les techniques acquises en fonction de ses expériences passées. Mais le monde change, et il change vite.

 

Le but est de montrer (à l'aide d'exemples pratiques) comment s'adapter aux nouvelles possibilités offertes par 4D. 

 

On verra en particulier :

 

- comment se servir des Objets Formulaires et/ou de leurs (nouvelles) propriétés, pour approcher la programmation orientée objet (OOP) de façon à accroître les possibilités de créer des outils indépendants des structures, complètement réutilisables, et simples à implémenter.

 

- comment optimiser sa programmation pour utiliser la pleine puissance de ces nouveaux outils.

 

- les pièges potentiels liés à la manipulation d'objets par référence, et comment les éviter simplement.

 

- la structure interne et le fonctionnement précis des différents objets (nouveaux ou non), ainsi que les changements apportés à leur manipulation.

 

- les concepts liés aux différents niveaux de contextes, que ce soient de process, de composants, ou de sous-formulaires, ainsi que les cascades d'événements et les moyens de communication entre ces contextes.

 

- etc.

 

Nous étudierons aussi l'utilisation de langages standards (PHP, JavaScript) dans la programmation 4D, pour résoudre des problèmes rares ou accéder à des méthodes n'existant pas dans 4D.

 

Enfin, à chaque étape, nous expliquerons le Pourquoi, ce qui permet de choisir le Comment en fonction des besoins. Par exemple, combien coûte l'utilisation de pointeurs, est-il préférable d'utiliser des pages multiples ou bien des sous-formulaires, quel est le poids réel des objets, comment choisir les index, ou mieux utiliser le cache, etc.

 

Les bases exemples utilisées sont fournies, permettant au développeur de copier-coller directement les objets et méthodes dans les applications existantes.

Jour 1 & 2 : Maîtriser les nouveaux concepts


- Rapide rappel sur la structure interne des objets 4D

Enregistrements

Tables d'adresses

Ensembles et Clusters

Index

Sélections et Sélections Nommées

Collections

Objets volumineux sur disque (blobs, images, multimédia, objets, gros textes)

 

- Les Objets 4D en mémoire

Place utilisée : L'ancien et le moderne

Refcounting

Objets directs et Références

Utilisation correcte des Pointeurs et des Références

Objets type JSON

Objets type Collections

Opérations sur les Objets


 - Les objets pour doper votre code

Objets en programmation

Objets comme paramètres

Tableaux et fonctions de Hash

Tableaux associatifs

 

- Variables : Du Statique au Dynamique

Noms des Objets Formulaires

Objets Formulaires et sources de données

Utilisation étendue des Listboxes

Callbacks

Concepts sur les contextes


- Les Objets dans les Formulaires

Nom des Objets

Utilisation intensive des Noms d'Objets en programmation

Formulaires 100% dynamiques

Objet et Data Source

Utilisation du langage objet dans les Formulaires

Utilisation extensive des ListBoxes

Concepts sur les Contextes

- La programmation moderne de 4D (The Modern 4D Cookbook)

Approche de la programmation orientée objet (OOP) dans 4D

Les Données, encore les Données, toujours les Données...

Des Paramètres partout...

Optimiser la programmation

Optimiser la gestion des tableaux

Différences entre Collections et Tableaux d'Objets

Utilisation du langage objet (notation à points) et de ses subtilités

Chaînage des commandes

Programmation Indépendante de la structure

Objets réutilisables

Composants : Pourquoi et comment

Optimiser les recherches

Utilisation des champs de type Objets

Utilisation des Collections

 

Utilisation de la notation à Points dans le langage

Généraliser le concept de recherche

 

- Utilisation de PHP et Javascript dans 4D

Pourquoi, Quand, et Comment

Exemples pratiques et simples

Utilisation de scripts PHP

Exemple simple de greffage de PHP sur 4D

Exemple simple de greffage de Javascript sur 4D

Introduction aux échanges de données avec 4D

 

- La structure des données : du 'Schemaful' au 'Schemaflex'

Objets en tant que champs

Gérer les champs à structure variable

Ajouter en quelques clics, des champs librement paramétrables par l'utilisateur

Recherches, tris, et utilisation de ces champs : Aujourd'hui et demain

Les pièges des structures de données de type Key-Value Store

 

- Des nombres aux noms

Comment passer doucement des numéros de tables, de champs, de process, d'enregistrements, à des identifiants sous forme de noms : Pourquoi et comment ?

 

- Le Langage : du Classique à la NovLangue

Utilisation du langage Objet, et préparation aux futures évolutions.


- Du 32 bits au 64 bits

Pourquoi faut-il passer en 64 bits ?

Le nouveau gestionnaire de mémoire

Les problèmes liés aux ressources sur Mac et Windows : PICT, cicn, STR#

 

- Du CALL PROCESS au CALL FORM

Se débarrasser de l'événement Sur appel extérieur

Se débarrasser de l'événement Sur minuteur

Se débarrasser des Process de CallBack

Multiplier les fenêtres sans multiplier les process

 

- Des Process aux Workers

Similarités & différences entre Process et Worker

Avantages des Workers

 

- Du Coopératif au Préemptif

Se préparer au Multithreading v16

Programmation parallèle et asynchrone

Comprendre les contextes des process, des workers, des fenêtres, et des formulaires

Les techniques de Messaging, Slicing, Chunking, sans (trop) de casse-têtes

Comment survivre à l'absence de variables inter-process ?

Se préparer aux futures évolutions

 

 

 

- Questions diverses



Jour 3 : Introduction aux langages Objets, aux technologies web de 4D, à la programmation multibases et aux bases de données distribuées


Cette journée est plus spécifiquement consacrée à l'intégration des bases 4D dans l'environnement moderne qui comprend les réseaux, le Web et ses services, les bases distribuées, le Big Data, le Cloud, etc.


- 4D, le Web, et les Web Area

Utilisation des services

Interface 'à la Web"

 

- Utilisation de PHP et Javascript dans 4D :

Pourquoi, Quand, et Comment

Exemples pratiques et simples

Utilisation de scripts PHP

Exemple simple de greffage de PHP sur 4D

Exemple simple de greffage de Javascript sur 4D

Introduction aux échanges de données avec 4D


- Concepts et Vocabulaire :

DataStores et DataClasses

Entités et Enregistrements

Champs réels et Champs virtuels

Conceptualiser les données en se basant sur de nouveaux paradigmes


- Programmation Multi-Base avec 4D :

Pourquoi, Quand, et Comment

Ouvertures simultanées, gestion des conflits, conversions de données

Bases de données distribuées, analyse des distributions, effets de la redondance et de la dénormalisation

Résilience augmentée et Exigences des clients


- Introduction à l'accès à 4D par REST :

Portage rapide d'un accès à une application 4D sur le Web (Tablettes, smartphones)

Adaptation de la structure

Connexion REST

Appel des méthodes 4D

Gestion des sélections sur mobile

Gestion du multi-utilisateur (Optimistic et Pessimistic Locking)

 

- Questions diverses

Prix H.T. : 1650 €

Durée :
3 jours


Public :

Développeurs 4D ou venant d'autres horizons.



Pré-requis :

Bonne expérience du développement.


Prochaine(s) session(s) :
Lieu : 4D SAS - Le Pecq

Formateur(s) :
  • Jean-Pierre Ribreau
Niveau de difficulténouveauManipulationPossible en intra