acceleo presentation - eclipsecon 2017
TRANSCRIPT
© C
opyr
ight
201
7 O
beo
Template-based Generation Tooling
Etienne JuliotEclipseCon 2017, Modeling Unconference
© C
opyr
ight
201
7 O
beo
Generating files from models
Coding rules
ModelSource code
Configuration filesDocumentation
CustomizableGenerator
© C
opyr
ight
201
7 O
beo
Why?
Quality
Automatically apply your best coding best-practices
Productivity
Produce code in less time than you would write it
manually
Adaptability
Easily integrate both functional and technical evolutions
Produce good code quicker and safer!
© C
opyr
ight
201
7 O
beo
What is Acceleo?
Powerful and standard templating language Dedicated edition tooling
Quickly create lasting code generators!
Easy to adapt and maintain during your whole project’s life-cycle
© C
opyr
ight
201
7 O
beo
MTL Standard templating language (MOF-to-Text Language)
User code management
Invokation of Java Queries
Conditional File Generation
Local Variables Definition
Modularity
Polymorphism
© C
opyr
ight
201
7 O
beo
Integrated tooling
Initialization wizard
Template Editor
Syntax highlighting
Completion
Open declaration
Quick replacement
Refactoring
Hot Replace
Error detection
Interpreter View
Profiling
Dedicated Runtime
Stand alone + Maven Support
VCS support
© C
opyr
ight
201
7 O
beo
Template-based Generation Tooling
Easy Modular Iterative
www.eclipse.org/acceleo
✔ Tutorials
✔ User Guide
✔ Developer Doc
✔ Best Practices
© C
opyr
ight
201
7 O
beo
Project Organization
Specifications ARE Validation tests
For each Pattern
One Model
One Hand-Made Text File
One translation explaination
→ One new implemented feature
→ One test case
Avoid regression
Initialize
Edit
Deploy
© C
opyr
ight
201
7 O
beo
Vision for Acceleo 4
History : V1.0 (2006) v3.0 (MTL + Eclipse.org) v3.8→ →
Adopt AQL
Less verbose
Faster
Consistent with M2Doc & Sirius
Simplified internal architecture
Get rid of EMTL files to ease build & deployment
LSP based to support LSP4e, CHE, Visual Studio Code and other?
Template Debugger
Envisionned roadmap : Depending of your priorities & your support!