SlideShare une entreprise Scribd logo
Telosys
project booster
@telosys
telosysteam@gmail.com
http://www.telosys.org/
December 11 2019
Who’s speaking ?
By day
Senior architect
at
@ltguerinLaurent Guérin
Open Source supporter
Passionate by software engineering
and development industrialization
By night
Creator of
code generator
@telosys http://www.telosys.org 3
The problem…
In all projects
(whatever the language or framework)
developers spend a lot of time coding repetitive
and uninteresting portions of code
it costs a lot
and it does not have any added value !
@telosys http://www.telosys.org 4
Impact of entities
domain class, web page,
D.A.O., REST controllers,
database table, tests, etc.
N times…N entities
The loss of time is proportional to the
number of entities managed by the project
=>
@telosys http://www.telosys.org 5
Code generation can help
Platform ( Java EE, PHP, Python, …)
Application
Framework 1 Framework 2
Repetitive code
Repetitive code parts can be generated.
Specific code with value added
Generator
Developer
@telosys http://www.telosys.org 6
The tool
A code generator
created for the developers
@telosys http://www.telosys.org 7
Philosophy of Telosys
Keep it simple
and pragmatic
@telosys http://www.telosys.org 8
Telosys is light and non intrusive
It's just a development accelerator
(lightweight tool)
It does not require a strategic choice
on the part of the company
You can start using it in minutes
(very short learning curve)
You can remove it after use (the generated
code is completely independent of the tool)
Lightness and independence
@telosys http://www.telosys.org 9
Telosys is open and customizable (not a “black box”)
?
You can adapt the models
and the code templates
The resulting code is
exactly what you want
!
@telosys http://www.telosys.org 10
Telosys offers 2 tools
Eclipse Plugin C L I
with VSCode
& Atom extensions
@telosys http://www.telosys.org 11
Abstract model
DSL model
How it works ?
Database model
Step 1 : Define your entities in a model
init/update
Telosys offers 2 types of models :
« DB model »
A model created from a relational
database schema
(you can customize it after creation)
« DSL model »
A model created from scratch,
based on text files with a very
simple grammar
@telosys http://www.telosys.org 12
What does a model look like?
Entity in « DB model »
Entity in « DSL model »
@telosys http://www.telosys.org 13
Project
templates
How it works ?
Standard templates
GitHub
Download
predefined
standard
templates
Creating/customizing
templates for specific cases
Step 2 : Download (or create) templates
Each template is designed to
generate a certain type of file
(DAO, controller, etc.)
in a target language (Java,
PHP, etc.)
@telosys http://www.telosys.org 14
What does a template look like?
http://velocity.apache.org/
Model objects
“entities”,
“attributes”, etc.
Environment objects
Velocity Template Language (VTL)
• Predefined objects : $, ${…}
• Directives : #set, #if, #foreach, …
• Comments : ## #* .. *#
@telosys http://www.telosys.org 15
How it works ?
Project
templatesGenerator
Step 3 : Launch code generation
Generated code
@telosys http://www.telosys.org 16
What can we generate?
Any type of "text file“  that means any language :
Java, Python, JavaScript, PHP, Golang, XML, JSP, Scala,
SQL, HTML, C#, TypeScript, etc.
1 entity N templates N targets
N entities 1 template 1 target
model
(all entities
with links)
+
variables
1 bean
1 controller
1 web page
1 list
a template can generate N files (1 for each entity) or 1 single file
@telosys http://www.telosys.org 17
Concept of “bundle”
Templates are organized in “bundles”
You can choose which part of the application you will generate
Bundle « A » Bundle « B » Bundle « C » Bundle « D » Bundle « E »
@telosys http://www.telosys.org 18
Significant gains
It can save many days of workload
The productivity gain is maximum when reusing existing templates
Application
generated
code
"handmade“
code
Very limited cost : from zero to few days
(only the workload to create or customize the templates)
Find a
balance
time gained
time invested in
models & templates
Demos
@telosys http://www.telosys.org 20
Demo #1
REST
Controllers
Persistence
Interfaces
Persistence
Implem.
Records
( entities )
HTTP
client
{ REST : API }
SoapUI
Templates
bundle
Templates
bundle
Templates
bundle
Database
model
@telosys http://www.telosys.org 21
Demo #2
Web browser
Controllers Services
Views
D.A.O.
Entities
DSL
model
Templates
bundle
Templates
bundle
SQL
@telosys http://www.telosys.org 22
Stay tuned !
www.telosys.org
@telosys
@telosys http://www.telosys.org 23
Links
Publications :
• DZone : https://dzone.com/articles/telosys-a-code-generation-tool-by-laurent-
guerin
• Modeling languages : https://modeling-languages.com/telosys-tools-the-concept-
of-lightweight-model-for-code-generation/
Source code / GitHub :
• Eclipse plugin : https://github.com/telosys-eclipse-v3/TelosysToolsPlugin
• CLI tool : https://github.com/telosys-tools-bricks/telosys-cli
• Bundles of templates : https://github.com/telosys-templates-v3
Eclipse Marketplace :
• https://marketplace.eclipse.org/content/telosys-tools
stars are
welcome ;-)

