SlideShare une entreprise Scribd logo
1  sur  39
Télécharger pour lire hors ligne
Web app
Bootstrapping
Laurent Guérin
@ltguerin
laurent.guerin@sogeti.com
Meetup Python Nantes
5 Juin 2018
@telosys http://www.telosys.org 2
Les applications cibles
DAOService
Controller
MVC
Controller
REST
Entity
App
@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
@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
@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.
@telosys http://www.telosys.org 6
Le générateur de code
RAPIDE
www.telosys.org
@telosys http://www.telosys.org 7
Deux outils (au choix)
plugin C L I
Extensions
VSCode et Atom
@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
@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
@telosys http://www.telosys.org 10
Comment ça marche ?
Etape 3 : Lancer la génération
Project
templatesGenerator
@telosys http://www.telosys.org 11
Application Web MVC / DSL Model
#1
@telosys http://www.telosys.org 12
Initialisation du projet
Création d’un projet Python pour l’application MVC : projet « python-mvc »
Initialisation
de Telosys :
@telosys http://www.telosys.org 13
Création d’un modèle
Création d’un
« DSL model » : « cars »
Création d’une entité : « Driver »
@telosys http://www.telosys.org 14
Modèle complet
@telosys http://www.telosys.org 15
Téléchargement des templates
https://github.com/telosys-templates-v3
@telosys http://www.telosys.org 16
Templates utilisés
bundles de templates :
DAOService
Controller
MVC
Controller
REST Entity
python-persistence-sqlalchemy
python-web-mvc-bottle
@telosys http://www.telosys.org 17
Téléchargement des templates
@telosys http://www.telosys.org 18
Génération de code
@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
@telosys http://www.telosys.org 20
Lancement et tests
@telosys http://www.telosys.org 21
Application Web REST
#2
@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
@telosys http://www.telosys.org 23
Templates utilisés
bundles de templates :
DAOService
Controller
MVC
Controller
REST Entity
python-web-rest-bottle
python-persistence-sqlalchemy
@telosys http://www.telosys.org 24
Lancement et tests
@telosys http://www.telosys.org 25
Application Web MVC / Database Model
#3
@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
@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 »
@telosys http://www.telosys.org 28
Consultation/modification du modèle
Ouvrir le fichier « .dbrep »
@telosys http://www.telosys.org 29
Génération de code
@telosys http://www.telosys.org 30
Telosys CLI / VS Code - Application Web MVC - DSL
#4
@telosys http://www.telosys.org 31
Telosys CLI + VS Code
VS Code avec
extension Telosys :
pour éditer les fichiers
Telosys CLI :
pour exécuter les
commandes Telosys
@telosys http://www.telosys.org 32
Initialisation & création du modèle
Telosys :
Initialisation :
> init
Modèle :
> lm
> nm cars
> le
> ne car
Pour démo, recopier un modèle complet
@telosys http://www.telosys.org 33
Installation des templates
Telosys :
Bundles :
> lb (List Bundles)
> lgh (List GitHub)
> ib pyt (Install Bundles « pyt »)
> lb
@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 )
@telosys http://www.telosys.org 35
Tests
Run Python file in terminal
• create_database.py
• init_database.py
• run_tests.py
@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
@telosys http://www.telosys.org 37
@telosys http://www.telosys.org 38
Pour plus d’info…
www.telosys.org @telosys
@telosys http://www.telosys.org 39
Des questions ?

Contenu connexe

Tendances

JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924Gregory Boissinot
 
Jenkins - Les jeudis de la découverte
Jenkins - Les jeudis de la découverteJenkins - Les jeudis de la découverte
Jenkins - Les jeudis de la découverteStephane Couzinier
 
Php sous Windows - webcamps Paris
Php sous Windows - webcamps ParisPhp sous Windows - webcamps Paris
Php sous Windows - webcamps ParisLeTesteur
 
Présentation de nodejs
Présentation de nodejsPrésentation de nodejs
Présentation de nodejs13p
 
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...Silicon Comté
 
Journée DevOps : Puppet, un outil pour les installer tous
Journée DevOps : Puppet, un outil pour les installer tousJournée DevOps : Puppet, un outil pour les installer tous
Journée DevOps : Puppet, un outil pour les installer tousPublicis Sapient Engineering
 

Tendances (8)

JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924
 
Jenkins - Les jeudis de la découverte
Jenkins - Les jeudis de la découverteJenkins - Les jeudis de la découverte
Jenkins - Les jeudis de la découverte
 
Maven
MavenMaven
Maven
 
Jenkins
JenkinsJenkins
Jenkins
 
Php sous Windows - webcamps Paris
Php sous Windows - webcamps ParisPhp sous Windows - webcamps Paris
Php sous Windows - webcamps Paris
 
Présentation de nodejs
Présentation de nodejsPrésentation de nodejs
Présentation de nodejs
 
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
 
