3. @telosys http://www.telosys.org 3
La phase de début de projet
On part de …. rien
Il va falloir poser le cadre du projet
Une part du développement va être répétitive
4. @telosys http://www.telosys.org 4
Tâche répétitives : tout ce qui est lié aux entités du projet
Par exemple, pour chaque entité :
• La « classe domaine » de l’entité
• Un formulaire de saisie / mise à jour / suppression (CRUD)
• Les listes d’entités
• Les « contrôleurs » (côté serveur)
• Les services REST
• La couche d’accès à la base de données
• etc
N fois !
N entités
5. @telosys http://www.telosys.org 5
La juste part du développeur
Plate-forme ( ex Python, …)
Application
Framework 1
( ex Bottle )
Framework 2
( ex SqlAlchemy )
Code stéréotypé
& répétitif
Développeur Générateur
La part de code répétitif qui ne peut pas être
portée par le socle technique
peut être générée.
8. @telosys http://www.telosys.org 8
Abstract model
DSL model
Comment ça marche ?
Database model
Etape 1 : Définir un modèle d’entités
Soit un « db model » initialisé à partir du schéma
d’une base de données relationnelle (puis modifiable)
Soit un « DSL model » basé sur des fichiers de type
texte avec une grammaire simple
init/update
9. @telosys http://www.telosys.org 9
Project
templates
Comment ça marche ?
Etape 2 : Récupérer (ou créer) des « templates »
Templates standards
GitHub
Utilisation
de templates
standards
prédéfinis
Création ou adaptation
de templates pour
des cas spécifiques
Un template est
un « patron »
pour un type de cible
de génération :
Java, PHP, HTML, etc
19. @telosys http://www.telosys.org 19
Tests et lancement de l’application
Tests :
Run as … Python Run
create_database.py
init_database.py
run_test.py
Lancement de l’application :
Run as … Python Run
app.py
22. @telosys http://www.telosys.org 22
Nouveau projet et initialisation
Même principe que pour projet précédent :
Création d’un projet Python : projet « python-rest »
Initialisation de Telosys
Recopie du modèle du projet précédent
Recopie des templates du projet précédent
26. @telosys http://www.telosys.org 26
Configuration de la connexion à la base de données
Démarrer la base de données
Placer le fichier « .jar » contenant le driver JDBC dans « lib »
Configurer la connexion à la base
27. @telosys http://www.telosys.org 27
Création du modèle à partir de la base de données
Tester la récupération des tables, colonnes, etc
« Create model »
Fichier « .dbrep »
34. @telosys http://www.telosys.org 34
Génération de code
Sélection d’un bundle :
> b alch (Bundle) : « alch » = abréviation du nom de bundle
> gen * * -r (Generate all entities and all templates with resources )
36. @telosys http://www.telosys.org 36
Génération de code
Sélection d’un bundle :
> b mvc (Bundle) : « alch » = abréviation du nom de bundle
> gen * * -r (Generate all entities and all templates with resources )
Run Python file in terminal
• app.py