Contenu connexe

Tendances

Best practices for ansible
Best practices for ansibleBest practices for ansible
Best practices for ansible
George Shuklin
 
How to reduce expenses on monitoring
How to reduce expenses on monitoringHow to reduce expenses on monitoring
How to reduce expenses on monitoring
RomanKhavronenko
 
Real life challenges and configurations when implementing HCL Sametime v12.0....
Real life challenges and configurations when implementing HCL Sametime v12.0....Real life challenges and configurations when implementing HCL Sametime v12.0....
Real life challenges and configurations when implementing HCL Sametime v12.0....
DNUG e.V.
 
Black Hat EU 2010 - Attacking Java Serialized Communication
Black Hat EU 2010 - Attacking Java Serialized CommunicationBlack Hat EU 2010 - Attacking Java Serialized Communication
Black Hat EU 2010 - Attacking Java Serialized Communication
msaindane
 
Java JVM Memory Cheat Sheet
Java JVM Memory Cheat SheetJava JVM Memory Cheat Sheet
Java JVM Memory Cheat Sheet
Mark Papis
 
Sharding
ShardingSharding
Sharding
MongoDB
 
Domino Server Health - Monitoring and Managing
 Domino Server Health - Monitoring and Managing Domino Server Health - Monitoring and Managing
Domino Server Health - Monitoring and Managing
Gabriella Davis
 
Replicação PostgreSQL com RepManager
Replicação PostgreSQL com RepManagerReplicação PostgreSQL com RepManager
Replicação PostgreSQL com RepManager
Vinicius Aquino do Vale
 
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Ippon
 
Advanced Terraform
Advanced TerraformAdvanced Terraform
Advanced Terraform
Samsung Electronics
 
Taller Redis
Taller RedisTaller Redis
Taller Redis
betabeers
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
ENSET, Université Hassan II Casablanca
 
Elastic Stack Introduction
Elastic Stack IntroductionElastic Stack Introduction
Elastic Stack Introduction
Vikram Shinde
 
Infra as Code with Packer, Ansible and Terraform
Infra as Code with Packer, Ansible and TerraformInfra as Code with Packer, Ansible and Terraform
Infra as Code with Packer, Ansible and Terraform
Inho Kang
 
IBM JVM 소개 - Oracle JVM 과 비교
IBM JVM 소개 - Oracle JVM 과 비교IBM JVM 소개 - Oracle JVM 과 비교
IBM JVM 소개 - Oracle JVM 과 비교
JungWoon Lee
 
Oak, the architecture of Apache Jackrabbit 3
Oak, the architecture of Apache Jackrabbit 3Oak, the architecture of Apache Jackrabbit 3
Oak, the architecture of Apache Jackrabbit 3
Jukka Zitting
 