Journée DevOps : Puppet, un outil pour les installer tous
Journée DevOps : Puppet, un outil pour les installer tousJournée DevOps : Puppet, un outil pour les installer tous
Journée DevOps : Puppet, un outil pour les installer tous
 

Similaire à Meetup python-bottle-telosys-2018-lgu-v1.0

JUG Nantes - Telosys Tools - Avril 2014
JUG Nantes - Telosys Tools - Avril 2014 JUG Nantes - Telosys Tools - Avril 2014
JUG Nantes - Telosys Tools - Avril 2014 telosys
 
Telosys tools jug-nantes-2014-v1.2
Telosys tools jug-nantes-2014-v1.2Telosys tools jug-nantes-2014-v1.2
Telosys tools jug-nantes-2014-v1.2Laurent Guérin
 
Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Laurent Guérin
 
Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)Martin Latrille
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSRenaud Dumont
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniterAtsé François-Xavier KOBON
 
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Alexandre Touret
 
Un exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHPUn exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHPKristen Le Liboux
 
BreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec AzureBreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec AzureNicolas Georgeault
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Microsoft
 
Modèles d'Azure Resource Manager: Améliorer vos déploiements sur Azure
Modèles d'Azure Resource Manager: Améliorer vos déploiements sur AzureModèles d'Azure Resource Manager: Améliorer vos déploiements sur Azure
Modèles d'Azure Resource Manager: Améliorer vos déploiements sur AzureStephane Lapointe
 
XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...
XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...
XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...Publicis Sapient Engineering
 
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...ENSIBS
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8davrous
 
Xebicon architectures microservices azure v1.0
Xebicon   architectures microservices azure v1.0Xebicon   architectures microservices azure v1.0
Xebicon architectures microservices azure v1.0Michel HUBERT
 
Conférence #nwxtech5 : Introduction à Backbone.js par Hugo Larcher
Conférence #nwxtech5 : Introduction à Backbone.js par Hugo LarcherConférence #nwxtech5 : Introduction à Backbone.js par Hugo Larcher
Conférence #nwxtech5 : Introduction à Backbone.js par Hugo LarcherNormandie Web Xperts
 
Déploiement d’applications
Déploiement d’applicationsDéploiement d’applications
Déploiement d’applicationsMohammed Jaafar
 

Similaire à Meetup python-bottle-telosys-2018-lgu-v1.0 (20)

JUG Nantes - Telosys Tools - Avril 2014
JUG Nantes - Telosys Tools - Avril 2014 JUG Nantes - Telosys Tools - Avril 2014
JUG Nantes - Telosys Tools - Avril 2014
 
Telosys tools jug-nantes-2014-v1.2
Telosys tools jug-nantes-2014-v1.2Telosys tools jug-nantes-2014-v1.2
Telosys tools jug-nantes-2014-v1.2
 
Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022
 
Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJS
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
 
spring.pdf
spring.pdfspring.pdf
spring.pdf
 
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
 
Un exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHPUn exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHP
 
BreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec AzureBreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec Azure
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
 
Modèles d'Azure Resource Manager: Améliorer vos déploiements sur Azure
Modèles d'Azure Resource Manager: Améliorer vos déploiements sur AzureModèles d'Azure Resource Manager: Améliorer vos déploiements sur Azure
Modèles d'Azure Resource Manager: Améliorer vos déploiements sur Azure
 
XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...
XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...
XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...
 
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8
 
Introduction à Node.js
Introduction à Node.js Introduction à Node.js
Introduction à Node.js
 
Xebicon architectures microservices azure v1.0
Xebicon   architectures microservices azure v1.0Xebicon   architectures microservices azure v1.0
Xebicon architectures microservices azure v1.0
 
Conférence #nwxtech5 : Introduction à Backbone.js par Hugo Larcher
Conférence #nwxtech5 : Introduction à Backbone.js par Hugo LarcherConférence #nwxtech5 : Introduction à Backbone.js par Hugo Larcher
Conférence #nwxtech5 : Introduction à Backbone.js par Hugo Larcher
 
Déploiement d’applications
Déploiement d’applicationsDéploiement d’applications
Déploiement d’applications
 
Tapestry
TapestryTapestry
Tapestry
 

Plus de Laurent Guérin

My web application in 20 minutes with Telosys
My web application in 20 minutes with Telosys My web application in 20 minutes with Telosys
My web application in 20 minutes with Telosys Laurent Guérin
 
Telosys project booster Paris Open Source Summit 2019
Telosys project booster Paris Open Source Summit 2019Telosys project booster Paris Open Source Summit 2019
Telosys project booster Paris Open Source Summit 2019Laurent Guérin
 
