SlideShare a Scribd company logo
1 of 23
Download to read offline
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 ;-)

More Related Content

What's hot

Comprehensive Terraform Training
Comprehensive Terraform TrainingComprehensive Terraform Training
Comprehensive Terraform TrainingYevgeniy Brikman
 
Oracle GoldenGate on Docker
Oracle GoldenGate on DockerOracle GoldenGate on Docker
Oracle GoldenGate on DockerBobby Curtis
 
Curso java 03 - métodos e parâmetros
Curso java   03 - métodos e parâmetrosCurso java   03 - métodos e parâmetros
Curso java 03 - métodos e parâmetrosMaurício Linhares
 
Android - Data Storage
Android - Data StorageAndroid - Data Storage
Android - Data StorageMingHo Chang
 
Kubernetes - Security Journey
Kubernetes - Security JourneyKubernetes - Security Journey
Kubernetes - Security JourneyJerry Jalava
 
Programação Web - CSS
Programação Web - CSSProgramação Web - CSS
Programação Web - CSSMauro Pereira
 
Intégration de SonarQube dans GitLab ci
Intégration de SonarQube dans GitLab ciIntégration de SonarQube dans GitLab ci
Intégration de SonarQube dans GitLab ciwiemfourati
 
[Pgday.Seoul 2017] 3. PostgreSQL WAL Buffers, Clog Buffers Deep Dive - 이근오
[Pgday.Seoul 2017] 3. PostgreSQL WAL Buffers, Clog Buffers Deep Dive - 이근오[Pgday.Seoul 2017] 3. PostgreSQL WAL Buffers, Clog Buffers Deep Dive - 이근오
[Pgday.Seoul 2017] 3. PostgreSQL WAL Buffers, Clog Buffers Deep Dive - 이근오PgDay.Seoul
 
Groovy presentation
Groovy presentationGroovy presentation
Groovy presentationManav Prasad
 
Rule Engine & Drools
Rule Engine & DroolsRule Engine & Drools
Rule Engine & DroolsSandip Jadhav
 
Terraform -- Infrastructure as Code
Terraform -- Infrastructure as CodeTerraform -- Infrastructure as Code
Terraform -- Infrastructure as CodeMartin Schütte
 
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados RelacionaisBanco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados Relacionaisalexculpado
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - JavaArthur Emanuel
 
Dimensional modeling in oracle sql developer
Dimensional modeling in oracle sql developerDimensional modeling in oracle sql developer
Dimensional modeling in oracle sql developerJeff Smith
 

What's hot (20)

Comprehensive Terraform Training
Comprehensive Terraform TrainingComprehensive Terraform Training
Comprehensive Terraform Training
 
Effective CMake
Effective CMakeEffective CMake
Effective CMake
 
Oracle GoldenGate on Docker
Oracle GoldenGate on DockerOracle GoldenGate on Docker
Oracle GoldenGate on Docker
 
Curso java 03 - métodos e parâmetros
Curso java   03 - métodos e parâmetrosCurso java   03 - métodos e parâmetros
Curso java 03 - métodos e parâmetros
 
Android - Data Storage
Android - Data StorageAndroid - Data Storage
Android - Data Storage
 
Source control
Source controlSource control
Source control
 
Servidor apache
Servidor apacheServidor apache
Servidor apache
 
Kubernetes - Security Journey
Kubernetes - Security JourneyKubernetes - Security Journey
Kubernetes - Security Journey
 
Programação Web - CSS
Programação Web - CSSProgramação Web - CSS
Programação Web - CSS
 
Intégration de SonarQube dans GitLab ci
Intégration de SonarQube dans GitLab ciIntégration de SonarQube dans GitLab ci
Intégration de SonarQube dans GitLab ci
 
POO - 21 - Java e Banco de Dados
POO - 21 - Java e Banco de DadosPOO - 21 - Java e Banco de Dados
POO - 21 - Java e Banco de Dados
 
[Pgday.Seoul 2017] 3. PostgreSQL WAL Buffers, Clog Buffers Deep Dive - 이근오
[Pgday.Seoul 2017] 3. PostgreSQL WAL Buffers, Clog Buffers Deep Dive - 이근오[Pgday.Seoul 2017] 3. PostgreSQL WAL Buffers, Clog Buffers Deep Dive - 이근오
[Pgday.Seoul 2017] 3. PostgreSQL WAL Buffers, Clog Buffers Deep Dive - 이근오
 
Groovy presentation
Groovy presentationGroovy presentation
Groovy presentation
 
Rule Engine & Drools
Rule Engine & DroolsRule Engine & Drools
Rule Engine & Drools
 
Terraform -- Infrastructure as Code
Terraform -- Infrastructure as CodeTerraform -- Infrastructure as Code
Terraform -- Infrastructure as Code
 
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados RelacionaisBanco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
 
Bancos de dados NoSQL: uma visão geral
Bancos de dados NoSQL: uma visão geralBancos de dados NoSQL: uma visão geral
Bancos de dados NoSQL: uma visão geral
 
JAVA - Herança
JAVA - HerançaJAVA - Herança
JAVA - Herança
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - Java
 
Dimensional modeling in oracle sql developer
Dimensional modeling in oracle sql developerDimensional modeling in oracle sql developer
Dimensional modeling in oracle sql developer
 

Similar to Telosys project booster Paris Open Source Summit 2019

The seven pillars of aspnet
The seven pillars of aspnetThe seven pillars of aspnet
The seven pillars of aspnetNethaji Naidu
 
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 TechnologyPhilip Johnson
 
Starting from scratch in 2017
Starting from scratch in 2017Starting from scratch in 2017
Starting from scratch in 2017Stefano Bonetta
 
Dotnet interview qa
Dotnet interview qaDotnet interview qa
Dotnet interview qaabcxyzqaz
 
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
 
Mix Tech Ed Update No Video
Mix Tech Ed Update No VideoMix Tech Ed Update No Video
Mix Tech Ed Update No VideoAllyWick
 
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 iRakesh 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 iRakesh Joshi
 
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
 

Similar to 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
 

More from 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
 
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.0Laurent 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
 
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
 
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
 
Solutions Linux Développement Rapide Java
Solutions Linux Développement Rapide JavaSolutions Linux Développement Rapide Java
Solutions Linux Développement Rapide JavaLaurent Guérin
 

More from Laurent Guérin (11)

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
 

Recently uploaded

CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfAsst.prof M.Gokilavani
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AIabhishek36461
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHC Sai Kiran
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxDeepakSakkari2
 
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)dollysharma2066
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...asadnawaz62
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)Dr SOUNDIRARAJ N
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvLewisJB
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEroselinkalist12
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxPoojaBan
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 

Recently uploaded (20)

Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
 
young call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Serviceyoung call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Service
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AI
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECH
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
 
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvv
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptx
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 

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 ;-)