SeaweedFS introduction
SeaweedFS introductionSeaweedFS introduction
SeaweedFS introduction
chrislusf
 
Terraform infraestructura como código
Terraform infraestructura como códigoTerraform infraestructura como código
Terraform infraestructura como código
Victor Adsuar
 
Final terraform
Final terraformFinal terraform
Final terraform
Gourav Varma
 
Network Service Mesh
Network Service MeshNetwork Service Mesh
Network Service Mesh
Prem Sankar Gopannan
 

Tendances (20)

Best practices for ansible
Best practices for ansibleBest practices for ansible
Best practices for ansible
 
How to reduce expenses on monitoring
How to reduce expenses on monitoringHow to reduce expenses on monitoring
How to reduce expenses on monitoring
 
Real life challenges and configurations when implementing HCL Sametime v12.0....
Real life challenges and configurations when implementing HCL Sametime v12.0....Real life challenges and configurations when implementing HCL Sametime v12.0....
Real life challenges and configurations when implementing HCL Sametime v12.0....
 
Black Hat EU 2010 - Attacking Java Serialized Communication
Black Hat EU 2010 - Attacking Java Serialized CommunicationBlack Hat EU 2010 - Attacking Java Serialized Communication
Black Hat EU 2010 - Attacking Java Serialized Communication
 
Java JVM Memory Cheat Sheet
Java JVM Memory Cheat SheetJava JVM Memory Cheat Sheet
Java JVM Memory Cheat Sheet
 
Sharding
ShardingSharding
Sharding
 
Domino Server Health - Monitoring and Managing
 Domino Server Health - Monitoring and Managing Domino Server Health - Monitoring and Managing
Domino Server Health - Monitoring and Managing
 
Replicação PostgreSQL com RepManager
Replicação PostgreSQL com RepManagerReplicação PostgreSQL com RepManager
Replicação PostgreSQL com RepManager
 
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
 
Advanced Terraform
Advanced TerraformAdvanced Terraform
Advanced Terraform
 
Taller Redis
Taller RedisTaller Redis
Taller Redis
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Elastic Stack Introduction
Elastic Stack IntroductionElastic Stack Introduction
Elastic Stack Introduction
 
Infra as Code with Packer, Ansible and Terraform
Infra as Code with Packer, Ansible and TerraformInfra as Code with Packer, Ansible and Terraform
Infra as Code with Packer, Ansible and Terraform
 
IBM JVM 소개 - Oracle JVM 과 비교
IBM JVM 소개 - Oracle JVM 과 비교IBM JVM 소개 - Oracle JVM 과 비교
IBM JVM 소개 - Oracle JVM 과 비교
 
Oak, the architecture of Apache Jackrabbit 3
Oak, the architecture of Apache Jackrabbit 3Oak, the architecture of Apache Jackrabbit 3
Oak, the architecture of Apache Jackrabbit 3
 
SeaweedFS introduction
SeaweedFS introductionSeaweedFS introduction
SeaweedFS introduction
 
Terraform infraestructura como código
Terraform infraestructura como códigoTerraform infraestructura como código
Terraform infraestructura como código
 
Final terraform
Final terraformFinal terraform
Final terraform
 
Network Service Mesh
Network Service MeshNetwork Service Mesh
Network Service Mesh
 

Similaire à Telosys project booster Paris Open Source Summit 2019

Mon application web en 20 minutes
Mon application web en 20 minutesMon application web en 20 minutes
Mon application web en 20 minutes
Open Source Experience
 
The seven pillars of aspnet
The seven pillars of aspnetThe seven pillars of aspnet
The seven pillars of aspnet
Nethaji Naidu
 
The Seven Pillars Of Asp.Net
The Seven Pillars Of Asp.NetThe Seven Pillars Of Asp.Net
The Seven Pillars Of Asp.Net
Anand Kumar Rajana
 