Telosys tutorial - Code generation for a Python web application based on Bott...
Telosys tutorial - Code generation for a Python web application based on Bott...Telosys tutorial - Code generation for a Python web application based on Bott...
Telosys tutorial - Code generation for a Python web application based on Bott...Laurent Guérin
 
MQTT avec Mosquitto et Paho - DevFest Brest 2019
MQTT avec Mosquitto et Paho - DevFest Brest 2019MQTT avec Mosquitto et Paho - DevFest Brest 2019
MQTT avec Mosquitto et Paho - DevFest Brest 2019Laurent Guérin
 
MQTT avec Mosquitto et Paho - Laurent Guerin - JUG Nantes Nov 2018
MQTT avec Mosquitto et Paho - Laurent Guerin - JUG Nantes Nov 2018MQTT avec Mosquitto et Paho - Laurent Guerin - JUG Nantes Nov 2018
MQTT avec Mosquitto et Paho - Laurent Guerin - JUG Nantes Nov 2018Laurent Guérin
 
Sogeti labs developer-today-v1.1
Sogeti labs developer-today-v1.1Sogeti labs developer-today-v1.1
Sogeti labs developer-today-v1.1Laurent Guérin
 
DevOps MeetUp NL - Docker (Oct 2014)
DevOps MeetUp NL - Docker (Oct 2014)DevOps MeetUp NL - Docker (Oct 2014)
DevOps MeetUp NL - Docker (Oct 2014)Laurent Guérin
 
Bean Validation - Cours v 1.1
Bean Validation - Cours v 1.1Bean Validation - Cours v 1.1
Bean Validation - Cours v 1.1Laurent Guérin
 
Genie logiciel eseo-v1.1-1spp
Genie logiciel eseo-v1.1-1sppGenie logiciel eseo-v1.1-1spp
Genie logiciel eseo-v1.1-1sppLaurent Guérin
 
Devoxx 2011 - Scaffolding with Telosys
Devoxx 2011 - Scaffolding with TelosysDevoxx 2011 - Scaffolding with Telosys
Devoxx 2011 - Scaffolding with TelosysLaurent Guérin
 
Open World Forum 2009 Migration With Telosys
Open World Forum 2009 Migration With TelosysOpen World Forum 2009 Migration With Telosys
Open World Forum 2009 Migration With TelosysLaurent Guérin
 

Plus de Laurent Guérin (11)

My web application in 20 minutes with Telosys
My web application in 20 minutes with Telosys My web application in 20 minutes with Telosys
My web application in 20 minutes with Telosys
 
Telosys project booster Paris Open Source Summit 2019
Telosys project booster Paris Open Source Summit 2019Telosys project booster Paris Open Source Summit 2019
Telosys project booster Paris Open Source Summit 2019
 
Telosys tutorial - Code generation for a Python web application based on Bott...
Telosys tutorial - Code generation for a Python web application based on Bott...Telosys tutorial - Code generation for a Python web application based on Bott...
Telosys tutorial - Code generation for a Python web application based on Bott...
 
MQTT avec Mosquitto et Paho - DevFest Brest 2019
MQTT avec Mosquitto et Paho - DevFest Brest 2019MQTT avec Mosquitto et Paho - DevFest Brest 2019
MQTT avec Mosquitto et Paho - DevFest Brest 2019
 
MQTT avec Mosquitto et Paho - Laurent Guerin - JUG Nantes Nov 2018
MQTT avec Mosquitto et Paho - Laurent Guerin - JUG Nantes Nov 2018MQTT avec Mosquitto et Paho - Laurent Guerin - JUG Nantes Nov 2018
MQTT avec Mosquitto et Paho - Laurent Guerin - JUG Nantes Nov 2018
 
Sogeti labs developer-today-v1.1
Sogeti labs developer-today-v1.1Sogeti labs developer-today-v1.1
Sogeti labs developer-today-v1.1
 
DevOps MeetUp NL - Docker (Oct 2014)
DevOps MeetUp NL - Docker (Oct 2014)DevOps MeetUp NL - Docker (Oct 2014)
DevOps MeetUp NL - Docker (Oct 2014)
 
Bean Validation - Cours v 1.1
Bean Validation - Cours v 1.1Bean Validation - Cours v 1.1
Bean Validation - Cours v 1.1
 
Genie logiciel eseo-v1.1-1spp
Genie logiciel eseo-v1.1-1sppGenie logiciel eseo-v1.1-1spp
Genie logiciel eseo-v1.1-1spp
 
Devoxx 2011 - Scaffolding with Telosys
Devoxx 2011 - Scaffolding with TelosysDevoxx 2011 - Scaffolding with Telosys
Devoxx 2011 - Scaffolding with Telosys
 
Open World Forum 2009 Migration With Telosys
Open World Forum 2009 Migration With TelosysOpen World Forum 2009 Migration With Telosys
Open World Forum 2009 Migration With Telosys
 

Meetup python-bottle-telosys-2018-lgu-v1.0