effective websites development

30
By Anton Vasiliev [email protected] m Effective websites development using Magnolia CMS

Upload: devexperts

Post on 05-Dec-2014

599 views

Category:

Technology


1 download

DESCRIPTION

Anton Vasiliyev - Devexperts team lead has presented his report «Effective website development» on "Magnolia Conference 2012"

TRANSCRIPT

Page 1: Effective websites development

By Anton [email protected]

Effective websites development using Magnolia CMS

Page 2: Effective websites development

Agenda

• Introduction• Increasing the effectiveness of websites

development1. Preview template changes instantly2. Optimize ModuleVersionHandlers3. Use OCM libraries for writing business logic

code

Page 3: Effective websites development

About Devexperts

We create

professional financial software

for Brokerage and Exchanges

since 2002

Page 4: Effective websites development

About Devexperts

Headquarters

197110, 10/1 Barochnaya st.

Saint Petersburg, Russia

+7 812 438 16 26

[email protected]

www.devexperts.comDevexperts Japan

〒 169-0075東京都新宿区高田馬場 1-33-15-402

+81 3 6233 7460

[email protected]

Page 5: Effective websites development

Project architecture

Jackrabbit

Magnolia CMS3 websites

HTML pages for other apps

Applicationservers

Cloudservices

3rd party services

Desktop

application

Page 6: Effective websites development

Project environment

• Weekly releases• 2-3 intermediate builds per week• Aggressive schedule• Up to 5 developers working on the same

Magnolia project module

Project is in closed beta-testing stage

Page 7: Effective websites development

Project environment

Subversio

n

Integratio

n

platform

QA

platform

Production

platform

Page 8: Effective websites development

1. Preview template changes instantly

Page 9: Effective websites development

Problems

• Editing of website templates is slow

• Changes made in Magnolia CMS need to be synchronized with module source files

• Magnolia CMS restart is required to pick up changes made in module source files

Page 10: Effective websites development

Solution: dx-sync-module

• Synchronizes external files with Magnolia CMS resources instantly– JavaScript– CSS– DMS files– JSP and Freemarker templates– Groovy scripts and classes

Page 11: Effective websites development

dx-sync-module approach

Version

control

Project files under

version control

Magnolia CMS

Up and running

Changes in source files are instantly propagated to Magnolia CMS

Page 12: Effective websites development

dx-sync-module demo

Page 13: Effective websites development

dx-sync-module: benefits

• Instant preview of changes in source files• Reduced number of actions when working

with AdminCentral• Decreased number of Magnolia CMS

restarts– Using Groovy may decrease number of

restarts further• Developed for large project, helps with

small projects

Page 14: Effective websites development

2. Optimize ModuleVersionHandlers

Page 15: Effective websites development

Problems

• 2 execution flows: one for install and one for update

• Easy to forget to update module version handler when a file or XML resource is changed

• Version handlers become very large for intensively developing module

Page 16: Effective websites development

A new approach toModuleVersionHandlers

Idea: forget about deltas

Describe module configuration as it should beConfiguration is ‘synchronized’, not ‘updated’

Page 17: Effective websites development

DxModuleVersionHandler

• Describe updating strategy for each resource• Strategies supported:

– Keep up to date– Install once– Remove

• A part of dx-sync-module

Page 18: Effective websites development

DxModuleVersionHandlermodule files

• Describe how files are updated in ModuleVersionHandler class

Page 19: Effective websites development

DxModuleVersionHandlerXML resources

• Put XML resources to the correct place

Page 20: Effective websites development

DxModuleVersionHandler

Takes care of:• Exported XML files• Resources (CSS, JavaScript)• Templates (Freemarker, JSP)• Groovy (classes and scripts)• Module servlets• Module files

Just put a file to the right place and it will be updated next time Magnolia CMS starts

Page 21: Effective websites development

DxModuleVersionHandler: benefits

• The same configuration mechanism is used for both install and update

• Less code• Significantly reduced number of bugs

Increases developers efficiency

Page 23: Effective websites development

3. Use OCM libraries for writing business logic code

Page 24: Effective websites development

Use OCM for business logic code

Before OCM

Page 25: Effective websites development

Use OCM for business logic code

After OCM

Page 27: Effective websites development

dx-magnolia-ocm

• Doesn’t depend on Magnolia– May be used to read Magnolia Jackrabbit

database from other applications• Type safe• Library, not a module• Configuration via annotations

– Keep all information at the same place

Page 28: Effective websites development

dx-magnolia-ocm - links

• Documentationhttp://code.devexperts.com/display/DXMGNL/dx-magnolia-ocm

• JIRA and Mavencoming very soon

• Questions, suggestions and [email protected]

Page 29: Effective websites development

Questions?

Page 30: Effective websites development

Thank you.

By Anton Vasiliev

[email protected]