Beyond JavaScript Frameworks: Writing Reliable Web Apps With Elm - Erik Wende...
Beyond JavaScript Frameworks: Writing Reliable Web Apps With Elm - Erik Wende...Beyond JavaScript Frameworks: Writing Reliable Web Apps With Elm - Erik Wende...
Beyond JavaScript Frameworks: Writing Reliable Web Apps With Elm - Erik Wende...
Codemotion
 
Introduction to Software Build Technology
Introduction to Software Build TechnologyIntroduction to Software Build Technology
Introduction to Software Build Technology
Philip Johnson
 
Starting from scratch in 2017
Starting from scratch in 2017Starting from scratch in 2017
Starting from scratch in 2017
Stefano Bonetta
 
Chapter1
Chapter1Chapter1
Chapter1
guest9ccd0e
 
Dotnet interview qa
Dotnet interview qaDotnet interview qa
Dotnet interview qa
abcxyzqaz
 
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
Maarten Balliauw
 
Introduction to asp
Introduction to aspIntroduction to asp
Introduction to asp
Madhuri Kavade
 
Meteor Angular
Meteor AngularMeteor Angular
Meteor Angular
Pavel Kurnosov
 
Mix Tech Ed Update No Video
Mix Tech Ed Update No VideoMix Tech Ed Update No Video
Mix Tech Ed Update No Video
AllyWick
 
Javascript mynotes
Javascript mynotesJavascript mynotes
Javascript mynotes
AntoniaSymeonidou1
 
Dot net Introduction and their usabilities
Dot net Introduction and  their usabilitiesDot net Introduction and  their usabilities
Part i
Part iPart i
Dot net-interview-questions-and-answers part i
Dot net-interview-questions-and-answers part iDot net-interview-questions-and-answers part i
Dot net-interview-questions-and-answers part i
Rakesh Joshi
 
Dot net-interview-questions-and-answers part i
Dot net-interview-questions-and-answers part iDot net-interview-questions-and-answers part i
Dot net-interview-questions-and-answers part i
Rakesh Joshi
 
.NET presentation
.NET presentation.NET presentation
.NET presentation
Himanshu Bhalla
 
Erik Wendel - Beyond JavaScript Frameworks: Writing Reliable Web Apps With El...
Erik Wendel - Beyond JavaScript Frameworks: Writing Reliable Web Apps With El...Erik Wendel - Beyond JavaScript Frameworks: Writing Reliable Web Apps With El...
Erik Wendel - Beyond JavaScript Frameworks: Writing Reliable Web Apps With El...
Codemotion
 
Inside.Net
Inside.NetInside.Net
Inside.Net
Ganesh Samarthyam
 

Similaire à Telosys project booster Paris Open Source Summit 2019 (20)

Mon application web en 20 minutes
Mon application web en 20 minutesMon application web en 20 minutes
Mon application web en 20 minutes
 
The seven pillars of aspnet
The seven pillars of aspnetThe seven pillars of aspnet
The seven pillars of aspnet
 
The Seven Pillars Of Asp.Net
The Seven Pillars Of Asp.NetThe Seven Pillars Of Asp.Net
The Seven Pillars Of Asp.Net
 
Beyond JavaScript Frameworks: Writing Reliable Web Apps With Elm - Erik Wende...
Beyond JavaScript Frameworks: Writing Reliable Web Apps With Elm - Erik Wende...Beyond JavaScript Frameworks: Writing Reliable Web Apps With Elm - Erik Wende...
Beyond JavaScript Frameworks: Writing Reliable Web Apps With Elm - Erik Wende...
 
Introduction to Software Build Technology
Introduction to Software Build TechnologyIntroduction to Software Build Technology
Introduction to Software Build Technology
 
Starting from scratch in 2017
Starting from scratch in 2017Starting from scratch in 2017
Starting from scratch in 2017
 
Chapter1
Chapter1Chapter1
Chapter1
 
Dotnet interview qa
Dotnet interview qaDotnet interview qa
Dotnet interview qa
 
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
 
Introduction to asp
Introduction to aspIntroduction to asp
Introduction to asp
 
Meteor Angular
Meteor AngularMeteor Angular
Meteor Angular
 
Mix Tech Ed Update No Video
Mix Tech Ed Update No VideoMix Tech Ed Update No Video
Mix Tech Ed Update No Video
 
Javascript mynotes
Javascript mynotesJavascript mynotes
Javascript mynotes
 
Dot net Introduction and their usabilities
Dot net Introduction and  their usabilitiesDot net Introduction and  their usabilities
Dot net Introduction and their usabilities
 
Part i
Part iPart i
Part i
 
Dot net-interview-questions-and-answers part i
Dot net-interview-questions-and-answers part iDot net-interview-questions-and-answers part i
Dot net-interview-questions-and-answers part i
 
Dot net-interview-questions-and-answers part i
Dot net-interview-questions-and-answers part iDot net-interview-questions-and-answers part i
Dot net-interview-questions-and-answers part i
 
.NET presentation
.NET presentation.NET presentation
.NET presentation
 
Erik Wendel - Beyond JavaScript Frameworks: Writing Reliable Web Apps With El...
Erik Wendel - Beyond JavaScript Frameworks: Writing Reliable Web Apps With El...Erik Wendel - Beyond JavaScript Frameworks: Writing Reliable Web Apps With El...
Erik Wendel - Beyond JavaScript Frameworks: Writing Reliable Web Apps With El...
 
Inside.Net
Inside.NetInside.Net
Inside.Net
 

Plus de Laurent Guérin

Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022
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 2019
Laurent 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 2018
Laurent Guérin
 
Meetup python-bottle-telosys-2018-lgu-v1.0
Meetup python-bottle-telosys-2018-lgu-v1.0Meetup python-bottle-telosys-2018-lgu-v1.0
Meetup python-bottle-telosys-2018-lgu-v1.0
Laurent Guérin
 
Sogeti labs developer-today-v1.1
Sogeti labs developer-today-v1.1Sogeti labs developer-today-v1.1
Sogeti labs developer-today-v1.1
Laurent 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
 
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
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.1
Laurent Guérin
 
Genie logiciel eseo-v1.1-1spp
Genie logiciel eseo-v1.1-1sppGenie logiciel eseo-v1.1-1spp
Genie logiciel eseo-v1.1-1spp
Laurent Guérin
 
Devoxx 2011 - Scaffolding with Telosys
Devoxx 2011 - Scaffolding with TelosysDevoxx 2011 - Scaffolding with Telosys
Devoxx 2011 - Scaffolding with Telosys
Laurent 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 Telosys
Laurent Guérin
 
Solutions Linux Développement Rapide Java
Solutions Linux Développement Rapide JavaSolutions Linux Développement Rapide Java
Solutions Linux Développement Rapide Java
Laurent Guérin
 

Plus de Laurent Guérin (12)

Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022
 
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
 
Meetup python-bottle-telosys-2018-lgu-v1.0
Meetup python-bottle-telosys-2018-lgu-v1.0Meetup python-bottle-telosys-2018-lgu-v1.0
Meetup python-bottle-telosys-2018-lgu-v1.0
 
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)
 
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
 
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
 
Solutions Linux Développement Rapide Java
Solutions Linux Développement Rapide JavaSolutions Linux Développement Rapide Java
Solutions Linux Développement Rapide Java
 

Dernier

Assistant Engineer (Chemical) Interview Questions.pdf
Assistant Engineer (Chemical) Interview Questions.pdfAssistant Engineer (Chemical) Interview Questions.pdf
Assistant Engineer (Chemical) Interview Questions.pdf
Seetal Daas
 
Mechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdfMechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdf
21UME003TUSHARDEB
 
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
upoux
 
Transformers design and coooling methods
Transformers design and coooling methodsTransformers design and coooling methods
Transformers design and coooling methods
Roger Rozario
 
Butterfly Valves Manufacturer (LBF Series).pdf
Butterfly Valves Manufacturer (LBF Series).pdfButterfly Valves Manufacturer (LBF Series).pdf
Butterfly Valves Manufacturer (LBF Series).pdf
Lubi Valves
 
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
upoux
 
Height and depth gauge linear metrology.pdf
Height and depth gauge linear metrology.pdfHeight and depth gauge linear metrology.pdf
Height and depth gauge linear metrology.pdf
q30122000
 
SCALING OF MOS CIRCUITS m .pptx
SCALING OF MOS CIRCUITS m                 .pptxSCALING OF MOS CIRCUITS m                 .pptx
SCALING OF MOS CIRCUITS m .pptx
harshapolam10
 
Determination of Equivalent Circuit parameters and performance characteristic...
Determination of Equivalent Circuit parameters and performance characteristic...Determination of Equivalent Circuit parameters and performance characteristic...
Determination of Equivalent Circuit parameters and performance characteristic...
pvpriya2
 
Beckhoff Programmable Logic Control Overview Presentation
Beckhoff Programmable Logic Control Overview PresentationBeckhoff Programmable Logic Control Overview Presentation
Beckhoff Programmable Logic Control Overview Presentation
VanTuDuong1
 
Levelised Cost of Hydrogen (LCOH) Calculator Manual
Levelised Cost of Hydrogen  (LCOH) Calculator ManualLevelised Cost of Hydrogen  (LCOH) Calculator Manual
Levelised Cost of Hydrogen (LCOH) Calculator Manual
Massimo Talia
 
This study Examines the Effectiveness of Talent Procurement through the Imple...
This study Examines the Effectiveness of Talent Procurement through the Imple...This study Examines the Effectiveness of Talent Procurement through the Imple...
This study Examines the Effectiveness of Talent Procurement through the Imple...
DharmaBanothu
 
AI in customer support Use cases solutions development and implementation.pdf
AI in customer support Use cases solutions development and implementation.pdfAI in customer support Use cases solutions development and implementation.pdf
AI in customer support Use cases solutions development and implementation.pdf
mahaffeycheryld
 
Supermarket Management System Project Report.pdf
Supermarket Management System Project Report.pdfSupermarket Management System Project Report.pdf
Supermarket Management System Project Report.pdf
Kamal Acharya
 
Object Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOADObject Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOAD
PreethaV16
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
uqyfuc
 
Tools & Techniques for Commissioning and Maintaining PV Systems W-Animations ...
Tools & Techniques for Commissioning and Maintaining PV Systems W-Animations ...Tools & Techniques for Commissioning and Maintaining PV Systems W-Animations ...
Tools & Techniques for Commissioning and Maintaining PV Systems W-Animations ...
Transcat
 
一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
nedcocy
 
Call Girls Chennai +91-8824825030 Vip Call Girls Chennai
Call Girls Chennai +91-8824825030 Vip Call Girls ChennaiCall Girls Chennai +91-8824825030 Vip Call Girls Chennai
Call Girls Chennai +91-8824825030 Vip Call Girls Chennai
paraasingh12 #V08
 
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
PriyankaKilaniya
 

Dernier (20)

Assistant Engineer (Chemical) Interview Questions.pdf
Assistant Engineer (Chemical) Interview Questions.pdfAssistant Engineer (Chemical) Interview Questions.pdf
Assistant Engineer (Chemical) Interview Questions.pdf
 
Mechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdfMechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdf
 
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
一比一原版(osu毕业证书)美国俄勒冈州立大学毕业证如何办理
 
Transformers design and coooling methods
Transformers design and coooling methodsTransformers design and coooling methods
Transformers design and coooling methods
 
Butterfly Valves Manufacturer (LBF Series).pdf
Butterfly Valves Manufacturer (LBF Series).pdfButterfly Valves Manufacturer (LBF Series).pdf
Butterfly Valves Manufacturer (LBF Series).pdf
 
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
 
Height and depth gauge linear metrology.pdf
Height and depth gauge linear metrology.pdfHeight and depth gauge linear metrology.pdf
Height and depth gauge linear metrology.pdf
 
SCALING OF MOS CIRCUITS m .pptx
SCALING OF MOS CIRCUITS m                 .pptxSCALING OF MOS CIRCUITS m                 .pptx
SCALING OF MOS CIRCUITS m .pptx
 
Determination of Equivalent Circuit parameters and performance characteristic...
Determination of Equivalent Circuit parameters and performance characteristic...Determination of Equivalent Circuit parameters and performance characteristic...
Determination of Equivalent Circuit parameters and performance characteristic...
 
Beckhoff Programmable Logic Control Overview Presentation
Beckhoff Programmable Logic Control Overview PresentationBeckhoff Programmable Logic Control Overview Presentation
Beckhoff Programmable Logic Control Overview Presentation
 
Levelised Cost of Hydrogen (LCOH) Calculator Manual
Levelised Cost of Hydrogen  (LCOH) Calculator ManualLevelised Cost of Hydrogen  (LCOH) Calculator Manual
Levelised Cost of Hydrogen (LCOH) Calculator Manual
 
This study Examines the Effectiveness of Talent Procurement through the Imple...
This study Examines the Effectiveness of Talent Procurement through the Imple...This study Examines the Effectiveness of Talent Procurement through the Imple...
This study Examines the Effectiveness of Talent Procurement through the Imple...
 
AI in customer support Use cases solutions development and implementation.pdf
AI in customer support Use cases solutions development and implementation.pdfAI in customer support Use cases solutions development and implementation.pdf
AI in customer support Use cases solutions development and implementation.pdf
 
Supermarket Management System Project Report.pdf
Supermarket Management System Project Report.pdfSupermarket Management System Project Report.pdf
Supermarket Management System Project Report.pdf
 
Object Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOADObject Oriented Analysis and Design - OOAD
Object Oriented Analysis and Design - OOAD
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
Tools & Techniques for Commissioning and Maintaining PV Systems W-Animations ...
Tools & Techniques for Commissioning and Maintaining PV Systems W-Animations ...Tools & Techniques for Commissioning and Maintaining PV Systems W-Animations ...
Tools & Techniques for Commissioning and Maintaining PV Systems W-Animations ...
 
一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
一比一原版(爱大毕业证书)爱荷华大学毕业证如何办理
 
Call Girls Chennai +91-8824825030 Vip Call Girls Chennai
Call Girls Chennai +91-8824825030 Vip Call Girls ChennaiCall Girls Chennai +91-8824825030 Vip Call Girls Chennai
Call Girls Chennai +91-8824825030 Vip Call Girls Chennai
 
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
 

Telosys project booster Paris Open Source Summit 2019

  • 2. Who’s speaking ? By day Senior architect at @ltguerinLaurent Guérin Open Source supporter Passionate by software engineering and development industrialization By night Creator of code generator
  • 3. @telosys http://www.telosys.org 3 The problem… In all projects (whatever the language or framework) developers spend a lot of time coding repetitive and uninteresting portions of code it costs a lot and it does not have any added value !
  • 4. @telosys http://www.telosys.org 4 Impact of entities domain class, web page, D.A.O., REST controllers, database table, tests, etc. N times…N entities The loss of time is proportional to the number of entities managed by the project =>
  • 5. @telosys http://www.telosys.org 5 Code generation can help Platform ( Java EE, PHP, Python, …) Application Framework 1 Framework 2 Repetitive code Repetitive code parts can be generated. Specific code with value added Generator Developer
  • 6. @telosys http://www.telosys.org 6 The tool A code generator created for the developers
  • 7. @telosys http://www.telosys.org 7 Philosophy of Telosys Keep it simple and pragmatic
  • 8. @telosys http://www.telosys.org 8 Telosys is light and non intrusive It's just a development accelerator (lightweight tool) It does not require a strategic choice on the part of the company You can start using it in minutes (very short learning curve) You can remove it after use (the generated code is completely independent of the tool) Lightness and independence
  • 9. @telosys http://www.telosys.org 9 Telosys is open and customizable (not a “black box”) ? You can adapt the models and the code templates The resulting code is exactly what you want !
  • 10. @telosys http://www.telosys.org 10 Telosys offers 2 tools Eclipse Plugin C L I with VSCode & Atom extensions
  • 11. @telosys http://www.telosys.org 11 Abstract model DSL model How it works ? Database model Step 1 : Define your entities in a model init/update Telosys offers 2 types of models : « DB model » A model created from a relational database schema (you can customize it after creation) « DSL model » A model created from scratch, based on text files with a very simple grammar
  • 12. @telosys http://www.telosys.org 12 What does a model look like? Entity in « DB model » Entity in « DSL model »
  • 13. @telosys http://www.telosys.org 13 Project templates How it works ? Standard templates GitHub Download predefined standard templates Creating/customizing templates for specific cases Step 2 : Download (or create) templates Each template is designed to generate a certain type of file (DAO, controller, etc.) in a target language (Java, PHP, etc.)
  • 14. @telosys http://www.telosys.org 14 What does a template look like? http://velocity.apache.org/ Model objects “entities”, “attributes”, etc. Environment objects Velocity Template Language (VTL) • Predefined objects : $, ${…} • Directives : #set, #if, #foreach, … • Comments : ## #* .. *#
  • 15. @telosys http://www.telosys.org 15 How it works ? Project templatesGenerator Step 3 : Launch code generation Generated code
  • 16. @telosys http://www.telosys.org 16 What can we generate? Any type of "text file“  that means any language : Java, Python, JavaScript, PHP, Golang, XML, JSP, Scala, SQL, HTML, C#, TypeScript, etc. 1 entity N templates N targets N entities 1 template 1 target model (all entities with links) + variables 1 bean 1 controller 1 web page 1 list a template can generate N files (1 for each entity) or 1 single file
  • 17. @telosys http://www.telosys.org 17 Concept of “bundle” Templates are organized in “bundles” You can choose which part of the application you will generate Bundle « A » Bundle « B » Bundle « C » Bundle « D » Bundle « E »
  • 18. @telosys http://www.telosys.org 18 Significant gains It can save many days of workload The productivity gain is maximum when reusing existing templates Application generated code "handmade“ code Very limited cost : from zero to few days (only the workload to create or customize the templates) Find a balance time gained time invested in models & templates
  • 19. Demos
  • 20. @telosys http://www.telosys.org 20 Demo #1 REST Controllers Persistence Interfaces Persistence Implem. Records ( entities ) HTTP client { REST : API } SoapUI Templates bundle Templates bundle Templates bundle Database model
  • 21. @telosys http://www.telosys.org 21 Demo #2 Web browser Controllers Services Views D.A.O. Entities DSL model Templates bundle Templates bundle SQL
  • 22. @telosys http://www.telosys.org 22 Stay tuned ! www.telosys.org @telosys
  • 23. @telosys http://www.telosys.org 23 Links Publications : • DZone : https://dzone.com/articles/telosys-a-code-generation-tool-by-laurent- guerin • Modeling languages : https://modeling-languages.com/telosys-tools-the-concept- of-lightweight-model-for-code-generation/ Source code / GitHub : • Eclipse plugin : https://github.com/telosys-eclipse-v3/TelosysToolsPlugin • CLI tool : https://github.com/telosys-tools-bricks/telosys-cli • Bundles of templates : https://github.com/telosys-templates-v3 Eclipse Marketplace : • https://marketplace.eclipse.org/content/telosys-tools stars are welcome ;-)